Software
Process Improvement:
SEI Capability Maturity Model
Fundamental Concepts
The CMM focuses on the capability of software organizations to
produce high-quality products consistently and predictably.
Software process capability is the inherent ability of a software
process to produce planned results.
• DEFINITION (Process) A sequence of steps performed for a given
purpose. The process integrates people, tools, and procedures.
• DEFINTION (Software Process) A set of activities, methods,
practices, and transformations that people employ to develop and
maintain software and the associated products (documents, etc.)
• DEFINTION (Software Process Capability)decribes the range of
expected results that can be achieved by following a software
process.
2
Fundamental Concepts
The CMM focuses on the capability of software organizations to produce high-quality
products consistently and predictably. Software process capability is the inherent
ability of a software process to produce planned results.
• DEFINITION (Software Process Performance) the actual results achieved by
following a software process.
• DEFINTION (Software Process Maturity) the extent to which a specific process is
explicitly defined, managed, measured, controlled, and effective.
As a software organization matures, it needs an infrastructure and culture to
support its methods, practices, and procedures so that they endure after those
who originally defined them have gone.
• DEFINTION (Institutionalization) is the building of infrastructure and culture to
support methods, practices, and procedures so that they are the ongoing way of
doing business.
3
Software Process Maturity Framework
Five Maturity Levels:
• Initial: The software process is characterized by ad hoc, and occasionally even
chaotic. Few processes are defined, and success depends on individual effort and
heroics.
• Repeatable: Basic project management processes are established to track cost,
schedule, and functionality. The necessary process discipline is in place to repeat
earlier successes on projects with similar applications.
• Defined: The software process for both management and engineering activities is
documented, standardized, and integrated into a standard software process for the
organization. All projects use an approved, tailored version of the organization’s
standard software process for developing and maintaining software.
4
Software Process Maturity Framework
Five Maturity Levels (continued):
• Managed: Detailed measures of the software process and product quality are
collected. Both the software process and products are quantitatively understood
and controlled.
• Optimizing: Continuous process improvement is enabled by quantitative feedback
from the process and from piloting innovative ideas and technologies.
5
The CMM Level Structure
Maturity
Levels
Indicate Contains
Key
Process
Process
Capability
Achieves Areas Organized by
Common
Goals Features
Address Contain
Key
Implementation/
Practices
Institutionalization
Describe
Activities or
Infrastructure
6
Key Process Areas
• Definition
Except for level 1, each maturity level is decomposed
into several key process areas that indicate where an
organization should focus to improve its software
process. KPAs identify the issues that must be
addressed to achieve a desired maturity level. If an
organization is at level K+1 then it has addressed all of
the KPAs at levels K.
Each KPA identifies a cluster of activities that, when
performed collectively, achieve a set of goals
considered important for enhancing process capability.
The KPAs may be considered to be the requirements for
achieving a particular maturity level.
7
KPAs – Level 2
• Focus: project concerns related to establishing basic project
management controls.
1. Requirements Management
(establish customer & user repoire, involve customer & users in the
process)
2. Software Project Planning: (establish project management and
engineering procedures)
3. Software Project Tracking and Oversight (make visible to the
organization)
4. Software Subcontract Management (qualified subcontractors)(avoid
disconnect in management and engineering maturity and capability)
5. Software Quality Assurance (make SQA visible to management)
6. Software Configuration Management (control access and change to
engineering work products and project deliverables)
8
KPAs – Level 3
• Focus: project and organizational issues leading toward
the infrastructure that institutionalizes effective
software engineering across all projects.
1. Organization Process focus: coordinate and integrate
process across all projects.
2. Organization Process definition: develop a reusable set of
process assets (documents, training materials) defining the
organization’s standard software process (includes a tool
set)
3. Training program: train personnel in the various process
procedures and roles
4. Integrated Software Management:
5. Software Product engineering:
6. Inter-group coordination:
7. Peer Reviews:
9
KPAs – Level 4
• Focus: establishing a quantitative
understanding of both the software process
and the software products being built (process
and product metrics and measures).
1. Quantitative Process Management: develop the
quantitative measures necessary to control
process performance of software projects.
2. Software Quality Management: develop
quantitative measures necessary to control the
quality of software products.
– Software Quality Metrics
– Metrics Validation Process (IEEE Standard 1061)
10
KPAs – Level 5
• Focus: addressing issues concerning organization and
projects relating to continuous and measurable
software process improvement.
1. Defect Prevention: detect causes of defects and prevent
them from recurring.
2. Technology Change Management: identify beneficial new
technologies (tools, methods, and processes) and transfer
them into the organization in an orderly manner.
3. Process Change Management: continually improve
software processes in the organization with the intent of
improving software quality, increasing productivity, and
decreasing the cycle time for product development.
11