software configuration management. the process of identifying, organizing, and controlling changes...
TRANSCRIPT
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