0% found this document useful (0 votes)
5 views

Software Config

Software Configuration Management (SCM) is essential for managing evolving software systems and coordinating changes. It involves activities such as promotion, release management, and change management, guided by standards like IEEE 828, which can be tailored to project size. SCM is supported by various tools ranging from simple version control systems to sophisticated automated solutions.

Uploaded by

moratiwammopi02
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
5 views

Software Config

Software Configuration Management (SCM) is essential for managing evolving software systems and coordinating changes. It involves activities such as promotion, release management, and change management, guided by standards like IEEE 828, which can be tailored to project size. SCM is supported by various tools ranging from simple version control systems to sophisticated automated solutions.

Uploaded by

moratiwammopi02
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 29

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

You might also like