Software Configuration Management Tools
Abstract
Most tools sold under the SCM banner of are point solutions, which do not address all the aspects of the SCM discipline or its operational execution. In other words, they do not address the four major elements identified in the IEEE definition of CM: identification, change management, status accounting, and audit. They also do not address SCM as “a management tool that applies an engineering discipline to manage the evolution of a software system from concept through to system retirement. The primary focus of this discipline is to ensure the repeatability, traceability, and integrity of the system being developed and produced.” As a result, it is incumbent on the evaluator/selector and user of SCM tools to understand what their requirements are, what business problems they are trying to resolve, and what functionality is really needed to effectively satisfy those requirements.
Establishing tool requirements is the most important step in selecting and implementing SCM tools. The requirements definition process frequently includes requirements that should not be heavily weighted, yet are standard definitions of CM focus more on the goals of CM, such as maintaining integrity of data and verifying the consistency of configurations. When buying a CM tool, it is the operational aspects of CM (version and workspace management, etc., described here) that provide functionality over the complete evolution of a product from concept to retirement that are important to consider.
One way to classify SCM tools is by the underlying computing architecture, such as client/server, mainframe, or distributed. Another approach is to examine the operations or functions that tools execute. Using a functional approach simplifies comparison of different tools and determining which one best satisfies the requirements that have been defined. A third approach combines goal-based definitions of SCM with the functions that address them, and is described.