Back to the 2025 paper

Module 5: Software Maintenance

20257m

What is configuration management in the context of software maintenance? Why is it important?

Worked SolutionAI Assisted

Configuration Management in Software Maintenance

What is Configuration Management (SCM)?

Software Configuration Management is the discipline of identifying, organizing, and controlling changes to the software throughout its life cycle — especially during maintenance, when the software is constantly being modified. It ensures that changes are made systematically and that the system remains consistent and traceable at every point.

Core activities (the 5 pillars of SCM)

  1. Configuration Identification — defining and labelling the configuration items (CI): source files, documents, data, build scripts, executables — each assigned a unique identifier/version.
  2. Version Control — tracking every version/revision of each configuration item, enabling retrieval of any historical state (e.g., Git, SVN).
  3. Change Control — a formal process for requesting, evaluating (CCB — Change Control Board), approving, implementing, and reviewing changes:
    Change request → impact analysis → CCB approval → implement → verify → update baselines
    
  4. Configuration Status Accounting — recording and reporting the status of all CIs and change requests (what changed, when, by whom, why).
  5. Configuration Audit / Review — verifying (functional & physical audits) that the delivered configuration matches the approved specifications and that records are accurate.

Baselines

A baseline is a formally reviewed and agreed-upon snapshot of configuration items (e.g., the SRS baseline, design baseline, code baseline). After a baseline is set, changes are made only through formal change control; baselines provide stable reference points for development, testing, and delivery.

Why is it important (especially in maintenance)?

  1. Control of change chaos — maintenance is a long stream of fixes and enhancements; without SCM, uncontrolled changes corrupt the system ("code drift").
  2. Traceability & reproducibility — you can always reconstruct exactly which versions produced a given build/release; critical for debugging field failures and for legal/audit compliance.
  3. Team coordination — prevents conflicting edits; multiple maintainers can work in parallel safely.
  4. Risk reduction — rollback to a known-good state is always possible if a change fails.
  5. Support for multiple versions/sites — maintenance often involves supporting several releases (customer-specific versions); SCM manages all of them.
  6. Quality assurance — audits and baselines give management confidence that delivered software matches what was approved and tested.

Summary: Configuration management is the backbone of software maintenance — it keeps every change identified, controlled, recorded, and auditable so the evolving software never loses its consistency, traceability, or recoverability.

Similar questions

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.