Software Configuration Management (SCM)
The process of identifying, organizing, and controlling
Software Configuration Management changes to the software during development and
maintenance.
managing the entire life cycle of a software project.
• SCM is a support activity that makes technical and managerial
activities more effective
• SCM operates throughout the SW life-cycle
1 2
Why Products change ? Causes of Change
• Requirements change during and after development • Evolutionary changes
• the system evolves as it passes through various stages in the development
• Errors are found and need correction cycle
• Variants are needed • Revolutionary changes
• such change is caused by the system being unable to satisfy the user’s
requirements or the customers or producers expectations
3 4
SCM Activities are done to….. Software Configuration Item (SCI)
• SCM activities are developed to • Items are carefully identified
• As the software process progresses, the number of software
(1) identify change configuration items (SCIs) grows rapidly
(2) control change
(3) ensure that change is being properly implemented
(4) report change to others who may have an interest
5 6
1
The Software Configuration
What Are These Changes?
changes in
business requirements
programs documents changes in
technical requirements
changes in
user requirements other
documents
The pieces data software models
Project
Plan
data
Test
code
7 8
Baselines Baselines modified
SCIs
• The IEEE (IEEE Std. No. 610.12-1990) defines a baseline as: Project database
approved
• A specification or product that has been formally reviewed and agreed upon, that Software Formal
engineering SCIs technical SCIs
thereafter serves as the basis for further development, and that can be changed only tasks reviews
through formal change control procedures.
stored
• a baseline is a milestone in the development of software that is SCIs
marked by the delivery of one or more software configuration items extracted
and the approval of these SCIs that is obtained through a formal SCM
controls
SCIs
technical review BASELINES:
System Specification
Software Requirements
Design Specification
Source Code
Test Plans/Procedures/Data
Operational System
9 10
Identification of objects in the software
Configuration objects configuration
• A configuration object has a name, attributes and is ‘connected’ to
other objects by relationships • 2 types of objects can be identified
• Basic object • Basic object
• Aggregate object • A ‘unit of text’ that has been created by a software engineer during
• Compositional relationship (curved arrow) analysis, design, coding or testing
• Inter-relationship (double-headed straight arrow) • Aggregate objects
• A collection of basic objects and other aggregate objects
(conceptually it can be viewed as a named (identified) list of
pointers that specify basic objects)
11 12
2
Software Configuration Objects SCM Repository
Data model
Design spec ific ation • The SCM repository is the set of mechanisms and data structures that
data design allow a software team to manage change in an effective manner
architectural design
module design
interface design
• The repository performs or precipitates the following functions:
Component N • Data integrity
interface description • Information sharing
Test specific ation
algorithm desc ription
PDL • Tool integration
• Data integration
tes t plan
tes t proc edure
tes t cases
• Methodology enforcement
Source code
• Document standardization
13 14
Repository Content Repository Features
use-cases
analy sis m odel source code
• Versioning.
business rules
business funct ions scenario-based diagram s obj ect code
organizat ion st ruct ure flow-orient ed diagram s sy st em build inst ruct ions
inform at ion archit ect ure class-based diagram s
behav ioral diagram s Const ruct ion
• saves all of these versions to enable effective management of product releases and to permit
design m odel
archit ect ural diagram s
Cont ent developers to go back to previous versions
Business int erface diagram s
Cont ent com ponent -lev el diagram s
t echnical m et rics t est cases
• Dependency tracking and change management.
t est script s
t est result s
• The repository manages a wide variety of relationships among the data elements stored in it.
qualit y m et rics
Model
Cont ent • Requirements tracing.
V&V
Cont ent
• Provides the ability to track all the design and construction components and deliverables that result
from a specific requirement specification
Project • Configuration management.
Management
project est im at es
Cont ent • Keeps track of a series of configurations representing specific project milestones or production releases.
project schedule
SCM requirem ent s
Version management provides the needed versions, and link management keeps track of
change request s
change report s
Document s
Project Plan
SCM/ SQA Plan interdependencies.
Sy st em Spec
• Audit trails.
SQA requirem ent s
Requirem ent s Spec
project report s/ audit report s
Design Docum ent
project m et rics
Test Plan and Procedure
Support docum ent s
User m anual
• establishes additional information about when, why, and by whom changes are made.
15 16
SCM Elements The SCM Process
• Component elements—a set of tools coupled within a file management system (e.g., a • SCM process addresses the following questions
database) that enables access to and management of each software configuration item. • How does an organization identify and manage the many existing versions of a program in a
manner that will enable change to be accommodated efficiently?
• Process elements—a collection of procedures and tasks that define an effective approach • How does a software team identify the discrete elements of a software configuration?
to change management (and related activities) for all constituencies involved in the • How does an organization manage the many existing versions of a program (and its
management, engineering and use of computer software. documentation) in a manner that will enable change to be accommodated efficiently?
• How does an organization control changes before and after software is released to a
• Construction elements—a set of tools that automate the construction of software by customer?
ensuring that the proper set of validated components (i.e., the correct version) have • Who has responsibility for approving and prioritizing changes?
been assembled. • How can we assure that changes have been made properly?
• What mechanism is used to appraise others of changes that are made?
• Human elements—to implement effective SCM, the software team uses a set of tools … these questions lead to the definition of 5 SCM tasks
and process features (encompassing other CM elements)
17 18
3
The SCM Process
5 SCM tasks Software
Vm.n
• Identification reporting
• Version control configuration auditing
• Change control version control
• Configuration auditing change control
• Status reporting
identification
SCIs
19 20
Version Control Version Control
• An entity is composed of objects at the same revision level • Version control combines procedures and tools to manage different versions of
configuration objects that are created during the software process
• A version control system implements or is directly integrated with four major
• A variant is a different set of objects at the same revision level and capabilities:
coexists with other variants • a project database (repository) that stores all relevant configuration objects
• a version management capability that stores all versions of a configuration object (or enables
any version to be constructed using differences from past versions);
• a make facility that enables the software engineer to collect all relevant configuration
• A new version is defined when major changes have been made to objects and construct a specific version of the software.
one or more objects • an issues tracking (also called bug tracking) capability that enables the team to record and
track the status of all outstanding issues associated with each configuration object.
21 22
Change Control Change Control
• Change request
• submitted and evaluated to assess technical merit and impact on the other configuration
objects and budget • Object to be changed is checked-out of the project database subject to access
control parameters for the object
• Change report
• contains the results of the evaluation • Modified object is subjected to appropriate SQA and testing procedures
• Change control authority (CCA) • Modified object is checked-in to the project database and version control
• makes the final decision on the status and priority of the change based on the change report mechanisms are used to create the next version of the software
• Engineering change order (ECO)
• generated for each change approved (describes change, lists the constraints, and criteria for • Synchronization control
review and audit)
• used to ensure that parallel changes made by different people don’t overwrite one another
23 24
4
Change Control Process—I Change Control Process-II
need for change is recognized
assign people to SCIs
change request from user
check-out SCIs
developer evaluates
make the change
change report is generated
review/audit the change
change control authority (CCA) decides
request is queued for action, Check-in SCIs that have been changed
Engg. Change Order (ECO) change request is denied
is generated establish a “baseline” for testing
user is informed
change control process—II change control process—III
25 26
Change Control Process-III
perform SQA and testing activities
Promote changes for inclusion in next release
rebuild appropriate version of software
review/audit the change to all configuration items
Questions
include changes in new version (release)
Distribute new version
27 28