Configuration Management
Configuration Management
Configuration Management
Management
Why Is Software Difficult
to Build?
Lack of control
Lack of monitoring
Lack of traceability
Uncontrolled changes
Conflicts in Team
Software Development
Simultaneous updates – how to
prevent one person from undoing
the changes of another
Shared and common code – how to
notify everyone who needs to
know about a change
Versions – how to make changes to
all affected versions when needed
Software Configuration
Management Basics
Identification – identifying software
configuration items in a baseline
Control – controlling the release of a product
and changes to it throughout its lifecycle
Status Accounting – recording and reporting
of the status of components and changes
Auditing and Reviewing – Validating the
completeness of a product and that SCM
procedures are being followed
SCM Definitions
Baseline – One or more software
configuration items that have been
formally reviewed and agreed upon and
serve as a basis for further development
Software Configuration Item – A collection
of software elements treated as a unit for
the purposes of SCM
Configuration – A collection of all the
elements of a baseline and a description
of how they fit together
SCM Definitions (cont’d)
Configuration Control Board – Group
with the responsibility for reviewing and
approving changes to baselines
Software – All of the code,
specifications, plans, descriptions,
processes, and documents associated
with a software development effort
Version – A specific instance of a
baseline or configuration item
Examples of Configuration
Items
Product concept specification
Software project plans
Software requirements specifications
Software design descriptions
Source code
Database descriptions
SCM procedures
Software release processes
Software test documents
User documentation
Maintenance documentation
Version Control
Allows different projects to use the same
source files at the same time
Isolates work that is not ready to be
shared by the rest of the project
Isolates work that should never be
shared
Allows software engineers to continue
development along a branch even when
a line of development is frozen
Change Control
Proposed changes to baselines must have some
level of review
The impact of proposed changes must be
identified and understood.
When appropriate the approval of the CCB, key
managers and project members must be
obtained
Approved changes must be properly implemented
After changes are made all affected parties must
be notified
Baseline Management
Change is inevitable
Defined procedures are required to manage
change without preventing change
Software presents many challenges from a
control, management, and tracking
perspective
Knowing what you have and how you got
there is very important
Being able to recreate exactly what is
delivered to customers is essential