Download as pdf or txt
Download as pdf or txt
You are on page 1of 31

Agenda

 Definition of Software Configuration Management (SCM)


 Why do we need SCM?
 SCM Roles
 SCM Terminologies
 SCM Process

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.

 Software Configuration Management Systems aim to:


➢ Identify & control change
➢ Ensure change is properly implemented
➢ Report changes to all people who need to know

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

 A specification or product that has been formally reviewed and


agreed to by responsible management, that thereafter serves as the
basis for further development, and can be changed only through
formal change control procedures.
 Many naming scheme for baselines exist. A 3-digit scheme is quite
common

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

 Working Directory (Workspace or project folder)


It enables the maintainer to make and test the changes in an isolated
manner.
 Repository
Shared (Centralized) database of various baselines with controlled
access to prevent overwrites

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

 Software Configuration Item (SCI) should be organized in the


SCM repository with a set of distinct features that identify it:
➢ A name that is unambiguous to all other items (by following a specific
schema of names of numbers).
➢ A description that contains the SCI type (program, data, model
element), a project identifier, and change and/or version information.
 Finally, a baseline is established for all configuration items.

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

Change request is evaluated to:


 determine whether it is a new or duplicated request.
 accept the assigned priority level of the CR or modify it.
 assess resources needed,
 assess cost incurred on these changes,
 who the request should be passed on to, etc.

If the change request passes the initial assessment, it will then be


passed on to the analysis phase where an actual decision will be
made.
18
SCM Process
2. Change Control - Analysis

 In this stage, the change impact analysis is conducted to estimate


the time required to implement it and affected components.
 In addition, a high-level functional specification for the CR is
prepared.
 A final decision on whether the request is approved or denied is
made by Change Control Board (CCB).

19
SCM Process
2. Change Control – Implementing Change

 If the change request is approved, the process will move on to the


implementation phase which includes:
➢ Update project procedure and management plans.
➢ Inform about the changes to the team.
➢ Monitor progress of change request.
➢ Record the completion of change request.
➢ Close change request.
 After applying changes to the SCI, construct a newer version of it (next
slide).

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

Reference. B. Collins-Sussman. et al., Version Control with Subversion 23


SCM Process 2. Change Control (Copy-modify-Merge)
Allows multiple people to modify a source file and the system will automatically merge the changes

Reference. B. Collins-Sussman. et al., Version Control with Subversion 24


SCM Process
4. Configuration Audit and Review
To ensure that the changes has been properly implemented, 2 methods are used:
✓ Formal Technical Reviews:
- focus on the technical correctness of the configuration item that has been modified
- Assess the SCI to determine consistency with other SCI's or potential side effects
✓ Configuration audit
it determines for each configuration item if it has the required physical and functional
characteristics:
 Functional Configuration Audit verifies whether the product has met user/system
requirement specification
 Physical Configuration Audit confirms the consistency of design and user
documentation with the product.

25
SCM Process
4. Configuration Audit and Review

Configuration Audit complements the technical review and


addresses the following questions:
 has a formal technical review been conducted to assess technical
correctness?
 has the changes of SCI been highlighted and documented? have the
change data and change author been specified?
 have SCM procedures for noting the change, recording it and
reporting it been followed?
 have all related SCIs been properly updated?

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

You might also like