The major aspects of a CM System usually include the following:
-
Change Request Management
-
Configuration Management (CM)
-
Change Tracking
-
Version Selection
CM Systems can also include:
-
Software Manufacture
-
Configuration Status Accounting and Measurement
The following CM Cube, suggesting their mutual interdependence, serves to iconograph the major aspects of a
CM System.
-
Change Request Management (CRM) - addresses the organizational infrastructure required to assess
the cost, and schedule, impact of a requested change to the existing product. Change Request Management
addresses the workings of a Change Review Team or Change Control Board.
-
Configuration Status Accounting (Measurement) - is used to describe the 'state' of the product
based on the type, number, rate and severity of defects found and fixed, during the course of product
development. Metrics derived under this aspect, either through audits or raw data, are useful in
determining the overall completeness status of the project.
-
Configuration Management (CM) - describes the product structure and identifies its constituent
configuration items that are treated as single versionable entities in the configuration management
process. CM deals with defining configurations, building and labeling, and collecting versioned work
products into constituent sets and maintaining traceability between these versions.
-
Change Tracking - describes what is done to elements, for what reason, and at what time. It serves
as history and rationale of changes. It is quite separate from assessing the impact of proposed changes
as described under 'Change Request Management'.
-
Version Selection - the purpose of good 'version selection' is to ensure that right versions of
configuration items are selected for change or implementation. Version selection relies on a solid
foundation of 'configuration identification'.
-
Software Manufacture - covers the need to automate the steps to compile, test, and package
software for distribution.
The Rational Unified Process describes a comprehensive CM System that covers all CM aspects. The purpose is
to allow for an effective CM process that:
-
is built into the software development process.
-
helps manage the evolution of the software development work products.
-
allows developers to execute CM tasks with minimal intrusion into the development process.
One goal of the Rational CM process is to encourage version control of work products captured in
development tools, and to de-emphasize the resource inefficient production of hardcopy documentation
per-se.
Another goal of the Rational CM process is to ensure that the level of control applied to each work product
is based on the maturity level of that product. As work products mature, change authorization migrates from
implementer, to subsystem or system integrator, to project manager and ultimately to the customer.
For the sake of process efficiency it is important to ensure that the bureaucratic overhead associated with
the Change Request Management process is consistent with the maturity of the product.
For example, during early iterations the Change Request Management (CRM) process may be relatively
informal. In the later phases of the development lifecycle, the CRM process can be made more strict to
ensure that necessary test and documentation resources can handle changes as well as assessing the
potential instability that a change may introduce. A project which is unable to tailor the level of control
during the development process will not be running as efficiently as possible.
|