Software Maintenance · Software Engineering

Configuration Management

Watch lectures

Configuration Management

Definition

Software Configuration Management (SCM) is the discipline of systematically controlling and tracking changes to software artifacts (code, documents, requirements, designs) throughout the software lifecycle, ensuring consistency, traceability, and the ability to reproduce any past version.

Why SCM Is Needed

  • Multiple developers work on the same codebase simultaneously — need to manage concurrent changes
  • Need to track exactly what changed, when, why, and by whom
  • Need the ability to roll back to a previous working version if something breaks
  • Especially critical during maintenance, when many small, ongoing changes occur

Key SCM Activities

1. Configuration Identification

  • Identify and uniquely label all configuration items (CIs) — source code, documents, test cases, requirements — that need to be tracked

2. Version Control

  • Track different versions/revisions of each configuration item over time
  • Tools: Git, SVN, Mercurial

3. Change Control

  • Formal process for requesting, reviewing, approving, and implementing changes
  • Often managed by a Change Control Board (CCB)

4. Configuration Status Accounting

  • Maintain records of the status of each configuration item — what version is currently deployed, what changes are pending

5. Configuration Auditing

  • Verify that the delivered system actually matches its documented configuration (i.e., what was built matches what was specified)

SCM and Baselines

A baseline is a formally reviewed and agreed-upon version of a configuration item, which serves as the basis for further development — changes beyond a baseline require formal change control.

Benefits of SCM

  • Enables parallel development by multiple developers without conflicts
  • Provides traceability — know exactly what changed and why
  • Supports rollback to a known-good state if a change causes problems
  • Essential for regulatory compliance in many industries (audit trail of all changes)

Common SCM Tools

  • Git/GitHub/GitLab — version control
  • Jenkins — build/release management integration
  • JIRA — change request tracking

Exam tip: Know the 5 key SCM activities (Identification, Version Control, Change Control, Status Accounting, Auditing) and the concept of a baseline — commonly asked as "explain configuration management and its activities."

Budget AppAndroid App

Pocketly on Android

Log daily food, travel, and hostel expenses instantly. Set monthly spending limits and see where your money goes without complex spreadsheets.

← All Software Engineering modules