Software Engineering Process - II 10.1
Unit 10:
Integrated Capability Maturity Model (CMMI)
Software Engineering Process - II
Software Engineering Process - II 10.2
What are your expectations from this unit?
Before You Begin…
Software Engineering Process - II 10.3
Unit Objectives
Describe the SEI-CMMI evolution.
Describe the CMMI framework.
Identify the key process areas, goals, and practices, and explain assessment process.
Explain the staged CMMI model and its advantages.
Describe the continuous CMMI model and its advantages.
Describe the CMMI implementation approach.
Identify the benefits of CMMI.
Software Engineering Process - II 10.4
SEI-CMMI Evolution
In the mid-1980s, the Software Engineering Institute (SEI) initiated a study of assessing the capabilities of software contractors.
The outcome of this capability assessment was the SEI Software Capability Maturity Model (CMM).
The software CMM was followed by a range of other models including the People Capability Maturity Model (P-CMM).
Software Engineering Process - II 10.5
SEI-CMMI Evolution (cont.)
SEI started a new program to integrate all the earlier models to develop an integrated capability maturity model (CMMI).
This integrated model supercedes the CMM, covers its reported weaknesses, and has two instantiations, staged and continuous.
The CMMI model is a framework for process improvement and is applicable across a range of companies.
Software Engineering Process - II 10.6
SEI-CMMI Framework
The SEI-CMMI model has two versions:
Staged: Is compatible with the software CMM and allows assessment of an organization’s system development and management processes at a maturity level from 1 to 5.
Continuous: Allows for a finer-grain classification and rates 24 process areas on a scale from 1 to 6.
Software Engineering Process - II 10.7
SEI-CMMI Framework (cont.)
The SEI-CMMI model includes:
Process areas: The CMMI identifies 24 process areas, relevant to software process capability and improvement. These process areas are organized into four
groups.
Goals: Goals define the desirable state that should be attained by an organization. The CMMI has specific goals associated with each
process area.
The CMMI also has generic goals, which institutionalize good practices.
Software Engineering Process - II 10.8
SEI-CMMI Framework (cont.)
Practices: Practices define ways to achieve a goal.
The CMMI defines up to seven specific and generic practices that may be associated with each goal within each process area.
Software Engineering Process - II 10.9
CMMI Process AreasCategory Process Area
Process Management Organizational process definitionOrganizational process designOrganizational trainingOrganizational process performanceOrganizational innovation and deployment
Project Management Project planningProject monitoring and controlSupplier agreement managementIntegrated project managementRisk managementIntegrated teamingQuantitative project management
Engineering Requirements managementRequirements developmentTechnical solutionProduct integrationVerificationValidation
Support Configuration managementProcess and product quality managementMeasurement and analysisDecision analysis and resolutionOrganizational environment for integrationCausal analysis and resolution
Software Engineering Process - II 10.10
Process Areas and Goals - Examples
Goal Process Area
Corrective actions are managed to closure when the project’s performance or results deviate significantly from the plan.
Specific goal in project monitoring and control
Actual performance and progress of the project is monitored against the project plan.
Specific goal in project monitoring and control
The requirements are analyzed and validated and a definition of the required functionality is developed
Specific goal in requirements development
Root cause of defect and other problems are systematically determined.
Specific goal in causal analysis and resolution
The process is institutionalized as a defined process
Generic goal
Software Engineering Process - II 10.11
Practices and Goals - Examples
Practice Associated goal
Analyze derived requirements to ensure that they are necessary and sufficient.
Validate requirements to ensure that the resulting product will perform as intended in the user’s environment using multiple techniques as appropriate.
The requirements are analyzed and validated, and a definition of the required functionality is developed.
Select the defects and other problems for analysis.
Perform causal analysis of selected defects and other problems and propose actions to address them.
Root causes of defects and other problems are systematically determined.
Establish and maintain an organizational policy for planning and performing the process, developing the work products, and providing the services of the requirements development process.
Assign responsibility and authority for performing the process, developing the work products, and providing the services of the requirements development process.
The process is institutionalized as a defined process.
Software Engineering Process - II 10.12
Class Activity - 1
Identify two possible goals for the following process areas:
Requirement management
Configuration management
Software Engineering Process - II 10.13
CMMI Assessment Process
The CMMI assessment involves examining the processes in an organization and rating these on a six-point scale based on their level of maturity.
The six-point scale assigns a level to a process as follows:
Not performed: One or more of the specific goals associated with the process areas is not satisfied.
Performed: Goals are satisfied. The scope of work for each process area is defined and communicated to team members.
Software Engineering Process - II 10.14
CMMI Assessment Process (cont.)
Managed:
The goals associated with process areas are met and organizational policies are in place.
Documented plans, resource management, and process monitoring procedures must exist.
Defined:
Each project in the organization has a managed process that is tailored from a defined set of organizational processes.
Process assets and measurements must be collected and used for future process improvements.
Software Engineering Process - II 10.15
CMMI Assessment Process (cont.)
Quantitatively managed: There is an organizational responsibility to use statistical and other quantitative methods to control subprocesses.
Optimizing:
The organization must use the process and product measurements to drive the process improvement.
The processes must adapt to changing business needs.
Software Engineering Process - II 10.16
Staged CMMI Model
This model assesses an organization’s process capability on a scale of 1 to 5. It prescribes goals that should be achieved at each level.
Software Engineering Process - II 10.17
Staged CMMI Model (cont.)
The process areas at level 2 are:
Requirements management
Project planning
Project monitoring and control
Supplier agreement management
Measurement and analysis
Process and product quality assurance
Configuration management
Software Engineering Process - II 10.18
Class Activity - 2
List some practices that could help an organization to make project planning a managed process.
Software Engineering Process - II 10.19
Staged CMMI Model (cont.)
The advantages of the staged model are:
It is compatible with the software CMM model.
It defines a clear improvement path for the organizations.
The disadvantages of the staged model are:
A maturity assessment at lower levels gives a misleading picture of the organization’s capability.
Software Engineering Process - II 10.20
Continuous CMMI Model
This model does not assess an organization according to discrete levels.
This model considers individual or groups of practices and assesses the use of each practice on a six-point scale.
The maturity assessment is not a single value but a set of values showing the organization's maturity for a group of processes.
Software Engineering Process - II 10.21
Continuous CMMI Model (cont.)
Software Engineering Process - II 10.22
Class Activity - 3
List some advantages of the continuous model.
Software Engineering Process - II 10.23
Implementing CMMI
The CMMI implementation approach includes the following key principles:
Maintain executive support
Choose objectives carefully
Leverage best practices
Align process improvement with business objectives
Build an integrated improvement infrastructure
Integrate legacy processes and initiatives
Software Engineering Process - II 10.24
Benefits of CMMI
The CMMI :
Identifies many cross-organizational issues and provides a unique opportunity to address them.
Helps achieve optimization of processes in a cross-discipline environment.
Yields more accurate project planning and reduced cycle time.
Provides an opportunity to implement integrated engineering assets.
Helps gain an industry-wide recognition for excellence.
Software Engineering Process - II 10.25
Summary
What was your key learning from the unit?