Software Config
Software Config
1
Terminology
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
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
6
Baselines in SCM
Baseline A (developmental)
Official Release
8
Controlling Changes
Promote Release
Policy Policy
User
Programmer Master Software Repository
Promotion Directory Release
9
Terminology: SCM Directories
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
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.
13
Software Configuration Management Planning
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
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
19
3.2 Configuration Control
20
3.2.1 Change Request
21
3.2.2 Evaluation of a Change
22
3.2.3 Change Approval or Disapproval
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
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