- 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 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:
- 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
- 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.