Software Configuration Management. The process of identifying, organizing, and controlling changes...

Preview:

Citation preview

Software Configuration Management

The process of identifying, organizing, and controlling changes to the software during development and maintenance.

SCM is a support activity that makes technical and managerial activities more effective

SCM operates throughout the SW life-cycle

Software Configuration Management (SCM)

Causes of Change

Evolutionary changes – the system evolves as it passes through

various stages in the development cycle

Revolutionary changes– such change is caused by the system being

unable to satisfy the user’s requirements or the customers or producers expectations

Why Products change ?

Requirements change during and after development

Errors are found and need correction

Variants are needed

Problems of Change

Which component ? Which version ?

Double (or multiple) maintenance Updates to shared data Simultaneous update

SCM Functions

Identification of software items and products Definition of Baselines Access controls Progressing defect reports Progressing change requests Recording item status Controlling releases (versions and variants) Reporting

SCM Tasks

Configuration identification Configuration control Status accounting Configuration audit

Some Definitions ...

Development item not yet approved, canitem be informally changed

Configuration an approved and accepteditem (CI) deliverable, changes

donethrough formal changecontrol procedures

Typical SW Configuration Items (CIs) Management plans Specifications (requirements, design) User documentation Test design, case and procedure specifications Test data and test generation procedures Data dictionaries and databases Source code, executable code Libraries Maintenance documentation Support software

Milestones and Baselines

MilestoneA milestone is the end of a stage or phase of a project at which one or more deliverables are actually delivered.

BaselinesA baseline is that collection of items which when complete indicates that a milestone in the development process has been reached.

Typical Baselines

Phase Baseline

Feasibility study

Requirements defn. Functional baseline

SRS, Interface spec. Allocated baseline

Detailed design Design baseline

Source and Object code

User manuals

Test documents Product baseline

Installation Operational baseline

Baselines

Baselines serve as the basis for further development

Baselines can be changed only through formal change control procedures

Only items that have been approved and obtained through a formal technical review are accepted into the baseline.

Configuration Identification

Identify what the different baselines will consist of

Set labelling and identification conventions for the CIs

Basic CI information

Item identity Baseline to which it belongs Relationships to other items Version Variant

SCM Terminology

VersionA SW CI having a defined set of functional capabilities.

Revisionschanges to a version to correct only errors in design logic but does not affect documented functional capabilities since none of the requirements have changed.

Variantsa variation of a version developed to run on different types of HW, or to provide slightly different facilities for different users.

Examples

1.1 1.2 1.3 1.4

successive versions

branching versions (variants)

1.1 1.2 1.3 1.4

1.3.1.1 1.3.1.2

Merging

Two diverging versions may be merged to create a single new version combining both set of change requests.

Merge operations are typically done interactively with tool assistance

SCM Terminology

Promotion of a CI

A CI may be promoted from one developmental baseline to another to signify a change in a CI’s internal development state.

Release

A Release is used to designate certain promotions of CI’s that are distributed outside the development organization.

Configuration Control

Enforces a rigorous change control mechanism

Requires formal procedures to– request changes– carry out impact analysis– approve changes– carry out changes

Change Management Methodology

Submission of Change Request (CR) Technical and business evaluation and

impact analysis Approval by Change Control Board Engineering Change Order (ECO) is

generated stating– changes to be made– criteria for reviewing the changed CI

CI’s checked out Changes made and reviewed CI’s checked in

Change Control Board

A group consisting of representatives of user, customer, producer.

Responsibilities:– to approve, monitor and control baselines– to approve, monitor, and control changes– to authorise changes

CCB concerns in change approval– technically ok solution, cost, schedule,

configuration of the whole system, user satisfaction

Software Libraries

SW libraries provide the means for implementing SCM

The number and kind of libraries will vary from project to project . It depends on the levels of control needed.

Three Kinds of Software Libraries

Dynamic library (programmer’s library)– programmer’s workspace

Controlled library (master library)– used for managing the current baseline(s)

and for controlling changes made to them

Static library (software repository)– used to archive various baselines released

for general use

Techniques for storing Versions

Full files Forward Delta files Reverse Delta files The set of differences between two

versions is called a delta.

Forward Delta Files

foward delta files

+ firstversion

Vnversion

Vnversion

User

Vn+1version

Vn+1version

Vnversion

CM System

changes

Reverse Delta Files

reverse delta files

+Vn+1

new recentversion

Vn+1version

User

Vnversion

Vnversion

CM System

changes

recent version

Status Accounting

provides a mechanism for administrative tracking and reporting of all SW items identified and controlled.

Examples of Status reports:– the status of proposed changes– the status of approved changes– the baselines and the approved changes

associated with each baseline– the date when each revision of each CI was

recorded– deficiencies identified by configuration

audit

Configuration Audit

A configuration audit establishes that product integrity has been maintained and that changes have taken place in an orderly and controlled manner.

Audit of the SW product Audit of SCM activities

Physical Configuration Audit

– consists of determining that all items identified as being part of the configuration are present in the Product baseline

– it must also establish that the correct version and revision of each part are included in the product baseline and that they correspond to information contained in the baseline’s configuration status report.

Functional Configuration Audit

– it verifies that each CI in the product has been tested to determine that it satisfies the functions defined in the specifications or contract(s) for which it was developed.

Organising for SCM

Roles: Configuration manager

Change Control Boardincludes representatives of

- user- customer- developer

SCM Plan

The SCM Plan is prepared in Project Initiation phase. It documents

- what SCM activities are to be done

- how they are to be done - who is responsible for doing specific activities

- when they are to happen

- what resources are required

SCM Tools

Common features of popular PC-based tools (PVCS, MS Visual SourceSafe):

Support for controlling all types of files (source code as well as binary)

Managing changes as deltas Supporting branching and merging Identifying and re-creating releases Providing a project view

SW Configuration Management Plan

-- IEEE Standard 828-1990 for SCM Plan

1. Introduction

2.SCM Management

2.1 Organization

2.2 SCM Responsibilities

2.3 Applicable policies, directives and procedures

SW Configuration Management Plan

-- IEEE Standard 828-1990 for SCM Plan

3.SCM Activities3.1 Configuration identification

3.1.1 Identifying configuration items3.1.2 Naming configuration items3.1.3 Acquiring configuration items

3.2 Configuration control3.2.1 Requesting changes3.2.2 Evaluating changes3.2.3 Approving or disapproving

changes3.2.4 Implementing changes

SW Configuration Management Plan

-- IEEE Standard 828-1990 for SCM Plan

(3. SCM Activities)3.3 Configuration Status Accounting3.4 Configuration Audits and Reviews3.5 Interface control3.6 Subcontractor/Vendor control

4.SCM Schedules5.SCM Resources6.SCM Plan maintenance

Recommended