1 Summary
original source: https://sceweb.uhcl.edu/boetticher/swen5230/concepts-in-configuration-management.pdf
This paper is a bit outdated but contains a good overview of what configuration management means, and what the functionalities of a CM system are, and how CM is used by different roles.
2 Definition of configuration management
The term is defined in the 729-1983 - IEEE Standard Glossary of Software Engineering Terminology.
configuration management (CM). A discipline applying technical and administrative direction and surveillance to: identify and document the functional and physical characteristics of a configuration item, control changes to those characteristics, record and report change processing and implementation status, and verify compliance with specified requirements.
CM should
- identify a products structure
- control releases and changes
- gather statistics and manage change requests and component status
- ensure that a product is well defined assembly of components
and adheres to standards, audit and review
A CM system should implement functionality for all these aspects, but in reality implements only a part of them, and stuff beyond that.
3 User scenario
CM is and important thing of daily work from many perspectives
- The project manager wants to deliver timely, so he is interested in statistics and reviews
- the configuaration manager (?) makes sure procedures for creating, reviewing, testing
code are followed, tracks which components are problematic, makes system info available
- Software engineers want to work effectively and use CM to manage tasks, merge changes
- testers track test results for different versions/configurations
- QA track bugs and assign them to different versions, and follow up on customer complaint
4 Functionality of a CM system
The above yields the following functionality every CM system should have
- Identification, classification, storage and retrieval of the different components that make up a system. Versioning of components, definition what components make up a working system, definition of baselines (significant states).
- Some mechanics for documenting structure of the overall system (e.g. component inter-dependencies), and manual system modelling.
- Providing a way of (re-) building a system configuration.
- Tooling for teamwork and the development process with mechanisms for bug tracking, change requests and merging of work, along with access control.
- Enables reports and audits of the system such as the change history and a log documenting the work done.
… The rest of the paper describes things like when to use CM, and CM automation, along with a extensive description of CM systems and their concepts, which i skipped reading for now. this part is also a bit outdated given that the paper is from 1991