CCS3310 Software Engineering Methods – Lesson 4

Software configuration management (SCM)

is concerned with tracking and controlling changes to the software and project deliverables, and it provides full traceability of the changes made during the project.

It provides a record of what has been changed, as well as who changed it.

  1. SCM involves identifying the configuration items of the system;
  2. controlling changes to them;
  3. and maintaining integrity and traceability.

Software configuration management involves:

  • Identifying what needs to be controlled
  • Ensuring those items are accurately defined and documented
  • Ensuring that changes are made in a controlled manner
  • Ensuring that the correct version of a work product is being used
  • Knowing the version and status of a configuration item at any time
  • Ensuring adherence to standards
  • Planning builds and releases.

Importance of version control

It is your responsibility as a professional developer to properly document software that is intended for use by others.

Managing software complexity is a hugely important part of keeping a project efficient, and that’s hard to do if nobody knows how to use your software, or what methods are safe to call.

In the long run, Semantic Versioning (SemVer), and the insistence on a well defined public API can keep everyone and everything running smoothly.

All lessons >