Software Configuration Management 21-01-2014
Software Configuration Management 21-01-2014
Management
(SCM)
Dr. Aprna Tripathi
Objectives
4 7/23/22
First Law of System Engineering
changes in
business requirements
changes in
technical requirements
changes in
user requirements other
documents
software models
Project
Plan
data
Test
code
7
The Software Configuration
programs documents
The pieces
data
8
Software Configuration
Management
• Involves the development and application of
procedures and standards to manage an evolving
software product.
• New versions of software systems are created as
they change:
– For different machines/OS;
– Offering different functionality;
– Tailored for particular user requirements.
Software Configuration
Management
• Configuration management is concerned with
managing evolving software systems:
– System change is a team activity;
– CM aims to control the costs and effort
involved in making changes to a system.
10 7/23/22
Software Configuration Management
Definition:
The set of activities that have been
developed to manage change
throughout the software life cycle.
Purpose:
Systematically control changes to the
configuration and maintain the integrity
and traceability of the configuration
throughout the system’s life cycle.
Baseline
Definition: Specification or product that
– has been formally reviewed and agreed
upon,
– serves as the basis for further development,
and
– can be changed only through formal change
control procedures.
Signals a point of departure from one activity
to the start of another activity.
Helps control change without impeding
justifiable change.
Baselines in SCM
Baseline A (developmental)
Official Release
stored
SCIs
extracted
SCM SCIs
controls
BASELINES:
System Specification
Software Requirements
Design Specification
Source Code
Test Plans/Procedures/Data
Operational System
18
Project Baseline
21
The SCM Process
Software
Vm.n
reporting
configuration auditing
version control
change control
identification
SCIs
22
SCM Processes / Elements of
SCM
There are Five elements of SCM:
1. Software Configuration Identification
2. Software Version Control
3. Software Change Control
3. Software Configuration Auditing
4. Software Configuration Status Accounting /
Reporting
Configuration Management
Tasks
Identification
– tracking changes to multiple SCI versions
Version control
– controlling changes before and after customer
release
Change control
– authority to approve and prioritize changes
Configuration auditing
– ensure changes are made properly
Reporting
– tell others about changes made
24
Software Configuration
Identification
Provides labels for the baselines and their
updates.
Evolution graph: depicts versions/variants.
1.3 1.4
2.0
1.1.1 1.1.2
Member 1 A1 B E
A1
D A2 A3
B
C1 C1 C2
Member 2
A2
Member 3
B
A3
C2
D
Why needed?
- Not all possible changes are beneficial.
- Need a mechanism to control access to
different items of the configuration (who
can access what).
Access and Synchronization
Control
Configuration Object
(Modified Version) Check-In Configuration Object
Audit Info (Baseline Version)
Unlock
Software Project
Engineer Ownership Info
Access Database
Control
Lock
Configuration Object
(Baseline Version)
Configuration Object Check-Out
Request
Access and Synchronization
Control
Configuration Object
(Modified Version) Check-In Configuration Object
Audit Info (Baseline Version)
Unlock
Software Project
Engineer Ownership Info
Access Database
Control
Lock
Configuration Object
Configuration Object (Baseline Version)
(Extracted Version) Check-Out
Access and Synchronization
Control
Configuration Object
(Modified Version) Check-In Configuration Object
Audit Info (Baseline Version)
Unlock
Software Project
Engineer Ownership Info
Access Database
Control
Lock
Configuration Object
Configuration Object (Baseline Version)
(Extracted Version) Check-Out
Access and Synchronization
Control
Configuration Object
(Modified Version) Check-In Configuration Object
Audit Info (Baseline Version)
Unlock
Software Project
Engineer Ownership Info
Access Database
Control
Lock
Configuration Object
Configuration Object (Baseline Version)
(Extracted Version) Check-Out
Version Control Terms
Entity
– composed of objects at the same revision
level
Variant
– a different set of objects at the same
revision level and coexists with other
variants
New version
– defined when major changes have been
made to one or more objects
34
Version and release management
V1.1b V1.1.1
V1.1a
Attribute-based identification
D1 D2 D3
Creation da te
Version management tools
Version and release identification
– Systems assign identifiers automatically when a new
version is submitted to the system.
Storage management.
– System stores the differences between versions rather
than all the version code.
Change history recording
– Record reasons for version creation.
Independent development
– Only one version at a time may be checked out for change.
Parallel working on different versions.
Project support
– Can manage groups of files associated with a project
rather than just single files.
Change Control
STOP
45
Change Control Process—I
need for change is recognized
developer evaluates
check-out SCIs
49
Change Control Process - 2
50
Change Control Process - 3
Modified object is checked-in to the project
database and version control mechanisms are
used to create the next version of the software
Synchronization control is used to ensure that
parallel changes made by different people
don’t overwrite one another
51
Auditing
Change
Requests SQA
Plan
SCIs
SCM Audit
52
Software Configuration Auditing
55 7/23/22
Software Configuration Status
Accounting / Reporting
Provides a mechanism for maintaining a record
of where the system is at any point with
respect to what appears in published baseline
documentation.
When a change proposal is approved it may
take some time before the change is initiated
or completed.
Software Configuration Status
Accounting
Why needed?
- Ensure that there is progress within the
development of the project.
- Track updates to baselines.
Requirements for CM
64 7/23/22
Key points