History of Software Configuration Management
History of Software Configuration Management
management
The history of software configuration management (SCM) in computing can be traced back as
early as the 1950s, when CM (for Configuration Management), originally for hardware
development and production control, was being applied to software development. The first
software configuration management was most likely done manually. Eventually, software tools
were written to manage software changes. History records tend to be based on tools and
companies and lend concepts to a secondary plane.
• determine and identify those entities of the software product that need to be controlled.
• ensure those entities have necessary and accurate definitions and documentation
• ensure changes are made to the entities in a controlled manner.
• ensure that the correct version of the entities/software product are being used; and
• ascertain, at any point in time, the status of an entity (e.g., whether a specific entity is completed,
being changed, waiting to be tested, or released to the customer).
SCM is performed within the context of several basic configuration management disciplines,
including:
• Configuration Identification
• Configuration Control (change control)
• Configuration Status Accounting
• Audits and Reviews
• Release Processing
1.1 Why Is Software Configuration Management Important?
The primary reason for implementing an SCM system is to keep the changing and iterative
entities/software product(s) in a non-degrading state throughout the software lifecycle. This is a
challenge that must be met in order to develop and maintain quality software products. The
quality of the software products is fundamental to the level of quality of the complete system.
SCM provides a common point of integration for all planning, oversight, and implementation
activities for a software project or product line. It provides the framework (labelling and
identification) for interfacing different activities and defining the mechanisms (change controls)
necessary for coordinating parallel activities of different groups. SCM also provides a framework
for controlling computer program interfaces with their underlying support hardware and
coordinating software changes when both hardware and software may be evolving during
development or maintenance activities. SCM provides management with the visibility (through
status accounting and audits) of the evolving software products that make technical and
managerial activities more effective.