Skip to content
Related Articles
Open in App
Not now

Related Articles

Software Engineering | Capability maturity model (CMM)

Improve Article
Save Article
  • Difficulty Level : Medium
  • Last Updated : 13 Aug, 2021
Improve Article
Save Article

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 that is used to analyze the approach and techniques followed by any organization to develop software products.
  • It also provides guidelines to further enhance the maturity of the process used to develop those software products.
  • It is based on profound feedback and development practices adopted by the most successful organizations worldwide.
  • This model describes a strategy for software process improvement 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).

Shortcomings of SEI/CMM:

  • It encourages the achievement of a higher maturity level in some cases by displacing the true mission, which is improving the process and overall software quality.
  • It only helps if it is put into place early in the software development process.
  • It has no formal theoretical basis and in fact is based on the experience of very knowledgeable people.
  • It does not have good empirical support and this same empirical support could also be constructed to support other models.

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 development.
  • 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 the successful completion of 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 developing.

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 fulfillment of customer needs.
  • Organization Process Definition- Its 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 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 the organization’s software processes to improve productivity, quality, and cycle time for the software product.
  • Technology Change Management- It consists of the identification and use of new technologies to improve product quality and decrease product development time.
  • Defect Prevention- It focuses on the identification of causes of defects and prevents them from recurring in future projects by improving project-defined processes.
My Personal Notes arrow_drop_up
Related Articles

Start Your Coding Journey Now!