Software Configuration Management
Software Configuration Management (SCM) Activities and Terms
Outline of a Software Configuration Management Plan
Configuration Management Tools
1
Terminology
We will define the following terms
Configuration Item
Baseline
SCM Directories
Version
Revision
Release
➢ The definition of the terms follows the IEEE standard.
➢ Different configuration management systems may use different
terms.
Example: CVS configuration management system uses terms different from
the IEEE standard.
2
Terminology
Configuration Item
“An aggregation of hardware, software, or both, that is designated for
configuration management and treated as a single entity in the
configuration management process.”
❖ Software configuration items are not only program code segments but all type of
documents according to development, e.g.,
all type of code files
drivers for tests
analysis or design documents
user or developer manuals
system configurations (e.g. version of compiler used)
❖ In some systems, not only software but also hardware configuration items (CPUs,
bus speed frequencies) exist!
3
Example: Configuration Item Tree
“The project” CI
Models Subsystems Documents
Object Model Dynamic Model RAD ODD ....
Database User Interface ....
.... Code Data Unit Test ....
4
“The project”
Terminology
Version: The initial release or re-release of a configuration item
associated with a complete compilation or recompilation of the item.
Different versions have different functionality.
Baseline: “A specification or product that has been formally
reviewed and agreed to by responsible management, that thereafter
serves as the basis for further development, and can be changed only
through formal change control procedures.”
Examples:
Baseline A: All the API have completely been defined; the bodies of the
methods are empty.
Baseline B: All data access methods are implemented and tested.
Baseline C: The GUI is implemented.
5
More on Baselines
As systems are developed, a series of baselines is developed, usually
after a review (analysis review, design review, code review, system
testing, client acceptance, ...)
Developmental baseline (RAD, SDD, Integration Test, ...)
⧫ Goal: Coordinate engineering activities.
Functional baseline (first prototype, alpha release, beta release)
⧫ Goal: Get first customer experiences with functional system.
Product baseline (product)
⧫ Goal: Coordinate sales and customer support.
Many naming scheme for baselines exist (1.0, 6.01a, ...)
A 3 digit scheme is quite common:
7.5.5
Release Version Revision
(Customer) (Developer) (Developer)
6
Baselines in SCM
Baseline A (developmental)
Baseline B (functional, first prototype)
Baseline C (functional, beta test)
Official Release
How do we manage changes in the baselines?
Time
7
Change management
Change management is the handling of change requests
General change process
The change is requested (this can be done by anyone including users and
developers)
The change request is assessed against project goals
Following the assessment, the change is accepted or rejected
If it is accepted, the change is assigned to a developer and implemented
The implemented change is audited.
The complexity of the change management process varies with the project. Small
projects can perform change requests informally and fast while complex projects
require detailed change request forms and the official approval by one more
managers.
8
Controlling Changes
Two types of controlling change:
Promotion: The internal development state of a software is changed.
Release: A changed software system is made visible outside the development organization.
Promote Release
Policy Policy
User
Programmer Master Software Repository
Promotion Directory Release
Approaches for controlling change (Change Policy)
Informal (good for research type environments and promotions)
Formal approach (good for externally developed CIs and for releases)
9
Terminology: SCM Directories
Programmer’s Directory (IEEE: Dynamic Library)
Library for holding newly created or modified software entities.
The programmer’s workspace is controlled by the programmer only.
Master Directory (IEEE: Controlled Library)
Manages the current baseline(s) and for controlling changes made to
them.
Entry is controlled, usually after verification.
Changes must be authorized.
Software Repository (IEEE: Static Library)
Archive for the various baselines released for general use.
Copies of these baselines may be made available to requesting
organizations.
10
Standard SCM Directories
Programmer’s Directory
(IEEE Std: “Dynamic Library”)
Completely under control of one
programmer.
Promotion
Master Directory
(IEEE Std: “Controlled Library”) Central source
code archive
Central directory of all promotions.
Release
Software Repository
(IEEE Std: “Static Library”)
Foo’95 Foo’98
Externally released baselines.
11
Change Policies
Whenever a promotion or a release is performed, one or more
policies apply. The purpose of change policies is to guarantee that
each version, revision or release conforms to commonly accepted
criteria.
Examples for change policies:
“No developer is allowed to promote source code which cannot be
compiled without errors and warnings.”
“No baseline can be released without having been beta-tested by at least
500 external persons.”
12
Terminology: Version vs. Revision vs. Release
Version:
An initial release or re-release of a configuration item associated with a
complete compilation or recompilation of the item. Different versions have
different functionality.
Revision:
Change to a version that corrects only errors in the design/code but does
not affect the documented functionality.
Release:
The formal distribution of an approved version.
Question: Is Windows98 a new version or a new revision compared
to Windows95 ?
13
Software Configuration Management Planning
Software configuration management planning starts during the early
phases of a project.
The outcome of the SCM planning phase is the
Software Configuration Management Plan (SCMP)
which might be extended or revised during the rest of the project.
The SCMP can either follow a public standard like the IEEE 828, or
an internal (e.g. company specific) standard.
14
The Software Configuration Management Plan
Defines the types of documents to be managed and a document
naming scheme.
Defines who takes responsibility for the CM procedures and creation
of baselines.
Defines policies for change control and version management.
Describes the tools which should be used to assist the CM process
and any limitations on their use.
Defines the configuration management database used to record
configuration information.
15
Outline of a Software Configuration Management Plan
(SCMP, IEEE 828-1990)
1. Introduction 4. Schedule (WHEN?)
Describes purpose, scope of Establishes the sequence and
application, key terms and coordination of the SCM activities
references with project milestones.
2. Management (WHO?) 5. Resources (HOW?)
Identifies the responsibilities and Identifies tools and techniques
authorities for accomplishing the required for the implementation of
planned configuration management the SCMP
activities 6. Maintenance
3. Activities (WHAT?) Identifies activities and
Identifies the activities to be responsibilities on how the SCMP
performed in applying to the will be kept current during the life-
project. cycle of the project.
16
SCMP Section 1: Introduction
1.1 Simplified overview of the configuration management activities.
1.2 Scope:
Overview description of the project
Identification of the CI(s) to which software configuration management
will be applied.
1.3 Identification of other software to be included as part of the SCMP
(support software and test software)
1.4 Relationship of SCM to hardware of system configuration
management activities
1.5 Degree of formality and depth of control for applying SCM to
project.
1.6 Limitations and time constraints for applying SCM to this project
1.7 Assumptions that might have an impact on the cost, schedule and
ability to perform defined SCM activities.
17
SCMP Section 2: Management
2.1 Organization
Organizational context (technical and managerial) within which the SCM
activities are implemented. Identifies
⧫ All organizational units (client, developers, managers) that participate in an SCM
activity
⧫ Functional roles of these people within the project
⧫ Relationship between organizational units
2.2. Responsibilities
For each SCM activity list the name or job title to perform this activity
For each board performing SCM activities, list
⧫ purpose and objectives
⧫ membership and affiliations
⧫ period of effectivity, scope of authority
⧫ operational procedures
3. Applicable Policies
External constraints placed on the SCMP
18
SCMP Section 3: Activities
3.1 Configuration Identification
3.2 Configuration Control
3.3 Configuration Status Accounting
3.4 Configuration Audits and Reviews
19
3.2 Configuration Control
Defines the following steps
3.2.1 How to identify the need for a change (layout of change request form)
3.2.2 Analysis and evaluation of a change request
3.2.3 Approval or disapproval of a request
3.2.4 Verification, implementation and release of a change
20
3.2.1 Change Request
Specifies the procedures for requesting a change to a baselined CI
and the information to be documented:
Name(s) and version(s) of the CI(s) where the problem appears
Originator’s name and address
Date of request
Indication of urgency
The need for the change
Description of the requested change
21
3.2.2 Evaluation of a Change
Specifies the analysis required to determine the impact of proposed
changes and the procedure for reviewing the results of the analysis.
22
3.2.3 Change Approval or Disapproval
This section of the SCMP describes the organiztion of the
configuration control board (CCB).
Configuration Control Board (CCB)
Can be an individual or a group.
Multiple levels of CCBs are also possible, depending on the complexity of
the project
Multiple levels of CCBs may be specified.
In small development efforts one CCB level is sufficient.
This section of the SCMP also indicates the level of authority of the
CCB and its responsibility.
In particular, the SCMP must specify when the CCB is invoked.
23
3.2.4 Implementing Change
This section of the SCMP specifies the activities for verifying and
implementing an approved change.
A completed change request must contain the following information:
The original change request(s)
The names and versions of the affected configuration items
Verification date and responsible party
Identifier of the new version
Release or installation date and responsible party
This section must also specify activities for
Archiving completed change requests
Planning and control of releases
How to coordinate multiple changes
How to add new CIs to the configuration
How to deliver a new baseline
24
3.3 Configuration Status Accounting
This section of the SCMP must contain the following sections
What elements are to be tracked and reported for baselines and
changes?
What types of status accounting reports are to be generated? What
is their frequency?
How is information to be collected, stored and reported?
How is access to the configuration management status data
controlled?
25
3.4 Configuration Audits and Reviews
This section of the SCMP identifies audits and reviews for the
project.
An audit determines for each Configuration Item if it has the required
physical and functional characteristics.
A review is a management tool for establishing a baseline.
For each audit or review the plan has to define:
Objective
The Configuration Items under review
The schedule for the review
Procedures for conducting the review
Participants by job title
Required documentation
Procedure for recording deficiencies and how to correct them
Approval criteria
26
Form of an SCMP
Form:
The SCMP can be a separate document or a section embedded in another
document, for example in the SPMP, titled “Software Configuration Management
Plan”.
Minimum information
6 Sections: Introduction, Management, Activities, Schedules, Resources and Plan
Maintenance
Consistency Criteria (to be used at a SCMP review meeting):
All activities defined in the SCMP (Section 3.1 to 3.6) are assigned to an
organizational unit or person.
All identified Configuration items (Section 2.1) have defined processes for baseline
establishment and change control (Section 3.2)
All activities are associated with resources (section 5) to accomplish the activities.
Such a SCMP can include the following sentence:
“This SCM Plan conforms with the requirements of IEEE Std 828-1990.”
27
Tools for Software Configuration Management
Software configuration management is normally supported by tools
with different functionality.
Examples:
RCS (Revision Control System)
⧫ very old but still in use; only version control system
CVS (Concurrent Version Control)
⧫ based on RCS, allows concurrent working without locking
⧫ http://www.cvshome.org/
⧫ CVSWeb: Web Frontend to CVS
Perforce
⧫ Repository server; keeps track of developer’s activities
⧫ http://www.perforce.com
ClearCase
⧫ Multiple servers, process modeling, policy check mechanisms
⧫ https://www.ibm.com/products/rational-clearcase
28
Summary
Software Configuration Management: Important part of project
management to manage evolving software systems and coordinate
changes to them.
Software Configuration Management consists of several activities:
Promotion and Release management
Branch, Variant and Change Management
Public standard for SCM plans: IEEE 828.
The standard can be tailored to a particular project:
Large projects need detailed plans to be successful
Small projects should not be burdened with the bureaucracy of detailed
SCM plans
SCM should be supported by tools. These range from
Simple version storage tools
Sophisticated systems with automated procedures for policy checks and
support for the creation of SCM documents.
29