Software configuration management

17
SOFTWARE CONFIGURATION MANAGEMENT

Transcript of Software configuration management

Page 1: Software configuration management

SOFTWARE CONFIGURATION MANAGEMENT

Page 2: Software configuration management

What is configuration management?• “SCM is the control of the evolution of

complex systems,…, for the purpose to contribute to satisfying quality and delay constraints.”

– Jacky Estublier

• “SCM provides the capabilities of identification, control, status accounting, audit and review, manufacture, process management, and teamwork.”

– Susan Dart

Page 3: Software configuration management

Goals of CM

• SPM activities are planned.• Selected s/w work products are

identified,controled and available..• Change to identified s/w work products

are controlled.• Affected groups and individuals are

informed of the status and contents s/w baseline.

Page 4: Software configuration management

Objectives of CM

• Remote system administration.• Reduced user down-time.• Reliable data backup.• Easy worstation set up.• Multi user support.• Remote s/w installation.

Page 5: Software configuration management

Configuration Management process

• Work products; change

requests

• Controlled work

products; approved change

requests

• Status reports;

audit results

• CM Plan

• Project Management Processes

• Project Planning

• Project Monitoring &

Control

• Project Startup

• Project Closeout

• Project Formulation

• Product Development Processes

• Requirements

Engineering

• Product Release

• Sustaining Engineerin

g & Maintenan

ce

• Design

• Implementation

• Testing

• Systems Engineeri

ng

• Configuration

Management

Process

• Planning Data

Page 6: Software configuration management

CM Benefits• Improves

– Product protection– Product visibility– Product control– Team communication– Customer Confidence

• Decreases– Rework– Confusion– Project Risk

Page 7: Software configuration management

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: The API of a program is completely defined;

the bodies of the methods are empty.Baseline B: All data access methods are implemented and

tested; programming of the GUI can start.Baseline C: GUI is implemented, test-phase can start.

Page 8: Software configuration management

BASELINE IN SCM

Official Release

Baseline A (developmental)

Baseline B (functional)

Baseline C (beta test)

All changes relative to baseline A

All changes relative to baseline B

All changes relative to baseline C

Page 9: Software configuration management

What is Change ?• Change is defined as anything hardware,

software, system components, services, documents, or processes that is deliberately introduced into the production environment and which may affect a Service Level Management(SLA) or otherwise affect the functioning of the environment or one of its components.

Page 10: Software configuration management

Change Management• Software change management encompasses all of the

processes necessary to determine where you are at compared to where you planned to be and the activities required to get back on track if those are not aligned.

Page 11: Software configuration management

Change Management cont..• Change management is the handling of change requests

– A change request leads to the creation of a new release.

• 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.

Page 12: Software configuration management

Change Request form• The definition of a change request form

is part of the CM planning process.• This form records the change proposed,

requestor of change, the reason why change was suggested and the urgency of change(from requestor of the change).

• It also records change evaluation, impact analysis, change cost and recommendations (System maintenance staff).

Page 13: Software configuration management

Change Request formChange Request Form

Project: Proteus/PCL-Tools Number: 23/02Change requester: I. Sommerville Date: 1/12/02Requested change: When a component is selected from the structure, displaythe name of the file where it is stored.

Change analyser: G. Dean Analysis date: 10/12/02Components affected: Display-Icon.Select, Display-Icon.Display

Associated components: FileTable

Change assessment: Relatively simple to implement as a file name table isavailable. Requires the design and implementation of a display field. No changesto associated components are required.

Change priority: Low

Change implementation:Estimated effort: 0.5 days

Date to CCB: 15/12/02 CCB decision date: 1/2/03CCB decision: Accept change. Change to be implemented in Release 2.1.Change implementor: Date of change:Date submitted to QA: QA decision:Date submitted to CM:Comments

Page 14: Software configuration management

• Two types of controlling change:- Promotion: The internal development state of a software is changed.- Release: A set of promotions is distributed outside the development organization.

• Approaches for controlling change to libraries (Change Policy)– Informal (good for research type environments)– Formal approach (good for externally developed CIs and for

releases)

Promotion ReleaseSoftware

Repository

UserProgrammer

PromotePolicy

ReleasePolicy

MasterDirectory

Controlling Changes

Page 15: Software configuration management

Change Tracking Tools• A major problem in change management is tracking

change status.• Change tracking tools keep track the status of each

change request and automatically ensure that change requests are sent to the right people at the right time.

• Integrated with E-mail systems allowing electronic change request distribution.

Page 16: Software configuration management

Version Control

• Manages file sharing for Concurrent Development.

• Keeps track of changes with Version Control

• SubVersion (SVN) http://subversion.tigris.org/ is a version control system.

• keeps log of any changes made to any file. Ever!Also keeps copies of those changes. For ever!

• Participants can go back and receive older versions of a file or even an older version of an entire project state

Page 17: Software configuration management