The major aspects of a CM System include all of the following:

  • Change Request Management
  • Configuration Status Accounting/Measurement
  • Configuration Management (CM)
  • Change Tracking
  • Version Selection
  • Software Manufacture

The following CM Cube, suggesting their mutual interdependence, serves to iconograph the major aspects of a CM System.

Concepts: Change Request Management Concepts: Change Request Management Concepts: Change Request Management

Diagram of CM cube showing relationships between Change Request Management, Measurement, and Configuration Managment

 

  1. 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.
  2. 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.
  3. 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 artifacts into constituent sets and maintaining traceability between these versions.
  4. 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'.
  5. 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'.
  6. 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 artifacts 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 artifact 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.



Rational Unified Process  

2003.06.13