Sunteți pe pagina 1din 39

Software Configuration

Management
Software Configuration
Management (SCM)
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


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, can


item be informally changed

Configuration an approved and accepted


item (CI) deliverable, changes done
through formal change
control 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
Milestone
A milestone is the end of a stage or
phase of a project at which one or more
deliverables are actually delivered.
Baselines
A 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
Version
A SW CI having a defined set of functional
capabilities.
Revisions
changes to a version to correct only errors in
design logic but does not affect documented
functional capabilities since none of the
requirements have changed.
Variants
a variation of a version developed to run on
different types of HW, or to provide slightly
different facilities for different users.
Examples

successive versions

1.1 1.2 1.3 1.4

branching versions (variants)

1.3.1.1 1.3.1.2

1.1 1.2 1.3 1.4


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
User CM System
foward
Vn Vn delta files
version version + first
version
changes

Vn+1 Vn+1
version version

Vn
version
Reverse Delta Files
User CM System
reverse
Vn+1 delta files
Vn+1
version new recent +
version
changes

Vn recent version Vn
version 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 Board


includes 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
Intersolv PVCS Version Manager 5.2

♦ One of the oldest PC-based version control


products
♦ Large installed base
♦ A fairly rich feature set
♦ Interfaces with other third party tools
♦ Gateways to mainframe-based library
management systems
♦ Comprehensive security
Microsoft Visual SourceSafe 4.0

♦ Project support
♦ File sharing
♦ Intuitive GUI interface
♦ Good repository architecture
♦ Powerful security features
♦ Tight integration with Visual Basic and Visual
C++ development tools
SCM Tools for Unix
♦ SCCS (Source Code Control System)
– manages changes to text files
– uses a single file (s-file) to store first version
and successive forward deltas

♦ RCS (Revision Control System)


– manages changes to text files
– uses reverse deltas to store versions
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 Activities
3.1 Configuration identification
3.1.1 Identifying configuration items
3.1.2 Naming configuration items
3.1.3 Acquiring configuration items
3.2 Configuration control
3.2.1 Requesting changes
3.2.2 Evaluating changes
3.2.3 Approving or disapproving changes
3.2.4 Implementing changes
SW Configuration Management Plan

-- IEEE Standard 828-1990 for SCM Plan

(3. SCM Activities)


3.3 Configuration Status Accounting
3.4 Configuration Audits and Reviews
3.5 Interface control
3.6 Subcontractor/Vendor control

4. SCM Schedules
5. SCM Resources
6. SCM Plan maintenance

S-ar putea să vă placă și