Tag Archives: Srikala B

C&K metrics for Object Oriented Design

There is a huge need for process improvement in software development as 70% percent of the projects are below satisfactory level. One of the prominent approaches of design being used today is the object oriented modelling. There is a need for a suite of metrics to help a manager to measure the design especially when adopting to a new technology or when stepping into a new terrain.

Some of the metrics that were proposed before C&K metrics were subject to criticisms such as lacking a theoritical basis, lacking desirable measurement properties, being insufficiently generalized or being labor intensive to collect.

Six metrics were presented by Chidember and Karemer and they provided a method to collect them and also validated them based on a previously established measurement principles. The highlights of the paper that they presented was a theoritical ground for the metrics.

A OO Design can be conceptualized as a relational system consisting of a set of elements(classes, objects) , a set of relations and a set of binary operations performed on the elements. DΞ(A, R1…Rn, O1….On). A is set of object elements. R1….Rn are empirical relations of object element A and O1….On are binary operations on element A. This definition is now mapped onto a formal system F to provide mathematical basis. If a is an element in D, then μ(a) is an element in F.  μ does not make implicit changes to a. Example: Heights of school children can be mapped onto real numbers. Taller can be described as 36 inch child > 30 inch child. Children standing atop one another are mapped to adding real numbers.

An ontology is described where the design would be viewed as composed of things referred to as substantial individuals and concepts. The key is that substantial individual  possess properties inherently. The six metrics are

Coupling

Two objects are coupled if and only if at least one of them acts upon the other. X is said to act upon Y if the history of Y is affected by X. In order to find coupling between object classes, the software engineer must consult CRC cards and count the number of collaborations listed for the class.

Coheshion

The degree of similarity of the methods within the object can be defined to be the intersection of  the sets of variables used by the methods. A software engineer can measure cohesion by first picking an attribute and counting the number of CRC cards that access that attribute.

Complexity of an object

Cardinality of its set of properties. To guage weighted methods per class, software engineer must compute the complexity of the method.

Scope of properties: 1)Depth of inheritance: Software engineer must consult the inheritance tree and traverse it till the deepest child and find the depth.
2)Number of children: Software engineer must consult the Inheritance tree and calculate the number of children that are one level below the class under abstraction

Methods as measures of communication

A message can invoke a behaviour by calling another method. A software engineer must take the firat message and count the number of methods that can be potentially executed as a response to that message.

Combination of object classes

Additive aggregation of 2(or more) things like the combination of 2 object classes results in another class whose properties are the union of the properties of component classes.

Advertisements

Motivations for participating in Free and Open Source software development

A survey showed these statistics about the highest educational degrees of participants in the Free and Open source software movement- 3% PhD, 21% Masters, 48% graduate college, 24%- Non college and 4% other. Let us see a few motives that might be driving the diverse set of people in a voluntary contribution setting.

Intinsic motivations

Personal need for a particular software: “Scratching a developers personal itch”

A single developer may be motivated to kick start a project simply due to the lack of adequate software solutions for the problem in hand. Linus Torvalds need for unix for his PC lead to Linux. Eric Allman’s need for a more efficient email server lead to “sendmail”. Larry wall’s need to automatically generate web pages resulted in Perl. Another example is Don Kluth’s document setting needs gave way to TEX.

Just for the fun of it!!

Homo ludens refers to the playing human. Programmers often confer that programming is like a leisure time activity i.e playing around with the different possibilities and thrill of mastering a challenge. Torvalds often said he did it for the joy and fun in it. With more eyes watching, errors are better scrutinized and thrill is greater.

kin selection Altruism

The free and open source group is a community of highly skilled selfless people. They consider their work a gift for the community and the general public.

Pure Altruism: Stallmann believes that the motivations are pure selfless ideas and beliefs is creating and distributing free software that anybody can modify or use.

Participation in social events

History has shown that voluntary involvements in social movements be it civil rights or gay rights stems from personal identification with the people involved or personal belief to support the cause.

Social status upgrade

Programmers maybe motivated to participate for peer acceptation and recognition. There are levels in the community and promotion to the next level is based and pure merit. This gives good credibility and respect to the programmer.

Extrinsic motivations
Job signalling/Self marketing

Participation might be used as a signal to potential employers. Source code acts as a window to the programmers performance capabilities for those scouting for talent. Active participation helps to catch the attention of employers who otherwise might be tough to contact. Freelance programmers might showcase their work as a profile to potential employers.

Expecting revenues from related products/ services

RedHat offered commercial consulting, training, distribution and implementation services. The software itself can also be sold for a price or its upgrades or customizable features may be charged

Expand their skill base

Gain a better understanding. Exposure to a wide variety of techniques and projects.

Program management

Web framework- gantt chart

Image

Image

 

 

 

 

CMMI-development. What is it all about?

Lillian Hellman said- “Things start out as hopes and end up as habits”. CMMI promises to show organizations the path of such a workspace conversion-where hopes become repeatable habits!

CMM- Capability Maturity Model was developed by Software Engineering Institute at  Carnegie Mellon University as commissioned by the US, Department of Defence. Later in 2010, CMM-Integrated was launched with separation of concerns such as Development, Services and Acquisition. The major changes were better description and marriage of cmmi with agile method(to end their made up cold war).

CMMI models are a set of practices which when followed thoroughly, can  improve  processes and their management.  CMMI makes life easy  by making the customer trust the organization  more, by helping to add value to the stocks and by giving a better recognition overall.

The CMMI document divides development into 22 core process areas such as Decision analysis and resolution, product integration etc.. Each area has components which are classified as required-MUST be visible in the organization, expected-important to achieve and  informative. Each process area is governed by a set of goals–  both SPECIFIC to the the  area and GENERIC. Achieving these goals is possible by following a detailed set of specific and generic practices given in the document. There are examples, subpractices and elaborations that give details about the implementation of practices. Click here to see the entire CMMIv1.3- development report. A generic goal is explained below as described in the document.

GG 3:Generic goal is “Institutionalise a Defined Process ”

Generic practices to be followed are

  1. Establish a Defined Process.
  2. Collect Improvement Information

 Subpractices are

  1. Store process and product measures in the organization’s measurement repository
  2. Submit documentation for inclusion in the organization’s process asset library
  3. Document lessons learned from the process for inclusion in the organization’s process asset library.
  4. Propose improvements to the organizational process assets

Examples of process related experiences for Product Integration area:

  • Records of the receipt of product components, exception reports, confirmation of configuration status, and results of readiness checking.
  • Percentage of total development effort spent in product integration (actual to date plus estimate to complete)
  • Defects found in the product and test environment during product integration
  • Problem reports resulting from product integration

CMMI can be applied for a team, workgroup etc. In a world of rating everything, from your personality to the pen that you use, why should software organizations be left behind. A provision for applying for appraisal and getting a rating according to the relevant maturity level is possible.

Level

Continuous Representation for process area. CAPABILITY Levels

Staged Representation for organisation. MATURITY Levels

Level 0 Incomplete– process partially performed              –
Level 1 Performed– needed work done to satisfy specific goals Initial- chaotic environment. Depends on heroics
Level 2 Managed- Planned and executed process as per policy Managed- planned execution
Level 3 Defined- standard practice according to tailored guidelines Defined-process standardization
Level 4            – Quantitatively Managed- quality management
Level 5            – Optimizing- innovation and deployment

Standard CMMI Appraisal Method for Process Improvement (SCAMPI)provides 3 classes of improvement to be applied at different levels. Class C is for few process areas and done within 3-5 days by Appraisal team member. Class B focuses on Deployment and a certified Lead appraiser is called in. Class A is stringent and is the basis for the final rating and focuses on institutionalisation and is done by a Lead Appraiser with a team. Example: Click here to see a sampling summary as published by SEI for Aricent.

The CMMI results published by SEI can be viewed by clicking here

Current research being carried out by SEI post CMMIv1.3 is

  • Tuning to process requirements in multi model environment
  • Studies of CMMI’s effect on Performance.
  • Mapping CMMI standards with IEEE,ISO etc to set a global standard.
  • tuning for improvement in small organization

Understanding CMMI levels…!!

Lillian Hellman said- “Things start out as hopes and end up as habits”. CMMI promises to show organizations the path of such a workspace conversion-where hopes become repeatable habits!

 CMM- Capability Maturity Model was developed by Software Engineering Institute at  Carnegie Mellon University as commissioned by the US, Department of Defence. Later in 2010, CMM-Integrated was launched with separation of concerns such as Development, Services and Acquisition. The major changes were better description and marriage of cmmi with agile method(to end their made up cold war).

 CMMI models are a set of practices which when followed thoroughly, can  improve  processes and their management.  CMMI makes life easy  by making the customer trust the organization  more, by helping to add value to the stocks and by giving a better recognition overall.

 The CMMI document divides development into 22 core process areas such as Decision analysis and resolution, product integration etc.. Each area has components which are classified as required-MUST be visible in the organization, expected-important to achieve and  informative. Each process area is governed by a set of goals–  both SPECIFIC to the the  area and GENERIC. Achieving these goals is possible by following a detailed set of specific and generic practices given in the document. There are examples, subpractices and elaborations that give details about the implementation of practices. Click here to see the entire CMMIv1.3- development report. A generic goal is explained below as described in the document.

GG 3:Generic goal is “Institutionalise a Defined Process ”

Generic practices to be followed are

  1. Establish a Defined Process.
  2. Collect Improvement Information

 Subpractices are

  1. Store process and product measures in the organization’s measurement repository
  2. Submit documentation for inclusion in the organization’s process asset library
  3. Document lessons learned from the process for inclusion in the organization’s process asset library.
  4. Propose improvements to the organizational process assets                          

Examples of process related experiences for Product Integration area:

  • Records of the receipt of product components, exception reports, confirmation of configuration status, and results of readiness checking.
  • Percentage of total development effort spent in product integration (actual to date plus estimate to complete)
  • Defects found in the product and test environment during product integration
  • Problem reports resulting from product integration

 CMMI can be applied for a team, workgroup etc. In a world of rating everything, from your personality to the pen that you use, why should software organizations be left behind. A provision for applying for appraisal and getting a rating according to the relevant maturity level is possible.

Level

Continuous Representation for process area. CAPABILITY Levels

Staged Representation for organisation. MATURITY Levels

Level 0

Incomplete– process partially performed

             –

Level 1

Performed– needed work done to satisfy specific goals

Initial- chaotic environment. Depends on heroics

Level 2

Managed- Planned and executed process as per policy

Managed- planned execution

Level 3

Defined- standard practice according to tailored guidelines

Defined-process standardization

Level 4

           –

Quantitatively Managed- quality management

Level 5

           – 

Optimizing- innovation and deployment

 Standard CMMI Appraisal Method for Process Improvement (SCAMPI)provides 3 classes of improvement to be applied at different levels. Class C is for few process areas and done within 3-5 days by Appraisal team member. Class B focuses on Deployment and a certified Lead appraiser is called in. Class A is stringent and is the basis for the final rating and focuses on institutionalisation and is done by a Lead Appraiser with a team. Example: Click here to see a sampling summary as published by SEI for Aricent.

 The CMMI results published by SEI can be viewed by clicking here

Current research being carried out by SEI post CMMIv1.3 is

  • Tuning to process requirements in multi model environment
  • Studies of CMMI’s effect on Performance.
  • Mapping CMMI standards with IEEE,ISO etc to set a global standard.
  • tuning for improvement in small organization