Chapter 7. Managing configurations
Introduction to configuration management
Configuration management (commonly abbreviated to "CM") is a discipline that allows software teams to keep track of multiple changes in the software being developed. CM becomes particularly important when several different people work on the same source code.
(Sometimes the term "SCM" is used instead – standing for Software Configuration Management.)
A configuration is a consistent set of files comprising:
Static libraries (for example, *.LIB files)
Dynamic libraries (for example, *.DLL files)
Other run-time files (such as a complete test environment)
Tools (batch files, compilers, etc.) required to build the software in this configuration
Documentation associated with this software.
During a smartphone project, many of the above files will change, many times over. The goal of CM is to make it easy to:
Identify a consistent set of changes. For example, a certain change made in a header file probably requires corresponding changes made in several of the other files in a configuration
Identify the meaning of a set of changes, for example being able to tell which changes are associated with a particular defect fix
Merge the outcomes of two or more sets of changes in source code – made by different team members, and/or by suppliers or partners
Selectively decide whether to accept a set of changes
If need be, reverse out a specific set of changes, whilst preserving other changes made at about the same ...