| < Day Day Up > |
The CMM
.
for Software is a model for identifying the maturity of an organization in software process development. CMM
.
was developed by the Software Engineering Institute [5] and released as a full version in 1993. It has become a de facto standard for assessing and improving software processes. Its aim is to help software organizations improve the maturity of their software processes from ad hoc,
In addition to software processes
Software process capability describes the range of results that can be expected to be achieved by following a software process. The software process capability of an organization provides one means of predicting the most likely outcome expected from the
Software process performance represents the actual results achieved by following a software process. Thus, software process performance focuses on the results achieved, while software process capability focuses on the results expected.
Software process maturity is the extent to which a specific process is explicitly defined, managed, measured, controlled, and effective.
The main principle of the CMM
.
is simple. It distinguishes five levels of maturity. Each level is identified by a certain number of key process areas. To achieve a particular level of maturity means to
The key practices are intended to communicate principles that apply to a wide variety of projects and organizations, which are valid across a range of typical software applications, and which will
Therefore, the approach is to describe the principles and leave their implementation as the responsibility of each organization, according to its culture and the experiences of its managers and technical staff.
The CMM . specifies five levels of maturity as shown in Figure 12.5. The five CMM . levels are [7]:
Initial . The software process is characterized as ad hoc, and even chaotic. Success depends much on individual effort and heroics . There are no or few processes that are defined.
Repeatable . The main goal of this level is to achieve a stable development environment and establish a project management. Basic project management processes are established to track cost, schedule, and functionality. The processes needed to repeat earlier successes with projects with similar applications are identified at this level.
Figure 12.5:
The software CMM levels.
Defined
. To achieve this level, it is necessary to establish the organization’s common processes and engineering
Managed. This level specifies how to manage the continuous changes to which an organization is exposed. Detailed measurements of the software process and product quality are collected. Both the software process and products are quantitatively evaluated and controlled.
Optimizing . Continuous process improvement is enabled by quantitative feedback from the process and from piloting innovative ideas and technologies.
The key process areas at level two focus on the ability to repeat software projects, so it concerns processes
The key process areas at level three address both project and organizational issues. The key process areas are organization process focus, organization process definition, training program, integrated software management, software product engineering, intergroup coordination, and peer reviews.
The key process areas at level four focus on establishing a quantitative understanding of both the software process and the software work products being built. They are quantitative process management and software quality management.
The key process areas at level five cover the issues that both the organization and the projects must address to implement continual, measurable software process improvement. They are defect prevention, technology change management, and process change management.
On these levels, SCM is a key process area on the second ( repeatable) maturity level. On level five are technology change management and process change management, but these types of change are not directly related to the change management that is a part of SCM. The SCM key process area includes the same types of key practice as other key process areas. The basic principles of the key practices are ensuring the availability of resources for the activities
The following key practices for SCM are specified:
Commitment to perform:
The project
Ability to perform:
A group that is responsible for coordinating and implementing for the project (i.e., the SCM
Adequate resources and funding must be provided for the performance of their activities.
A manager is assigned specific responsibilities for SCM.
Members of the SCM group are trained in the objectives, procedures, and methods for performing their SCM activities.
Activities performed:
An SCM plan is prepared for each software project according to a documented procedure.
A documented and approved SCM plan is used as the basis for performing the SCM activities.
Measurement and analysis:
Measurements are made and used to determine the status of the SCM activities.
Verifying implementation:
The SCM activities are reviewed with the project manager on both a periodic and event-driven basis.
The software quality assurance group reviews and
The CMM has rapidly become widely accepted, and many organizations in both military and civil industries have used it to measure their ability to produce software of high quality and to improve their software development processes. For example, the deployment of SCM tools has increased tremendously during the 1990s, thanks to the popularity of CMM .. Experience indicates, however, that acquiring CMM is difficult. The vast majority of organizations are not able to reach even level two. In
2002, less than 150 organizations in the world reached levels four or five. Indian companies with approximately 80 organizations, which comply with these levels, occupy leading
Although the objectives of the CMM
are the improvement of software development, most of the principles identified in the CMM
are valid for other types of life cycles. Many organizations now apply the CMM
in their processes, which are not
CM is a process area at level two that belongs to a class of support area processes together with process and product quality assurance, measurement and analysis, decision analysis and resolution, and
Figure 12.6:
CM activities in CMMI
CMMI has not yet been accepted as widely as the CMMI , but it is certain that the model will have significant impact on process improvements in many engineering domains.
| < Day Day Up > |