Professional Documents
Culture Documents
PM-6 ChangeControl and Configuration Management
PM-6 ChangeControl and Configuration Management
PM-6 ChangeControl and Configuration Management
2
Content
Change Control
Configuration Management
Definition
Important Terms
Why Software Configuration Management?
CM Roles
Software Configuration Management Activities
3
Change Control
Change is inevitable throughout the life of the project.
All projects will have some changes, and managing them is a
key issue in project management.
Project changes can arise for many reasons,
including:
Change in the business environment
Suggestions from the development team, based on an
improved understanding of the users’ requirements.
The availability of new technology, offering different possible
system solutions.
New or revised legislation, imposing additional or different
responsibilities on the customer.
A straightforward change of mind by the users as to what they
want.
4
Configuration Management: Definition
Configuration Management is the process of
identifying and defining the items in the system,
controlling the changes to these items throughout
their life cycle, recording and reporting the status of
items and change requests, and verifying the
completeness and correctness of items.
(Definition by IEEE - 1983)
Configuration management attempts to answer the
following basic questions
What changes were made?
Who made the changes?
When were the changes made?
Why were the changes made?
5
Important Terms
Configuration Item:
“Aggregation of work products that is designated for
configuration management and treated as a single entity in the
configuration 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
configuration items (CPUs, bus speed frequencies) exist!
Selecting the right configuration items is a skill that takes
practice.
6
Important Terms(cont’d)
Version:
The initial release or re-release of a configuration item
associated with a complete compilation or recompilation of the
item.
Different versions have different functionality.
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.
7
Cont’d
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.”
Examples:
Baseline A: The API has completely been defined; the bodies
of the methods are empty.
Baseline B: All data access methods are implemented and
tested.
Baseline C: The GUI is implemented
8
Why Software Configuration Management?
One goal of software engineering is to improve how
easy it is to change software.
Configuration management is all about change
control.
Change control is the set of procedures that ensure that
changes are made only after due consideration of their impact.
Configuration management ensures that, if the changes are
implemented, then amendments to each of the affected
deliverables are properly controlled and recorded.
Every software engineer has to be concerned with
how changes made to work products are tracked and
propagated throughout a project.
9
Configuration Management Roles
Configuration Manager
Responsible for identifying configuration items. The
configuration manager can also be responsible for defining the
procedures for creating promotions and releases.
Change control board (CCB) member
Responsible for approving or rejecting change requests.
10
Software Configuration Management
Activities
Software Configuration Management Tasks/Activities
can be generally classified as (Leon, 2000):
Configuration Identification
Configuration Control
Configuration Status Accounting
Configuration Audit
11
Configuration Identification
Configuration identification is a process where a system
is divided into uniquely identifiable components for the
purpose of software configuration management.
These components are called computer software
configuration items (CSCIs) or shorter and more
generally just configuration items (CIs).
Each CI must be named and versioned uniquely to
distinguish it from the other CIs and from other versions
of Cis.
Examples of CIs are: project plan, specifications,
design documents, source codes, test plans and test
data, executables, make files, tools, and SCM plan.
12
Configuration Identification(cont’d)
Every source item should have a status attribute
which defines the level of approval that the item has
achieved.
An example of the range of status values for an element
code is: untested, module tested and integration tested.
A document also can have such values as draft, proposed
and approved.
13
Configuration Control
Software can change very quickly and easily, and
uncontrolled changes can lead to chaos.
A change request can result from many things.
For example, new features, enhancements of existing features or
defects can lead to change requests.
The change control process starts, when a need for change
is noticed.
A properly completed change request form is sent to the
configuration control board (CCB), whose main function is
to evaluate and to approve or disapprove change requests.
Change requests can also be deferred when they and their
associated documentation are filed for later resolution.
14
Configuration Control(cont’d)
If a change request is approved, proposed changes
are assigned to developers to be implemented.
After implementation, the changes are verified in
various testing procedures to ensure that they have
been implemented as agreed.
Effective projects control changes, whereas ineffective
projects allow changes to control them
(McConnell,1998).
15
Configuration Status Accounting
Consists of the recording and reporting of information
needed to manage a configuration effectively, including:
a listing of the approved configuration identification,
the status of proposed changes to the configuration and
the implementation status of approved changes.
Status accounting reports include change logs,
progress reports, CI status reports and transaction
logs.
Answers the questions:
What happened?
Who did it?
When did it happen?
What else will be affected?
16
Configuration Audits
Purpose of configuration audits:
Functional Configuration Audit (FCA) - the software
product has been built according to specified requirements,
Physical Configuration Audit (PCA) - to determine whether
all the items identified as a part of CI are present in the
product baseline, and
SCM system audit or in-process audit - whether defined
SCM activities are being properly applied and controlled.
A representative from management, the QA
department, or the customer usually performs such
audits.
The auditor should have competent knowledge both of
SCM activities and of the project.
17
SCM Plan
A successful SCM implementation requires careful planning
and management.
All of the SCM activities introduced above are described in the
SCM plan.
The main purpose of the SCM plan is to answer such
questions as: who is going to do what, when, where, and
how.
Thus, the SCM plan serves as a guideline for the people
working with software configuration management.
A configuration management plan is written for each project.
However, an organization may use a generic SCM plan
template that can be tailored to each particular project.
18
Outline of a Software Configuration
Management Plan (SCMP, IEEE 828-2012)
19
Reading Assignment
Configuration Management Tools
Version Management
20
Assignment
Prepare Software configuration management
plan(SCMP)
21