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:

  • Source code

  • Header files

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

Get Symbian for Software Leaders: Principles of Successful Smartphone Development Projects now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.