Software Engineering | Capability maturity model (CMM)

CMM was developed by the Software Engineering Institute (SEI) at Carnegie Mellon University in 1987.

  • It is not a software process model. It is a framework which is used to analyse the approach and techniques followed by any organization to develop a software product.
  • It also provides guidelines to further enhance the maturity of those software products.
  • It is based on profound feedback and development practices adopted by the most successful organizations worldwide.
  • This model describes a strategy that should be followed by moving through 5 different levels.
  • Each level of maturity shows a process capability level. All the levels except level-1 are further described by Key Process Areas (KPA’s).

Key Process Areas (KPA’s):
Each of these KPA’s defines the basic requirements that should be met by a software process in order to satisfy the KPA and achieve that level of maturity.

Conceptually, key process areas form the basis for management control of the software project and establish a context in which technical methods are applied, work products like models, documents, data, reports, etc. are produced, milestones are established, quality is ensured and change is properly managed.

The 5 levels of CMM are as follows:

Level-1: Initial –

  • No KPA’s defined.
  • Processes followed are adhoc and immature and are not well defined.
  • Unstable environment for software dvelopment.
  • No basis for predicting product quality, time for completion, etc.

Level-2: Repeatable –

  • Focuses on establishing basic project management policies.
  • Experience with earlier projects is used for managing new similar natured projects.

  • Project Planning- It includes defining resources required, goals, constraints, etc. for the project. It presents a detailed plan to be followed systematically for successful completion of a good quality software.
  • Configuration Management- The focus is on maintaining the performance of the software product, including all its components, for the entire lifecycle.
  • Requirements Management- It includes the management of customer reviews and feedback which result in some changes in the requirement set. It also consists of accommodation of those modified requirements.
  • Subcontract Management- It focuses on the effective management of qualified software contractors i.e. it manages the parts of the software which are developed by third parties.
  • Software Quality Assurance- It guarantees a good quality software product by following certain rules and quality standard guidelines while development.

Level-3: Defined –

  • At this level, documentation of the standard guidelines and procedures takes place.
  • It is a well defined integrated set of project specific software engineering and management processes.

  • Peer Reviews- In this method, defects are removed by using a number of review methods like walkthroughs, inspections, buddy checks, etc.
  • Intergroup Coordination- It consists of planned interactions between different development teams to ensure efficient and proper fulfilment of customer needs.
  • Organization Process Definition- It’s key focus is on the development and maintenance of the standard development processes.
  • Organization Process Focus- It includes activities and practices that should be followed to improve the process capabilities of an organization.
  • Training Programs- It focuses on the enhancement of knowledge and skills of the team members including the developers and ensuring an increase in work efficiency.

Level-4: Managed –

  • At this stage, quantitative quality goals are set for the organization for software products as well as software processes.
  • The measurements made help the organization to predict the product and process quality within some limits defined quantitatively.

  • Software Quality Management- It includes the establishment of plans and strategies to develop a quantitative analysis and understanding of the product’s quality.
  • Quantitative Management- It focuses on controlling the project performance in a quantitative manner.

Level-5: Optimizing –

  • This is the highest level of process maturity in CMM and focuses on continuous process improvement in the organization using quantitative feedback.
  • Use of new tools, techniques and evaluation of software processes is done to prevent recurrence of known defects.

  • Process Change Management- Its focus is on the continuous improvement of organization’s software processes to improve productivity, quality and cycle time for the software product.
  • Technology Change Management- It consists of identification and use of new technologies to improve product quality and decrease the product development time.
  • Defect Prevention- It focuses on identification of causes of defects and to prevent them from recurring in future projects by improving project defined process.

This article is attributed to GeeksforGeeks.org

leave a comment



load comments

Subscribe to Our Newsletter