ScholarGate
Asystent

Software Configuration Management

Software configuration management (SCM) is the discipline of identifying, controlling, and tracking the versions and changes of software artifacts so that the state of a system is known and reproducible throughout its life.

Znajdź temat z PaperMindWkrótceFind papers & topics
Tools & resources
Pobierz slajdy
Learn & explore
WideoWkrótce

Definition

Software configuration management is the set of activities for identifying configuration items, controlling changes to them, recording and reporting change status, and verifying completeness and correctness, so that the evolving software is managed in a controlled, reproducible way.

Scope

This topic covers configuration identification and baselines; version control systems and branching and merging models; change control and the role of a change control board; build and release management; configuration status accounting and auditing; and standards such as ISO/IEC/IEEE 828 that define SCM processes.

Core questions

  • How are configuration items identified and baselined?
  • How do version control and branching models manage concurrent change?
  • How are changes proposed, reviewed, and approved?
  • How is the status and integrity of configurations recorded and audited?

Key theories

Baselines and configuration control
A baseline is a formally reviewed configuration that serves as a stable reference; changes to baselined items pass through controlled review and approval, keeping the system in a known, reproducible state.
Distributed version control and branching
Modern systems such as Git give every developer a full repository and support cheap branching and merging, enabling parallel work and integration workflows that underpin continuous integration and delivery.

Clinical relevance

SCM makes builds reproducible, changes traceable, and releases controllable; without it teams cannot reliably reproduce a shipped version, coordinate concurrent work, or audit what changed, which is foundational to dependable delivery and to DevOps automation.

Evidence & guidelines

ISO/IEC/IEEE 828 specifies configuration management processes, and the SWEBOK Software Configuration Management knowledge area provides a consensus reference for SCM activities.

History

Version control evolved from early tools such as SCCS and RCS in the 1970s and 1980s through centralized systems like CVS and Subversion to distributed systems such as Git in the 2000s; formal configuration-management practice migrated from hardware and defense standards into mainstream software engineering.

Debates

Branching strategies
Teams debate workflows such as trunk-based development versus long-lived feature branches and Git-flow; trunk-based development with frequent integration supports continuous delivery, while heavier branching can isolate work at the cost of painful merges.

Key figures

  • Walter Tichy
  • Linus Torvalds
  • Marc Rochkind

Related topics

Seminal works

  • ieee828
  • chacon2014
  • swebok2014

Frequently asked questions

Is configuration management just version control?
No. Version control is a central tool, but SCM is broader: it also covers configuration identification, baselines, change control, build and release management, and status accounting and auditing of all configuration items, not only source code.
Why are baselines important?
A baseline records a known-good configuration that can be reproduced and built upon; it provides a stable reference for controlled change, lets teams roll back, and is essential for reproducible releases and audits.

Methods for this concept

Related concepts