Configuration Management


What is Software Configuration?

The software configuration is an instantaneous snapshot of the physical representation of the software and the software process at some point in time. This representation can take two forms:

What Does Software Configuration Management Mean?

Configuration management consists of three tasks:

Goals

Commitment to perform

Organizational Policy

An individual team member, the SCM manager, is assigned the responsibility for establishing the configuration management activities for the team.

Ability to Perform

The SCM group coordinates or implements:

  1. Creation and management of the project's software baseline library.
  2. Development, maintenance, and distribution of the SCM plans, standards, and procedures.
  3. The identification of the set of work products to be placed under SCM.
  4. Management of the access to the software baseline library.
  5. Updates of the software baselines.
  6. Creation of products from the software baseline library.
  7. Recording of SCM actions.
  8. Production and distribution of SCM reports.

Activities Performed

SCM plan is prepared for each software project according to a documented procedure. This procedure typically specifies that:

  1. The SCM plan is developed in the early stages of, and in parallel with, the overall project planning.
  2. The SCM plan is reviewed by the affected groups.
  3. The SCM plan is managed and controlled.

A documented and approved SCM plan is used as the basis for performing the SCM activities. The plan covers:

  1. The SCM activities to be performed, the schedule of activities, the assigned responsibilities, and the resources required (including staff, tools, and computer facilities).
  2. The SCM requirements and activities to be performed by the software engineering group and other software-related groups.
A configuration management library system is established as a repository for the software baselines

This library system:

  1. Supports multiple control levels of SCM.
  2. Provides for the storage and retrieval of configuration items/units.
  3. Provides for the sharing and transfer of configuration items/units between the affected groups and between control levels within the library.
  4. Helps in the use of product standards for configuration items/units.
  5. Provides for the storage and recovery of archive versions of configuration items/units.
  6. Helps to ensure correct creation of products from the software baseline library.
  7. Provides for the storage, update, and retrieval of SCM records.
  8. Supports production of SCM reports.
  9. Provides for the maintenance of the library structure and contents.

The software work products to be placed under configuration management are identified

.
  1. The configuration items/units are selected based on documented criteria.

    Examples of software work products that may be identified as configuration items/units include:

  2. The configuration items/units are assigned unique identifiers.
  3. The characteristics of each configuration item/unit are specified.
  4. The software baselines to which each configuration item/unit belongs are specified.
  5. The point in its development that each configuration item/unit is placed under configuration management is specified.
  6. The person responsible for each configuration item/unit (i.e., the owner, from a configuration management point of view) is identified.

Change requests and problem reports for all configuration items/units are initiated, recorded, reviewed, approved, and tracked according to a documented procedure.

Changes to baselines are controlled according to a documented procedure.

This procedure typically specifies that:

  1. Reviews and/or regression tests are performed to ensure that changes have not caused unintended effects on the baseline.
  2. Only configuration items/units that are approved by the SCCB are entered into the software baseline library.
  3. Configuration items/units are checked in and out in a manner that maintains the correctness and integrity of the software baseline library.

Products from the software baseline library are created and their release is controlled according to a documented procedure.

This procedure typically specifies that:

  1. The SCCB authorizes the creation of products from the software baseline library.
  2. Products from the software baseline library, for both internal and external use, are built only from configuration items/units in the software baseline library.

The status of configuration items/units is recorded according to a documented procedure. This procedure typically specifies that:

  1. The configuration management actions are recorded in sufficient detail so that the content and status of each configuration item/unit are known and previous versions can be recovered.
  2. The current status and history (i.e., changes and other actions) of each configuration item/unit are maintained.

Standard reports documenting the SCM activities and the contents of the software baseline are developed and made available to affected groups and individuals.

Software baseline audits are conducted according to a documented procedure. This procedure typically specifies that:

  1. There is adequate preparation for the audit.
  2. The integrity of software baselines is assessed.
  3. The structure and facilities of the configuration management library system are reviewed.
  4. The completeness and correctness of the software baseline library contents are verified.
  5. Compliance with applicable SCM standards and procedures is verified.
  6. The results of the audit are reported to the project software manager.
  7. Action items from the audit are tracked to closure.

Measurement and analysis

Measurements are made and used to determine the status of the SCM activities.

Examples of measurements include:


Verifying implementation

The SCM activities are reviewed with the instructor on a periodic basis.

The SCM manager periodically audits software baselines to verify that they conform to the documentation that defines them.

The software quality assurance group reviews and/or audits the activities and work products for SCM and reports the results.

Refer to the Software Quality Assurance key process area.

At a minimum, the reviews and/or audits verify:

  1. Compliance with the SCM standards and procedures by:
  2. Occurrence of periodic software baseline audits.

Adapted from material at Real-World Lab, Georgia Tech. and Key Practices of the Capability Maturity Model, Version 1.1