8/3/2019 Lect 4-SE II
1/37
1
Software Configuration Management
Software Configuration Management
8/3/2019 Lect 4-SE II
2/37
2
Software Configuration Management
First Law of Software Engineering
No matter where you are in the system life cycle, the
system will change, and the desire to change it will
persist throughout the life cycle.
Bersoff, et al, 1980
8/3/2019 Lect 4-SE II
3/37
3
Software Configuration Management
What are these changes?
SWE 418 (062) C fi ti M t 3
data
otherdocuments
codeTest
Project
Plan
changes intechnical requirements
changes inbusiness requirements
changes in
user requirements
software models
8/3/2019 Lect 4-SE II
4/37
4
Software Configuration Management
The Software Configuration
SWE 418 (062) C fi ti M t 4
programs documents
dataThe pieces
8/3/2019 Lect 4-SE II
5/37
5
Software Configuration Management
Software development process:
The larger the software, the harder to maintain it.
When a change required:
Who will do it?
How will s/he do it?
How will the change incorporated in the whole software?
How to guarantee change will not inject any othertroubles?
After a change made:
When it is made?
Who made it, why s/he made it?
8/3/2019 Lect 4-SE II
6/37
6
Software Configuration Management
Formal definition of SCM:
Software Configuration Management is a set of engineering
procedures for tracking and documenting software
throughout its life cycle, to ensure that all changes are
recorded and current state of the software is known and
reproducible.
8/3/2019 Lect 4-SE II
7/37
7
Software Configuration Management
Configuration Management
Configuration management is concerned with managingevolving software systems:
System change is a team activity;
CM aims to control the costs and effort involved in making
changes to a system.
8/3/2019 Lect 4-SE II
8/37
8
Software Configuration Management
Configuration Management (cont..)
Involves the development and application of procedures andstandards to manage an evolving software product.
Ensures that the products and their descriptions are correctand complete
Configuration management specialists identify and documentconfiguration requirements, control changes, record andreport changes, and audit the products to verify conformanceto requirements
CM may be seen as part of a more general qualitymanagement process.
When released to CM, software systems are sometimescalled baselinesas they are a starting point for furtherdevelopment.
8/3/2019 Lect 4-SE II
9/37
9
Software Configuration Management
Problems without SCM
Without SCM, we can face following problems:
Simultaneous Update
Redundant work for maintenance
Shared code & work products
No Control on Versions
8/3/2019 Lect 4-SE II
10/37
10
Software Configuration Management
Baselines
A specification or a product, which is formally reviewed and
agreed on, and which can only be changed through formal
change procedures
Before an item becomes a baseline, changes can be made
quickly and informally.
Baseline is a kind of a milestone in software development
Baseline typically creates new versions in SCIs.
8/3/2019 Lect 4-SE II
11/37
11
Software Configuration Management
Examples:
Baseline A: All the API have completely been defined;the bodies of the methods are empty.
Baseline B: All data access methods are implementedand tested.
Baseline C: TheGUI is implemented.
8/3/2019 Lect 4-SE II
12/37
12
Software Configuration Management
Goals of SCM
The goals of SCM are generally:
Configuration identification - What code are we working with?Or What do we have, and how is it structured?
Configuration control - Controlling the release of a product
and its changes.
Status accounting - Recording and reporting the status ofcomponents.
Review - Ensuring completeness and consistency among
components.
8/3/2019 Lect 4-SE II
13/37
13
Software Configuration Management
Goals of SCM
Build management - Managing the process and tools usedfor builds.
Process management - Ensuring adherence to theorganization's development process.
Environment management - Managing the software andhardware that host our system.
Teamwork - Facilitate team interactions related to theprocess.
Defect tracking - Making sure every defect has traceabilityback to the source
http://en.wikipedia.org/wiki/Build_managementhttp://en.wikipedia.org/wiki/Process_managementhttp://en.wikipedia.org/wiki/Teamworkhttp://en.wikipedia.org/wiki/Teamworkhttp://en.wikipedia.org/wiki/Process_managementhttp://en.wikipedia.org/wiki/Build_management8/3/2019 Lect 4-SE II
14/37
14
Software Configuration Management
Formal Configuration Management
Activities1. Configuration Identification
What do we have, and how is it structured?
2. Configuration Control
Another way of saying change control3. Configuration Status Accounting
Documents on configuration, versions, change history
4. Configuration Auditing
Review of documents and systems
Formal Configuration Management Activities
8/3/2019 Lect 4-SE II
15/37
15
Software Configuration Management
1. Configuration Identification Identify and uniquely name the components (configuration
items or CI) of your system
Give version numbers to each individual CI
Establish configuration baselines (e.g. freezes) by
identifying the structure of how CIs interconnect to form yoursystem
Making revisions to your CIs or structure causes revisions tothe configuration baseline
This creates the basis for change traceability
Note: The term frozen means that the item can only bechanged by creating a new version.
Formal Configuration Management Activities
8/3/2019 Lect 4-SE II
16/37
16
Software Configuration Management
2. Configuration Control A process for managing changes to an established system
baseline
Assign change roles and responsibilities
Process change requests Specify required change activities
Track change history and approvals
Establish new system baselines
Configuration Control is another way of saying Change
Control
8/3/2019 Lect 4-SE II
17/37
17
Software Configuration Management
3. Configuration Status Accounting Simply, a paper trail (or electronic trail) of documentation
showing the history of configuration items and changes tothem
Should include dates, component identifications, versions,
baseline descriptions, change details, information about thepeople involved
8/3/2019 Lect 4-SE II
18/37
18
Software Configuration Management
4. Configuration Auditing Also known as Configuration Evaluation
Just what it sounds like: an audit process that evaluates theeffectiveness of the configuration management system
Reviews the trail generated by Status Accounting
Verifies that the systems current configuration matches whatthe CM system claims
8/3/2019 Lect 4-SE II
19/37
19
Software Configuration Management
Configuration management planning
All products of the software process may have to be managed: Specifications;
Designs;
Programs;
Test data; User manuals.
Thousands of separate documents may be generated for a large,complex software system.
SWE 418 (062) Configuration Management 19
8/3/2019 Lect 4-SE II
20/37
20
Software Configuration Management
The CM plan
Defines the types of documents to be managed and a
document naming scheme. Defines who takes responsibility for the CM procedures and
creation of baselines.
Defines policies for change control and versionmanagement.
Defines the CM records which must be maintained.
Describes the tools which should be used to assist the CMprocess and any limitations on their use.
Defines the process of tool use.
Defines the CM database used to record configurationinformation.
May include information such as the CM of externalsoftware, process auditing, etc.
SWE 418 (062) Configuration Management 20
8/3/2019 Lect 4-SE II
21/37
21
Software Configuration Management
Change management
Software systems are subject to continual change requests:
From users;
From developers;
From market forces.
Change management is concerned with keeping track ofthese changes and ensuring that they are implemented inthe most cost-effective way.
SWE 418 (062) Configuration Management 21
8/3/2019 Lect 4-SE II
22/37
22
Software Configuration Management
What is Change Control?As previously mentioned, this is also known as the
Configuration Control activity of CM
Change control is the process used to request, review, plan,approve, and implement changes to a system
When its properly implemented, change control assures thatunplanned changes dont happen, and that planned changesare well-managed
8/3/2019 Lect 4-SE II
23/37
23
Software Configuration Management
What is Change Control? (cont) Larger projects have a formal Change Control Board whose
responsibility it is to review and approve or disapprove
change. It is the CCB responsibility to provide the
mechanism to maintain orderly change processes.
8/3/2019 Lect 4-SE II
24/37
24
Software Configuration Management
Change Controls Board (CCB)
ChangeProposals
Document
Change
Review byCCB
Implement
Verify
Accept
Reject
8/3/2019 Lect 4-SE II
25/37
25
Software Configuration Management
Change Control Process
Evaluate the change request
Assign individuals to configuration objects
check-out configuration objects
make the change
review (audit) the change
check-in the changed configuration items
establish baseline for testing
8/3/2019 Lect 4-SE II
26/37
26
Software Configuration Management
promote changes for inclusion in next release
rebuild, review
include in new version
distribute the new version
Change Control Process (cont)
8/3/2019 Lect 4-SE II
27/37
27
Software Configuration Management
Change Control ProcessI
change request from user
developer evaluates
change report is generated
change control authority decides
request is queued for action
change request is denied
user is informed
need for change is recognized
change control processII
8/3/2019 Lect 4-SE II
28/37
28
Software Configuration Management
Change Control Process-II
assign people to SCIs
check-out SCIs
make the change
review/audit the change
establish a baseline for testing
change control processIII
8/3/2019 Lect 4-SE II
29/37
29
Software Configuration Management
Change Control Process-III
perform SQA and testing activities
promote SCI for inclusion in next release
rebuild appropriate version
review/audit the change
include all changes in release
check-in the changed SCIs
8/3/2019 Lect 4-SE II
30/37
30
Software Configuration Management
Change request form
The definition of a change request form is part of the CMplanning process.
This form records the change proposed, requestor ofchange, the reason why change was suggested and the
urgency of change (from requestor of the change). It also records change evaluation, impact analysis, change
cost and recommendations (System maintenance staff).
SWE 418 (062) Configuration Management 30
8/3/2019 Lect 4-SE II
31/37
31
Software Configuration Management
Terminology:
Configuration
Configuration Item
Versions
Variants
Releases
Version control
8/3/2019 Lect 4-SE II
32/37
32
Software Configuration Management
Configuration
To setup or change something in such away that it is readyfor operation for a particular purpose.
Or
The functional and physical characteristics of hardware or
software as set forth (express) in technical documentation orachieved in a product.
8/3/2019 Lect 4-SE II
33/37
33
Software Configuration Management
Configuration Item
An aggregation of hardware or software or both that is designated
for configuration management and is a single entity inconfiguration management process
Software configuration items are not only program code segments
but all type of documents according to development, e.g
all type of code files
analysis or design documents
user or developer manuals
system configurations (e.g. version of compiler used)
In some systems, not only software but also hardware configurationitems (CPUs, bus speed frequencies) exist!
8/3/2019 Lect 4-SE II
34/37
34
Software Configuration Management
Configuration Management
Configuration management refers to the process of defining
Configuration Items within a system and recording and
reporting on the status of the CIs and any requests for
change ,then verifying the correctness of a CI.
8/3/2019 Lect 4-SE II
35/37
35
Software Configuration Management
Versions/variants/releases
Version: an instance of a system which is functionallydistinct in some way from other system instances.
Variant: an instance of a system which is functionallyidentical but non-functionally distinct from other instances ofa system.
Release: an instance of a system which is distributed tousers outside of the development team.
SWE 418 (062) Configuration Management 35
8/3/2019 Lect 4-SE II
36/37
36
Software Configuration Management
Version Control
Version control works to help manage the configurationitems needed for particular versions during thedevelopment process.
8/3/2019 Lect 4-SE II
37/37
37
Software Configuration Management
Version control Procedures and tools to manage different versions of
configuration objects
Versions may not always be created in sequential order,e.g. you create 1.0 -> 1.1 -> 1.2 -> 2.0 and then you needto create 1.3 for some customers who can not run 2.0 butneed some changes or improvements.
With big software, you may e.g have 4.0 as the officialcurrent version. You work on 5.0 to release it as the nextofficial version, butyou have already started to create 6.0,
as it takes so long to get it ready.