Configuration management

  • New versions of software systems are created as they change:
    • For different machines/OS;
    • Offering different functionality;
    • Tailored for particular user requirements.
  • Configuration management is concerned with managing evolving software systems:
    • System change is a team activity;
    • CM aims to control the costs and effort involved in making changes to a system.
  • Involves the development and application of procedures and standards to manage an evolving software product.

CM standards

  • CM may be seen as part of a more general quality management process.
  • When released to CM, software systems are sometimes called baselines as they are a starting point for further development.
  • CM should always be based on a set of standards which are applied within an organization.
  • Standards should define how items are identified, how changes are controlled and how new versions are managed.
  • Standards may be based on external CM standards (e.g. IEEE standard for CM).
  • Some existing standards are based on a waterfall process model – new CM standards are needed for evolutionary development.

Configuration management planning

  • All products of the software process may have to be managed:
  • Specifications;
  • Designs;
  • Programs;
  • Test data;
  • User manuals.
  • Thousands of separate documents may be generated for a large, complex software system.

Configuration item identification

  • Large projects typically produce thousands of documents which must be uniquely identified.
  • Some of these documents must be maintained for the lifetime of the software.
  • Document naming scheme should be defined so that related documents have related names.
  • A hierarchical scheme with multi-level names is probably the most flexible approach

Change management

  • Software systems are subject to continual change requests:
  • From users;
  • From developers;
  • From market forces.
  • Change management is concerned with keeping track of these changes and ensuring that they are implemented in the most cost-effective way.

Change Management Process

  • There are six main activities, which jointly form the change management process. They are:
  • Identify potential change
  • Analyze change request
  • Evaluate change
  • Plan change
  • Implement change
  • Review and close change.
  • These activities are executed by four different roles

Change control board

  • Changes should be reviewed by an external group who decide whether or not they are cost-effective from a strategic and organizational viewpoint rather than a technical viewpoint.
  • Should be independent of project responsible for system. The group is sometimes called a change control board.
  • The CCB may include representatives from client and contractor staff.

CASE tools for configuration management

  • CM processes are standardized and involve applying pre-defined procedures.
  • Large amounts of data must be managed.
  • CASE tool support for CM is therefore essential.
  • Mature CASE tools to support configuration management are available ranging from stand-alone tools to integrated CM workbenches.

Change management tools

  • Change management is a procedural process so it can be modelled and integrated with a version management system.
  • Change management tools
  • Change management tools
  • Form editor to support processing the change request forms;
  • Workflow system to define who does what and to automate information transfer;
  • Change database that manages change proposals and is linked to a VM system;
  • Change reporting system that generates management reports on the status of change requests.