Last modified: Nov 20, 2013
Software Configuration Management
Software Configuration Management (SCM) is concerned with all of these
SCM Activities
Version control
Build management
Environment management
Change management
We have seen some tools oriented towards some of these.
Codelines and Baselines
A baseline is a collection of component versions that make up a system.
Codelines and Baselines: Example
Baselines
Environment Management
Coping with the different environments in which the software may need to be installed and/or built.
Example: the ODU Extract Project
Metadata extraction system, needed to support
One release version (thank the heavens)
Windows, Linux, & Mac platforms
Statistical models trained on different document collections
Varying client requirements for data post-processing
Baselines Managed by Build Manager
Build manager may be responsible for collecting desired versions of both external and internal code from version control.
Build files are managed as part of each version.
Codelines == Branches
Main trunk moves forward in time
Change Management
In large organizations, changes are approved by a Change Management Board.
E.g., the team working in an exploratory branch has demonstrated an attractive new feature.
Change Propagation
Even in smaller projects, the issue of change propagation across code lines needs to be kept in mind.
Simpler Project Structure
In current practice,
Large projects composed of multiple subprojects are discouraged