Title: Software Configuration Management
1Software Configuration Management
- The only constant is change ...
2Lecture Objectives
- To understand the activities in managing software
changes - To identify the software configuration items that
needs to be managed - To describe the different tasks in software
configuration management
3What is S/w Configuration Management?
- SCM is the discipline for systematically
controlling the changes that take place during
development - Umbrella activity that is applied throughout SE
process - SCM is easier at the start of development and
gets more complex towards the end
4Sources of Change
- New business or market conditions
- New customer needs
- Reorganisation and/or business downsizing
- Budgetary or scheduling constraints
5Main Elements of SCM
- Identification
- What are the configuration items?
- Control
- How changes should be controlled?
- Status Accounting
- What changes have been made?
- Auditing
- Is the system being built to satisfy the needs?
6Software Configuration
- Computer programs
- Source code
- Executable code
- Documents that describe the computer programs
- For technical staff
- For users
- Data
- Within the program and external to it
7Software Configuration Item
- A document or an artifact that is explicitly
placed under configuration control and that can
be regarded as a basic unit for modification - Examples
- requirement documents
- design document
- code of a module
- test plan
8Baselines Definition
- IEEE definition
- A specification or product that has been
formally reviewed and agreed upon, that
thereafter serves as the basis for further
development, and that can be changed only through
formal change control procedures
9Baselines
- A baseline is essentially a set of SCIs
- The items have been reviewed, corrected, and
approved - Baselines should be used as reference point
- Baselines should only be changed through formal
procedures - Careful definition and control of different
baselines should be done
10Examples of Baselines
- Functional baseline (requirements)
- Design baseline
- Product baseline (developed system)
11Configuration Control
- Version control - procedures and tools to manage
different versions of configuration objects - Change control - procedures and tools to provide
a mechanism for the control of changes
12Version Control
- Process of identifying and keeping track of
different versions and releases of a system - Procedures to ensure that different versions of a
system may be retrieved when required and not
accidentally changed - Version management is almost always supported by
automated tools
13Evolution Graph
Obj 1.3
Obj 1.4
Obj 1.0
Obj 1.1
Obj 1.2
Obj 2.0
Obj 2.1
Obj 1.1.1
Obj 1.1.2
14Versions, releases variants
- Version - an instance of a system that differs
from other instances - different functionality
- performance
- repair of system faults
- Release - version that is distributed to
customers - Variant - sometimes used when differences are
small
15Change Control
- Focuses on managing changes to the different
forms of the SCIs - Engineering change proposal - basic document used
for defining requesting for a change. - Configuration Control Board (CCB) is responsible
for configuration management - CCB evaluate proposal approve/reject it
16Change Control Process
Need for change
Change request generated
Change report generated
Evaluation
Technical merits, Side effects Overall impact,
Project cost
Place on queue for change
ECO generated
Approve
Other SCM tasks
CCA decision
Requestor is informed
Reject
17Engineering Change Proposal
- proposed change
- reason(s)
- baselines SCIs that are affected
- cost
- schedule impacts
- procedures for the change
18Engineering Change Order
- Change description
- Constraints
- Audit review criteria
19Change Process
- Object to be changed is checked out
- Change is made
- Appropriate SQA activities applied
- Object is checked in to the database
- Version control mechanisms applied for next
version
20Change Process Diagram
Check-in
Configuration object (baseline version)
Configuration object (modified version)
unlock
Audit info
Ownership info
Software Engineer
Project Database
Access control
lock
Configuration object (baseline version)
Configuration object (extracted version)
Check-out
21Status Accounting/Reporting
- Keeps record of how the system evolves and what
is its current status (administrative nature) - Can be complex due to the existence of executable
and non-executable forms
22Status Reporting Process
Configuration Identification
CSR Database
SCIs
Status Reporting
Configuration Control
Changes
CSR Report
Configuration Audit
Deficiencies
23Status Accounting Tasks
- Record baseline establishment time
- Record when SCI came into being
- Information about each SCI
- Engineering change proposal status
- Status of the approved changes
24Configuration Audit
- Concerned with determining how accurately the
current software system implements the system
defined in the baseline requirements document - Also concerned with increasing the visibility and
traceability of the software - Also establish a new baseline
25Auditing
- How do we know a change is properly implemented?
- Formal technical reviews - assess the SCI to
determine consistency with other SCIs - Software configuration audit
- SCI changes made?
- FTR conducted?
- SE standards followed?
- SCM procedures followed updates properly done?
- Related SCIs updated?
26References
- Software Engineering A Practitioners Approach
5th Ed. by Roger S. Pressman, Mc-Graw-Hill, 2001 - Software Engineering by Ian Sommerville,
Addison-Wesley, 2001