Compiled by:- Farah Syed
CMMI is a process improvement approach that provides organizations with the essential elements of effective processes that ultimately improve their performance. CMMI can be used to guide process improvement across a project, a division, or an entire organization. It helps integrate traditionally separate organizational functions, set process improvement goals and priorities, provide guidance for quality processes, and provide a point of reference for appraising current processes.
CMMI was developed by the CMMI project, which aimed to improve the usability of maturity models by integrating many different models into one framework. The project consisted of members of industry, government and the Carnegie Mellon Software Engineering Institute (SEI). The main sponsors included the Office of the Secretary of Defense (OSD) and the National Defense Industrial Association.
CMMI is the successor of the capability maturity model (CMM) or software CMM. The CMM was developed from 1987 until 1997. In 2002, CMMI Version 1.1 was released, Version 1.2 followed in August 2006, and Version 1.3 in October 2010.
Concept of CMMI:-
The CMMI provides a set of recommended practices that defines key process areas specific to software development.The objective of the CMMI is to offer guidance on how an organization can best control its processes for developing and maintaining software. In addition the CMMI provides a path for helping organizations evolve their current software process toward software engineering and management excellence.
To understand how the CMMI may support an organization,several concept must be defined.
· Software process
A set of activities,methods or practices and transformation used by people to develop and maintain software and the deliverables associated with software project.included are such things as projects plans,,design documents,code,test cases,user manuals,and so forth.
· Software process capability
The expected results that can be achieved by following a particular software process.More specifically,the capability of an organization’s software processes provides a way of prediciting the outcomes that can be expected if the same software processes are used from one software project to the next.
· Software process performance
The actual results that are achieved by following a particular software process.therefore,the actual results achieved through software process performance can be compared to the expected results achieved through software process capability.
· Software process maturity
The extent to which a particular software process is explicitly and consistently defined,managed,,measured,controlled,and effectively used throughout the organization.
CMMI MATURITY LEVELS:-
CMMI defines five levels of process maturity each maturity,each requiring many small steps as a path of incremental and continuous process improvement.Maturity levels provide a well defined, evolutionary path for achieving a mature software process organizations. With the exception of level 1,each maturity level encompasses several key process areas that an organization must have in place in order to achieve a particular level of maturity. There are five levels of software process maturity.
Level 1:Initial:- The Initials level generally provides a starting point for many software organizations. This level is characterized by an immature software organization in which the software process is adhoc and often reactive to crises.
Level 2: Repeatable: At this level, basic policies,processes,and controls for managing a software project are in place.project schedules and budgets are more realistic because planning and managing new projects is based upon past experiences with similar projects.
Level 3:Defined :- At level 3,software engineering and management processes are documented and standardized throughout the organization and become the organization’s standard process.Activities ,roles and responsibilities are well defined and understood through the organization.
Level 4: Managed:- At this level quantitative metrics for measuring and assessing productivity and quality established for both software products and processes.This information is collected and stored in an organization-wide repository that can be used to analyze and evaluate software processes and products.The software process of software organizations at this level are charterized as being quantifiable and predictable because quantitative controls are in place to determine whether the process performs within operational limits.
Level 5: Optimizing:- At this highest level of software process maturity,the whole organization is focused on continuous process improvements.These improvements come about as a result of innovations using new technology and methods and incremental process improvements..