You are on page 1of 70

SWEED

Software Configuration Management

Reto Bonderer
reto.bonderer@fh-htwchur.ch
University of Applied Sciences Chur
with minor modifications by M. Kropp
University of Applied Sciences Solothurn NWCH

Configuration Management V 1.1.0 SWEED 2002, R. Bonderer, M. Kropp 1


SWEED
Learning Goals

V The participant
X knows why configuration management is important
X knows what version, release and change
management is about
X knows how to plan configuration management
X understands how tools support the configuration
management processes and can decide whether a
tool is feasible for a particular project

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 2


SWEED
Content

V Version and release management


V Change management
V Build management
V Configuration management planning
V Configuration identification
V Subcontractor control and inclusion of COTS
parts
V Tool support

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 3


SWEED
References

O Ian Sommerville: Software Engineering, 6th edition, Pearson


Education 2001
O K. Frühauf, J. Ludewig, H. Sandmayr: Software – Projekt-
management und – Qualitätssicherung, 4. durchgesehene
Auflage, vdf Zürich 2002 (in German)
O IEEE Software Engineering Standards Collection, 1999
edition, IEEE Press, www.ieee.org
O www.cvshome.org
O www.sei.cmu.edu

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 4


SWEED
Acronyms

V CCB Configuration Control Board


V CM Configuration Management
V CMM Capability Maturity Model
V COTS Commercial Off The Shelf
V IEEE Institute of Electrical and Electronics Engineers
V SCM Software CM
V SCMP SCM Plan
V SCR Software Change Request

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 5


SWEED
Most Important Software Processes

Software Project Management

Requirements Software
Management Quality
Assurance

Software Project

Software Configuration Management

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 6


SWEED
Symptoms of poor CM

V Bugs that have been corrected reappear


V Previous releases of software cannot be rebuilt
V Previous releases of software cannot be found
V Files get lost
V Files are “mysteriously” changed
V The same or similar code exists multiple times
in different projects
V Two developers accidentally change the same
file concurrently
Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 7
SWEED
Benefits of an appropriate CM

V Systems are built “automatically” and faster


V Reintroducing already corrected bugs is avoided
Î better reputation of company
V Concurrent development is simplified
V Appropriate CM is a prerequisite for distributed
development

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 8


SWEED
But: There’s No Free Lunch

V There are risks with:


X Business
O Cost (license fees, training, administration)
O Culture change
X People
O Some prefer a different tool
O Resistance to introduce CM (different reasons)
O Cheating (people work around a tool)
X Technology
O Access and security
O Scalability

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 9


SWEED
Potential Product Version Tree

Linux version
French version

Core NT version English version

German version
Mac version

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 10


SWEED
What is SCM?

Software configuration management (SCM)


is responsible to establish and maintain the
integrity of the products of the software project
throughout the software life cycle.

This includes identifying configuration items,


controlling changes and recording and reporting
the change implementation status.

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 11


SWEED
What is a Configuration?

A configuration
is the functional and physical characteristics of
hardware or software as set forth in technical
documentation or achieved in a product.

IEEE Standard Glossary of Software Engineering Terminology

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 12


SWEED
Example: Configurations

Cfg 1 Cfg 2 Cfg 3 Cfg 4

file 1 1.3 1.4 1.5 1.6 1.7

file 2 1.0 1.1 1.2 1.3 1.4

file 3 1.6 1.7 1.8 1.9

file 4 1.4 1.5 1.6 1.7 1.8 1.9

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 13


SWEED
What is a Configuration item?

A configuration item
is an aggregation of hardware, software, or
both, that is designated for configuration
management and treated as a single entity in
the configuration management process.

IEEE Standard Glossary of Software Engineering Terminology

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 14


SWEED
Example: Driver configuration of a PC

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 15


SWEED
Exercise: Car manufacturer

Consider a car manufacturer


X What are the configurations a car manufacturer has
to deal with?
X How does he know how a customer-specific car is
built?
X If an important part (i.e. the brakes) has a bug in a
whole production lot: in which cars must the part be
replaced?

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 16


SWEED
CM Activities

V Version and release management


V Change management
V System building
V CM planning

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 17


SWEED

Version and Release Management

1.5

1.4

1.3 1.3

1.2 1.2 1.2

1.1 1.1 1.1

1.0 1.0 1.0

gui.c_v main.c_v io.c_v

Configuration Management V 1.1.0 SWEED 2002, R. Bonderer, M. Kropp 18


SWEED
Baseline

A specification or product that has been formally


reviewed an agreed upon, that thereafter serves
as the basis for further development, and that can
be changed only through formal change control
procedures.

IEEE Standard Glossary of Software Engineering Terminology

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 19


SWEED
Version

An initial release or re-release of a computer


software configuration item, associated with a
complete compilation or recompilation of the
computer software configuration item.

IEEE Standard Glossary of Software Engineering Terminology

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 20


SWEED
Release

The formal notification and distribution of an


approved version.

IEEE Standard for Software Configuration Management Plans

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 21


SWEED
Variant

A variant is an instance of a system which is


functionally identical but non-functionally
distinct from other instances of a system.
Ian Sommerville

Examples:
X Natural language "versions" (English, French, ...)
X "Versions" for different operating systems
X Customer specific "versions"

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 22


SWEED
Release Identification

V Releases are usually identified with a label


consisting of three numbers, separated by a dot.

X.Y.Z
V The following conventions usually apply:
O X represents a major new version of a system (starts with 1)
O Y represents the update level with minor functional changes
(starts with 0)
O Z is used for bug fix versions (starts with 0)

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 23


SWEED
Release Management

V Releases must incorporate changes forced on


the system by errors discovered by users and
by hardware changes
V They must also incorporate new system
functionality
V Release planning is concerned with when to
issue a system version as a release

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 24


SWEED
System Releases

V Not just a set of executable programs


V May also include
X Configuration files
X Data files needed for system operation
X Installation program or shell script
X Electronic and paper documentation
X Packaging and associated publicity
V Systems are now normally released on DVD,
CD-ROM or as downloadable installation files
from the web
Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 25
SWEED
Release Decision Making

V Preparing and distributing a system release is


an expensive process
V Factors such as the technical quality of the
system, competition, marketing requirements
and customer change requests should all
influence the decision of when to issue a new
system release

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 26


SWEED
Exercise: Version and Release Mgmt

V Discuss whether Windows 98 is new version or


just a revision of Windows 95.

V A software company selling an Office suite


wants to ship a new release every 18 months.
What is the impact of this fact on the
development process?

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 27


SWEED
Version Management Tools

V Automatic version and release identification


V Efficient storage management.
X System stores the differences between versions
rather than all the version code
V Change history recording
V Independent development
X Parallel working on the same version is handled,
either by exclusive locking (most tools) or by a so-
called unreserved check out model (CVS).

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 28


SWEED
Working Environment

Repository

Check out Server Check in

Sandbox

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 29


SWEED
Content of an Archive
Workfile (in Sandbox)

MAIN.C
Version 1.2 of MAIN.C
Author: N. Wirth
Check in Last modified: 2002-08-15

Description of changes: Ported to DB version 2.0

Archive

Version 1.2
Version 1.1 of MAIN.C
Author: B. Kernighan
Version 1.1 Last modified: 2001-07-26

Description of changes: Database integrated


Version 1.0

MAIN.C_V
Version 1.0 of MAIN.C
Author: D. Knuth
Last modified: 1993-10-21

Description of changes: File created

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 30


SWEED
Concurrent Versions System (CVS)

V Open Source
V www.cvshome.org
V Local or C/S access
V Commandline based
V GUIs are available
X WinCVS
X jCVS
V May be integrated into
other tools
X e.g. Together CASE tool

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 31


SWEED
CVS Commands for Users

V Check out files


O cvs checkout filename

V Check in files
O cvs commit filename

V Clean up the working directory


O cvs release directoryname

V Add files to repository


O cvs add filename

V Remove files from repository


O cvs remove filename

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 32


SWEED
CVS Commands for Users (cont'd)

V Show the differences between two versions


O cvs diff filename

V Show the log of changes to a file


O cvs log filename

V Show the history of each line of a file


O cvs annotate filename

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 33


SWEED
CVS Commands for Administrators

V Create a CVS repository


O cvs -d directoryname init

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 34


SWEED
Exercise: CVS

V Copy the provided CVS repository to where you


like to have it.
V Create your sandbox.
V Now check the whole repository out to your
sandbox.
V Try some CVS commands
X See the log of the files, change the files, check them
back in, see the log of the files now, create a new file,
add it to the repository, ...

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 35


SWEED
Exercise: CASE Tool using CVS

V Take a class diagram you created with Together


Control Center and put it under version control.
V Do some changes and check them in again.
V Try to get the former version back out of the
repository.

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 36


SWEED

Change Management

Configuration Management V 1.1.0 SWEED 2002, R. Bonderer, M. Kropp 37


SWEED
Change Management

V Software systems are subject to continual


change requests
X From users
X From developers
X From market forces
V Change management is concerned with
managing of these changes and ensuring that
they are implemented in the most cost-effective
way

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 38


SWEED
Promotion Model

Production

Beta

Quality Assurance

Development

V Each life cycle stage is working with a defined baseline.


V Changes must only be made in the Development stage.
V No Change management in the Development stage.
V Baselines are promoted to the next level after (formal)
approval by an authorized body.
Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 39
SWEED
Change Management Process

Submit change Analyse change No


Valid?
request request

Yes

Assess
Submit request Record request
implementation
to CCB in database
and cost

No Reject change
Accepted?
request

Yes

Implement and Create new


test change release

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 40


SWEED
Change Request Form

V Definition of a change request form is part of the


CM planning process (may be paper or
electronic)
V Records change required, requestor of change,
reason why change was requested and
urgency of change
V Records change evaluation, impact analysis,
change cost and recommendations (system
maintenance staff)

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 41


SWEED
Change Tracking Tool

V A major problem in change management is


tracking change status
V Change tracking tools keep track the status of
each change request and automatically ensure
that change requests are sent to the right
people at the right time.
V Integrated with e-mail systems allowing
electronic change request distribution

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 42


SWEED
A sample problem statistics

60
58
56
54
52
50
48
46
44 Priority 4
42
40 Priority 3
38
36
Priority 2
34 Priority 1
32
30
28
26
24
22
20
18
16
14
12
10
8
6
4
2
0
Okt 99 Nov 99 Dez 99 Jan 00 Feb 00

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 43


SWEED
Configuration Control Board (CCB)

V Also called Change Control Board


V Changes should be reviewed by an external
group who decide whether or not they are cost-
effective from a strategic and organisational
viewpoint rather than a technical viewpoint
V Should be independent of project responsible
for system.
V May include representatives from client and
contractor staff

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 44


SWEED
Revision History

V Record of changes applied to a document or


code component
V Should record, in outline, the change made, the
rationale for the change, who made the change
and when it was implemented
V May be included as a comment in code. If a
standard prologue style is used for the
derivation history, tools can process this
automatically

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 45


SWEED
Change Management Tools

V Change management is a procedural process


so it can be modelled and integrated with a
version management system
V Change management tools
X Form editor to support processing the change
request forms
X Workflow system to define who does what and to
automate information transfer
X Change database that manages change proposals
and is linked to a VM system

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 46


SWEED
Exercise: Change Management

V Design a entity-relational model of a


configuration database which records
information about system components versions,
releases and changes
V Define attributes and queries that might be
helpful for a CM database user

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 47


SWEED

Building a System

Configuration Management V 1.1.0 SWEED 2002, R. Bonderer, M. Kropp 48


SWEED
System Building

V The process of compiling and linking software


components into an executable system
V Different systems are built from different
combinations of components
V Different releases are built from different
versions of components
V Invariably supported by automated tools that are
driven by ‘build scripts’

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 49


SWEED
System Building

V Building a large system is computationally


expensive and may take several hours
V Hundreds of files may be involved
V System building tools may provide
X A dependency specification language and interpreter
X Distributed compilation
X Derived object management
X Integration with version management tools

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 50


SWEED
Integrated Build Process
program.exe

Link

gui.obj main.obj io.obj

Compile

gui.c main.c io.c

Check out

1.3 1.5 1.2

1.2 1.4 1.1

1.1 1.3 1.0

1.0 1.2 io.c_v

gui.c_v 1.1

1.0

main.c_v

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 51


SWEED
Daily System Building

V It is easier to find problems that stem from


component interactions early in the process
V This encourages thorough unit testing -
developers are under pressure not to ‘break the
build’
V A stringent change management process is
required to keep track of problems that have
been discovered and repaired

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 52


SWEED
System Building Problems

V Do the build instructions include all required


components?
V Is the appropriate component version
specified?
V Are all data files available?
V Is the system being built for the right platform?
V Is the right version of the compiler and other
software tools specified?

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 53


SWEED
Tool Support

V Make
X Comes with many
development environments
or from GNU
X www.gnu.org
V Ant
X Open source tool from the
apache project
X Based on XML
X Independent of operating
systems
X jakarta.apache.org/ant

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 54


SWEED
Exercise: System Building

V Use a make tool (e.g. GNU make) and define a


build script for a small development project.

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 55


SWEED

Configuration Management Planning

Configuration Management V 1.1.0 SWEED 2002, R. Bonderer, M. Kropp 56


SWEED
CM Standards

V CM should always be based on a set of standards


which are applied within an organisation
V Standards should define how items are identified,
how changes are controlled and how new versions
are managed
V Standards may be based on external CM standards
V IEEE standards are recommended
O IEEE Standard for Software Configuration Management
Plans, IEEE Std 828-1998
O IEEE Guide to Software Configuration Management, IEEE
Std 1042-1987

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 57


SWEED
Products of the Software Process

V Documents
– Specifications
– Manuals
V Designs
V Source code
V Test data
V Tools
ÎAll may have to be managed

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 58


SWEED
Configuration Management Planning

V Starts during the early phases of the project


O Recommendation: Plan before you start working

V Must define the documents or document classes


which are to be managed (formal documents)

V The plan shall be applied to the type and size of


the project

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 59


SWEED
What the CM Plan Defines...

V Items to be managed (Configuration items)


V Identification of items (naming scheme)
V Responsibilities for the CM procedures and
creation of baselines
V Policies for change control and version mgmt
V CM records which must be retained
V Tools to be used and how to use them
V CM database to record configuration information

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 60


SWEED
What the CM Plan May Define...

V Configuration status accounting


X Configuration auditing
X Release process
V Subcontractor / Supplier management
X How to interact with subcontractors / suppliers

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 61


SWEED
Configuration Item Identification

V Each configuration item must unambiguously be


identified
V A naming scheme shall be defined

????

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 62


SWEED
Elements of a CI Identification

• Unique identifier
• Version number
• Descriptive name
• (Check sum)

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 63


SWEED
Hierarchical Naming Scheme

V A hierarchical scheme with multi-level names is


probably the most flexible approach

PPP.SSS.TTT.nnnn
Serial number
Document type
Subsystem
Project

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 64


SWEED
Linear Naming Scheme

V A linear scheme may be used if the registration


is decentralised

PPP.nnnnnn

Serial number
Project

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 65


SWEED
Content according to IEEE Std 828

™ Introduction œ SCM Schedules


Describes the Plan's purpose, (When?) Identifies the required
scope of application, key coordination of SCM activities
terms, and references with the other activities in the
š SCM Management project
(Who?) Identifies the  SCM Resources
responsibilities and authorities (How?) Identifies tools and
for accomplishing the planned physical and human resources
activities required for execution of the
› SCM Activities Plan
(What?) Identifies all activities ž SCM Plan Maintenance
to be performed in applying to Identifies how the Plan will be
the project kept current while in effect

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 66


SWEED
Exercise: Create SCM Plan

You already may have worked on a student


project. If not, consider a small experimental
software project.

Create a Software Configuration Management


Plan (SCMP) for this project.

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 67


SWEED
Key Points

V Configuration management is the management


of system change to software products
V A formal document naming scheme should be
established and documents should be managed
in a database
V The configuration data base should record
information about changes and change requests
V A consistent scheme of version identification
should be established using version numbers,
attributes or change sets
Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 68
SWEED
Key Points (cont'd)

V System releases include executable code, data,


configuration files and documentation
V System building involves assembling
components into a system
V CASE tools are available to support all CM
activities
V CASE tools may be stand-alone tools or may be
integrated systems which integrate support for
version management, system building and
change management
Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 69
SWEED
Outlook

V What's missing in this module


X Branching of versions
X Merging of versions
X Managing configurations that consist of firmware and
hardware items, too

Configuration Management V 1.1.0 © SWEED 2002, R. Bonderer, M. Kropp 70

You might also like