software configuration management. the process of identifying, organizing, and controlling changes...

36
Software Configuration Management

Upload: clement-edwards

Post on 27-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Software Configuration Management

Page 2: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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)

Page 3: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 4: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Why Products change ?

Requirements change during and after development

Errors are found and need correction

Variants are needed

Page 5: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Problems of Change

Which component ? Which version ?

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

Page 6: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 7: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

SCM Tasks

Configuration identification Configuration control Status accounting Configuration audit

Page 8: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Some Definitions ...

Development item not yet approved, canitem be informally changed

Configuration an approved and accepteditem (CI) deliverable, changes

donethrough formal changecontrol procedures

Page 9: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 10: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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.

Page 11: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 12: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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.

Page 13: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Configuration Identification

Identify what the different baselines will consist of

Set labelling and identification conventions for the CIs

Page 14: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Basic CI information

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

Page 15: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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.

Page 16: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 17: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 18: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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.

Page 19: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Configuration Control

Enforces a rigorous change control mechanism

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

Page 20: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 21: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 22: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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.

Page 23: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 24: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Techniques for storing Versions

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

versions is called a delta.

Page 25: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Forward Delta Files

foward delta files

+ firstversion

Vnversion

Vnversion

User

Vn+1version

Vn+1version

Vnversion

CM System

changes

Page 26: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Reverse Delta Files

reverse delta files

+Vn+1

new recentversion

Vn+1version

User

Vnversion

Vnversion

CM System

changes

recent version

Page 27: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 28: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 29: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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.

Page 30: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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.

Page 31: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

Organising for SCM

Roles: Configuration manager

Change Control Boardincludes representatives of

- user- customer- developer

Page 32: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 33: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 34: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 35: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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

Page 36: Software Configuration Management. The process of identifying, organizing, and controlling changes to the software during development and maintenance

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