Software Configuration
Management
Software Configuration Management
Baselines
Software Configuration Items
The SCM process
o Version control
o Change control
o Configuration audit
SCM Standard
Software Configuration Management
Software process results in information.
Information may be classified into
Computer Programs (Source code)
Work Products
Data
Items comprise all information produced as part of software
process are collectively called software configuration
Elements of Configuration
Management System
Component Elements – Set of tools coupled within file
management system. (e.g.. Database)
Process Elements – Collection of procedures and tasks that
define an effective approach.
Construction Elements – Set of tools automate the
construction of software
Human Elements – To implement effective SCM, Software
team uses set of tools and process features.
Baseline
IEEE Definition: A specification or product that has been
formally reviewed and agreed upon, and that thereafter
serves as the basis for further development, and that can be
changed only through formal change control procedures
It is a milestone in the development of software and is
marked by the delivery of one or more computer software
configuration items (CSCIs) that have been approved as a
consequence of a formal technical review
A CSCI may be such work products as a document, a test
suite, or a software component
5
Baselining Process
1) A series of software engineering tasks produces a
CSCI
2) The CSCI is reviewed and possibly approved
3) The approved CSCI is given a new version number
and placed in a project database (i.e., software
repository)
4) A copy of the CSCI is taken from the project
database and examined/modified by a software
engineer
5) The baselining of the modified CSCI goes back to
6 Step #2
Baselining Process
Software configuration item
Software configuration item as information that is created as
part of the software engineering process.
SCI could be considered to be a single section of a large
specification or one test case in a large suite of tests.
SCI is a document, a entire suite of test cases, or a named
program component
In addition to the SCIs that are derived from software work
products, many software engineering organizations also place
software tools under configuration control.
The SCM Process
Primary Objectives of the SCM Process
Identify all items that collectively define the
software configuration
Manage changes to one or more of these items
Facilitate construction of different versions of an
application
Ensure the software quality is maintained as the
configuration evolves over time
Provide information on changes that have
occurred
SCM Questions
How does a software team identify the discrete elements of a
software configuration?
How does an organization manage the many existing versions
of a program (and its documentation) in a manner that will
enable change to be accommodated efficiently?
How does an organization control changes before and after
software is released to a customer?
Who has responsibility for approving and ranking changes?
How can we ensure that changes have been made properly?
What mechanism is used to appraise others of changes that are
made?
11
SCM Process Layers
Software
Versions
Status reporting
Configuration auditing
Version control
Change control
Identification
SCI SCI
SCI
SCI SCI
12
Identification Task
Identification separately names each SCI and then
organizes it in the SCM repository using an object-
oriented approach
Objects start out as basic objects and are then grouped
into aggregate objects
Each object has a set of distinct features that identify it
A name that is unambiguous to all other objects
A description that contains the SCI type, a project identifier, and
change and/or version information
List of resources needed by the object.
Configuration objects
SCIs are organized to form
configuration objects that may be
cataloged in the project database
with a single name.
A configuration object has a name,
attributes, and is "connected" to
other objects by relationships.
A curved arrow indicates
compositional relation.
A double-headed straight arrow
indicates an interrelationship.
Change Control
Uncontrolled changes in large software engineering
process leads to chaos.
Change control combines both human procedures and
automated tools.
Too much change control, and we create problems. Too
little, and we create other problems.
Change Control Process
Version Control Task
Version control is a set of procedures and tools for managing
the creation and use of multiple occurrences of objects in the
SCM repository
Required version control capabilities
An SCM repository that stores all relevant configuration objects
A version management capability that stores all versions of a
configuration object (or enables any version to be constructed using
differences from past versions)
A make facility that enables the software engineer to collect all
relevant configuration objects and construct a specific version of the
software
Issues tracking (bug tracking) capability that enables the team to
record and track the status of all outstanding issues associated with
each configuration object
The SCM repository maintains a change set
Serves as a collection of all changes made to a baseline
configuration
Used to create a specific version of the software
Captures all changes to all files in the configuration along
with the reason for changes and details of who made the
changes and when.
Configuration Audit
To ensure changes has been properly implemented
• Formal Technical Review
• Software Configuration Audit
Formal Technical Review focuses on technical
correctness of configuration object that has been
modified.
Software Configuration Audit complements formal
technical review by addressing .
1. Has change specified in ECO been made? Has any
additional modifications incorporated?
2. Has FTR conducted to assess technical correctness?
3. Has software process been followed and software
engineering standards properly applied?
4. Has changes been highlighted in SCI? Have change date and
author been specified?
5. Have SCM procedures for noting changes, recording,
reporting been followed?
6. Have all related SCIs been properly updated?
Status Reporting
Software configuration reporting is SCM task that answer the
following question.
o What happened?
o Who did it?
o When did it happen?
o What else will be affected?
An entry is made in the SCR
o When a configuration audit is conducted.
o When SCI is assigned new or updated identification.
Output from CSR is placed in online database or website so that
the software developers or maintainers can access change
information.