Lec 3 - SW Configuration Management
Lec 3 - SW Configuration Management
Lec 3 - SW Configuration Management
2
Software Configuration Management Definition
Software Configuration Management (SCM) involves the disciplines
and techniques of initiating, evaluating and controlling changes to
software products during and after the software engineering process.
3
Why do we need SCM?
There is a need to coordinate and manage evolving software
systems because:
➢Multiple people have to work on software that is changing
➢More than one version of the software has to be supported:
Released systems
Custom configured systems (different functionality)
system(s) under development
➢Software must run on different machines and operating systems
4
Software Configuration Management Roles
Change control board (CCB)
- A group of stakeholders that includes maintainers, development engineers,
sustaining test engineers, quality assurance auditors, users, etc.
- Responsible for approving or rejecting change requests
Developers
- Implement changes triggered by change requests or the normal activities
of development.
- The main configuration management activity of developers is to check in
changes and resolves conflicts.
Auditors
Responsible for ensuring the consistency and completeness of the new
release.
This role is often accomplished by the quality control team 5
SCM Terminologies
Software Configuration Item
Baseline
Version
Revision
Release
SCM Directories
6
SCM Terminologies
Software Configuration Item
Software Configuration Item (SCI)
➢ An item of software or work product which is subject to change and
needs to be under configuration control process all the time.
➢ Examples of configuration items:
All type of code files
Test documents/data
Analysis or design documents
User or developer manuals
System configurations (e.g. version of compiler used, browser, editor, etc.)
In some systems, not only software but also hardware configuration items
(CPUs, bus speed frequencies) exist!
7
SCM Terminologies
Baseline
8
SCM Terminologies
Version vs. Revision vs. Release
Version
o Identifies the state (new feature, update, upgrade, etc.) of a
configuration item.
o Different versions have different functionality.
o May be done to serve only a part of the company’s clients , for a
limited period until a new baseline is developed.
o All clients may not be using the same version of software.
Revision:
Change to a version that corrects only errors in the design/code but
does not affect the documented functionality.
Release:
The formal distribution of an approved version.
9
SCM Terminologies
SCM Directories
10
Exercises
1. Replace each statement with the key term:
They are responsible for approving or rejecting change requests.
It involves the disciplines and techniques of initiating, evaluating and controlling
change to software products during and after the software engineering process.
Change to a version that corrects only errors in the design/code but does not affect
the documented functionality.
It identifies the state (e.g., an update) of a configuration item.
A specification or product that has been formally reviewed and agreed to by
responsible management.
2. True/False
baseline is an item of software or work product which is subject to change and
needs to be under configuration management control all the time.
A 3-digit scheme (e.g., 7.5.5) is quite common for a naming a release?
Workspace is Shared (Centralized) database of various baselines with controlled
access to prevent overwrites 11
SCM Process
The SCM Process Addresses the following questions …
How does a software team identify the discrete elements of a software
configuration?
How does an organization manage the many existing versions of a
program (and its 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 customer?
Who has responsibility for approving and ranking changes?
How can we ensure that changes have been made properly?
12
SCM Process
It consists of the following activities
1. Configuration Item identification
2. Change Control
3. Version Control
4. Configuration Audits
5. Status Accounting (Reporting)
13
SCM Process
1. Configuration Item Identification
14
SCM Process
2. Change Control
Change Control is
responsible of
documenting,
identifying and
authorizing change
requests
It consists of Five basic
steps:
15
https://asana.com/resources/change-control-process
SCM Process
2. Change Control – Change Request initiation
Change Request: a formal report that contains the request for
modification in a baselined configuration item.
➢A user, client, or developer discovers a fault in a work
product or wants a new feature
Change request form might include:
➢ Name(s) and version(s) of the CI(s) where the problem appears
➢ Originator’s name and address
➢ Date of request
➢ Indication of urgency (priority)
➢ The need for the change (defect, business change, performance, etc.)
➢ Description of the requested change
16
SCM Process
2. Change Control – Change Request initiation
17
SCM Process
2. Change Control - Assessment
19
SCM Process
2. Change Control – Implementing Change
20
SCM Process
3. Version Control
Version control combines procedures and tools to manage different
versions of configuration items.
A version control system implements or is directly integrated with four
major capabilities:
a project database (repository) that stores all relevant configuration items
a version management capability that stores all versions of a configuration
item (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 items and construct a specific version of the software.
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 item. 21
SCM Process
3. Version Control
The basic version control idea is to allow team members work concurrently,
by having two separate files: master copies and working copies.
➢ The former is stored in a centralized repository.
➢ Software developers check out working copies from the repository, modify the
working copies, and, finally, check in the working copies into the repository.
▪ Checking in a file means committing to the changes made to the working
copies.
Conflicts can arise if many software developers want to use the same version
of a file.
➢ Conflicts can be resolved by means of two techniques: lock-modify-unlock and
copy-modify-merge.
22
SCM Process
3. Vesion Control (lock-Modify-Unlock)
Locks
individual files
so only one
person at a
time can
modify it
25
SCM Process
4. Configuration Audit and Review
26
SCM Process
5. Status Accounting
Also called Status Reporting
It includes a history about change requests (approved and/or rejected
ones) that answers the following questions:
➢ what happened, who did it, when did it happen, and what else will be
affected
A new entry in the status reporting is made when:
➢ A SCI is assigned a new or updated information
➢ A configuration audit is conducted, results are reported
Configuration status report is placed in an online database or a website
for software developers and maintainers to access change information
27
Common Version Control Tools
✓ RCS
very old but still in use; only version control system
✓ CVS (Concurrent Version Control)
based on RCS, allows concurrent working without locking
CVSWeb: is Web Frontend to CVS
✓ Perforce
Repository server; keeps track of developer’s activities
✓ ClearCase
Multiple servers, process modeling, policy check mechanisms
✓ SourceForge Covered in Course Labs
✓ Microsoft Team Foundation Server (TFS)
✓ Git/GitHub
28
Exercises
1. Replace with the suitable SCM Term:
A formal report that contains the request for modification in a
baselined configuration item.
This technique allows multiple people to modify a source file and the
system will automatically combine the changes.
It is a capability provided by version control systems to enables the
team to record and track the status of all outstanding issues associated
with each configuration object.
It verifies whether the product has met user/system requirement
specification
It includes a history about change requests.
It is placed in an online database or a website for software developers
and maintainers to access change information. 29
Exercises
2. True/false
SCM process starts with configuration item identification.
when implementing a requested change, the objects to be changed
must be first check in the project database before applying change
Status Accounting combines procedures and tools to manage different
versions of configuration objects that are created during the software
process
30