0% found this document useful (0 votes)
7 views61 pages

CH - 33 - 1-Configuration Management

The document discusses the importance and processes of software configuration management (CM), including planning, change management, version management, and system building. It emphasizes the need for standards and tools to manage evolving software systems effectively, ensuring cost control and quality maintenance. Key topics include the identification of configuration items, change tracking, and the management of software versions and releases.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
7 views61 pages

CH - 33 - 1-Configuration Management

The document discusses the importance and processes of software configuration management (CM), including planning, change management, version management, and system building. It emphasizes the need for standards and tools to manage evolving software systems effectively, ensuring cost control and quality maintenance. Key topics include the identification of configuration items, change tracking, and the management of software versions and releases.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PPT, PDF, TXT or read online on Scribd
You are on page 1/ 61

Configuration management

 Managing the products of


system change

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 1


Objectives
 To explain the importance of software
configuration management (CM)
 To describe CM planning
 To describe key CM activities namely change
management, version management and system
building
 To discuss the use of some CM tools

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 2


Topics covered
 Configuration management planning
 Change management
 Version and release management
 System building

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 3


Configuration management
 New versions of software systems are created as
they evolve
• For different machines/OS
• Offering different functionality
• Tailored for particular user requirements
 CM is concerned with managing evolving
software systems
• System change is a team activity
• CM aims to control the costs and effort involved in making
changes to a system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 4


Configuration management
 Involves the development and application of
procedures and standards to manage an evolving
software product
 May be seen as part of a more general quality
management process
 When released to CM, software systems are
sometimes called baselines as they are a starting
point for further development

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 5


System families

PC Mainframe
version version
VM S
version
Initial DEC Workstation
system version version
Unix
version
Sun
version

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 6


CM standards
 CM should always be based on a set of standards
which are applied within an organisation
 Standards should define how items are identified, how
changes are controlled and how new versions are
managed
 Standards may be based on external CM standards
(e.g. IEEE standard for CM)
 Existing standards are based on a waterfall process
model - new standards are needed for evolutionary
development

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 7


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 are
generated for a large software system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 8


CM planning
 Starts during the early phases of the project
 Must define the documents or document
classes which are to be managed (Formal
documents)
 Documents which might be required for future
system maintenance should be identified and
specified as managed documents

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 9


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 version
management
 Defines the CM records which must be
maintained

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 10


The CM plan
 Describes the tools which should be used to assist
the CM process and any limitations on their use
 Defines the process of tool use
 Defines the CM database used to record
configuration information
 May include information such as the CM of
external software, process auditing, etc.

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 11


Configuration item identification
 Large projects typically produce thousands of
documents which must be uniquely identified
 Some of these documents must be maintained for
the lifetime of the software
 Document naming scheme should be defined
so that related documents have related names.
 A hierarchical scheme with multi-level names is
probably the most flexible approach

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 12


Configuration hierarchy
PCL-TOOLS

COMPILE BIND EDIT MAKE-GEN

FORM STRUC TUR ES HELP

DIS PLAY QUERY

FORM-S PECS AS T-INTERFACE FORM-IO

OB JECTS CODE TESTS

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 13


CM planning database
 All CM information should be maintained in a
CM database
 Should allow queries about configurations to be
answered
• Who has a particular system version?
• What platform is required for a particular version?
• What versions are affected by a change to component X?
• How many reported faults in version T?
 CM database should preferably be linked to the
software being managed

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 14


CM database implementation
 May be part of an integrated environment to
support software development. The CM database
and the managed documents are all maintained on
the same system
 CASE tools may be integrated with this so that
there is a close relationship between the CASE
tools and the CM tools
 More commonly, the CM database is maintained
separately as this is cheaper and more flexible

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 15


Change management
 Software systems are subject to continual
change requests
• From users
• From developers
• From market forces
 Change management is concerned with keeping
managing of these changes and ensuring that
they are implemented in the most cost-effective
way

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 16


The change management process
Request change by completing a change request form
Analyze change request
if change is validthen
Assess how change might be implemented
Assess change cost
Submit request to change control board
if change is acceptedthen
repeat
make changes to software
submit changed software for quality approval
until software quality is adequate
create new system version
else
reject change request
else
reject change request

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 17


Change request form
 Definition of change request form is part of the
CM planning process
 Records change required, suggestor of change,
reason why change was suggested and
urgency of change(from requestor of the
change)
 Records change evaluation, impact analysis,
change cost and recommendations (System
maintenance staff)

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 18


Change request form
 Replace with portrait slide

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 19


Change tracking tools
 A major problem in change management is
tracking change status
 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.
 Integrated with E-mail systems allowing
electronic change request distribution

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 20


Change control board
 Changes should be reviewed by an external group
who decide whether or not they are cost-effective
from a strategic and organizational viewpoint
rather than a technical viewpoint
 Should be independent of project responsible
for system. The group is sometimes called a
change control board
 May include representatives from client and
contractor staff

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 21


Derivation history
 Record of changes applied to a document or
code component
 Should record, in outline, the change made, the
rationale for the change, who made the change
and when it was implemented
 May be included as a comment in code. If a
standard prologue style is used for the derivation
history, tools can process this automatically

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 22


Example - derivation history
// PROTEUS project (ESPRIT 6087)
//
// PCL-TOOLS/EDIT/FORMS/DISPLAY/AST-INTERFACE
//
// Object: PCL-Tool-Desc
// Author: G. Dean
// Creation date: 10th November 1994
//
// © Lancaster University 1994
//
// Modification history
// Version Modifier Date Change Reason
// 1.0 J. Jones 1/12/94 Add header Submitted to CM
// 1.1 G. Dean 9/4/95 New field Change
// req. 07/95

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 23


Version and release management
 Invent identification scheme for system
versions
 Plan when new system version is to be
produced
 Ensure that version management procedures and
tools are properly applied
 Plan and distribute new system releases

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 24


Versions/variants/releases
 Version An instance of a system which is
functionally distinct in some way from other
system instances
 Variant An instance of a system which is
functionally identical but non-functionally
distinct from other instances of a system
 Release An instance of a system which is
distributed to users outside of the development
team

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 25


System releases
 Not just a set of executable programs
 May also include
• Configuration files defining how the release is configured for a
particular installation
• data files needed for system operation
• an installation program or shell script to install the system on
target hardware
• electronic and paper documentation
 Systems may be released on magnetic tape,
floppy disk or CD-ROM

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 26


Version identification
 Simple naming scheme uses a linear derivation
e.g. V1, V1.1, V1.2, V2.1, V2.2 etc.
 Actual derivation structure is a tree or a
network rather than a sequence
 Names are not meaningful.
 Hierarchical naming scheme may be better

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 27


Version derivation structure

V1.1b V1.1.1

V1.0 V1.1 V1.2 V2.0 V2.1 V2.2

V1.1a

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 28


Atributed version identification
 Attributes can be associated with a version with
the combination of attributes identifying that
version
 Examples of attributes are Date, Creator,
Programming Language, Customer, Status etc.
 More flexible than an explicit naming scheme
for version retrieval; Can cause problems with
uniqueness
 Needs an associated name for easy reference

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 29


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

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 30


Lehman’s fifth law
 The incremental system change which can be
incorporated in each release of the system is
approximately constant
 If too many new features are included at the
same time as error repairs, the cost of producing a
new release is significantly increased
 If a release has many changes incorporated, it
must be followed by a further release fixing
problems in the first release

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 31


System release strategy

Enhanced Repair Repair Enhanced Repair


release release release release release

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 32


Release problems
 Customer may not want a new release of the
system
• They may be happy with their current system as the new
version may provide unwanted functionality (e.g. Word 6)
 Release management must not assume that all
previous releases have been accepted. All files
required for a release should be re-created when a
new release is installed

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 33


Version management tools
 Version and release identification
• Systems assign identifiers automatically when a new version is
submitted to the system
 Controlled change.
• Only one version at a time may be checked out for change. Parallel
working on different versions
 Storage management.
• System stores the differences between versions rather than all the
version code
 Change history recording
• Record reasons for version creation

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 34


RCS - Revision Control System
 RCS is a relatively old tool but still widely used.
 Minimizes the disk requirements by only storing
differences (deltas) from a base version
 Applies deltas to the latest release to re-create
earlier system versions
 Allows any named version or release to be
generated
 Allows independent development of different
releases

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 35


Deltas in RCS

Version Version Version Version


1.0 1.1 1.2 1.3

D1 D2 D3

Creation date

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 36


Parallel development in RCS

D1.1 D1.2 D1.3 D1.4

Version Version Version Version Version


1.0 1.1 1.2 1.3 1.4

RELEASE 1
D2.1

Version Version
2.0 2.1

RELEASE 2

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 37


RCS limitations
 Designed as a code control system therefore
intended for use with ASCII text
 Cannot be used to manage object code or other
documents with non-ASCII representations (e.g.
multimedia files)
 Text-based user interface. Version browsing is
difficult
 Version retrieval based on the name rather than
the version attributes

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 38


System building
 Involves taking all system components and
combining them into a single executable system
 Different systems are built from different
component combinations
 May take several days for large systems if all
components are compiled and linked at the same
time

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 39


System building problems
 Do the build instructions include all required
components?
• When there are many hundreds of components making up
a system, it is easy to miss one out. This should normally
be detected by the linker
 Is the appropriate component version
specified?
• A more significant problem. A system built with the wrong
version may work initially but fail after delivery
 Are all data files available?
• The build should not rely on 'standard' data files. Standards
vary from place to place

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 40


System building problems
 Are data file references within components
correct?
• Embedding absolute names in code almost always causes
problems as naming conventions differ from place to place
 Is the system being built for the right platform
• Sometimes must build for a specific OS version or hardware
configuration
 Is the right version of the compiler and other
software tools specified?
• Different compiler versions may actually generate different code and
the compiled component will exhibit different behaviour

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 41


System representation
 Systems are normally represented for building by
specifying the file name to be processed by
building tools. Dependencies between these are
described to the building tools
 Mistakes can be made as users lose track of
which objects are stored in which files
 A system modelling language addresses this
problem by using a logical rather than a physical
system representation

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 42


System building with Make
 Most widely used build tool on the Unix system
is MAKE. Comparable tools are available on
other systems
 User specifies component dependencies and
MAKE automatically forces recompilation of
required files when it detects that the source code
has been changed after the object code was
created

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 43


Component dependencies
comp

scan.o syn.o sem.o cgen.o

scan.c syn.c sem.c cgen.c

defs.h

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 44


Make problems
 Based on a physical rather than a logical model
of dependencies
 Dependency specifications (Makefiles) quickly
become large, complex, hard to understand
and expensive to maintain
 MAKE uses a simple model of change based
on file update times. Source code changes
NEED not require re-compilation

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 45


Make problems
 MAKE does not (easily) allow versions of tools
such as the compiler to be specified
 Not tightly linked to version management tools
such as RCS. Manual intervention is usually
needed to check out source code from a version
management system for building

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 46


System modelling in PCL
 PCL is a system modelling language
 Systems are represented as families with stable and
variable parts
 Attribute-based component identification
 Component interface definition
 Composition structure of components
 Physical structure - mapping of logical component to
physical files
 Component relationships e.g. ‘requires’ and ‘implemented
as’

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 47


Logical system model
family print-server

attributes
multiple-paper-types: boolean ;
end
interface
print => print-file ;
display-queue => show-print-queue ;
dequeue => delete-print-job ;
select-printer => set-printer ;
select-paper-type =>
if multiple-paper-types then
set-input-tray endif ;
end
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 48
Logical system model
parts
PRINT => printer-controller ;
QUEUE => queue-manager ;
select-paper-type =>
if multiple-paper-types then
set-input-tray endif ;
end
physical
source => “print_server” repository “/usr/src” ;
EXECUTABLE => Print-man binary
“/usr/utils/bin” ;
end
end // print-server
©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 49
PCL system building

PCL system Make-gen Make file


description

Version
PCL-bind PCL Unix Derived
management
build model Make system
system

PCL version Check-out


Repository
description files for building

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 50


System building from PCL
 Variability is removed from the PCL description
by PCL-bind
 The system model is analysed and dependencies
are identified. A make file is generated
 The required versions of components are
identified by their attributes and checked out
automatically from RCS
 Make is called to build the system

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 51


Parallel system building
 DSEE is an example of a system which supports
networked building
• Parallel building of different system versions
• Parallel compilation on different network nodes
• Integrated source code control and system building
• Configuration identification based on a system model called a
configuration thread
• Derived object management where all built objects are
maintained until they are needed or space is exhausted

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 52


DSEE characteristics
 No automatic recompilation of object code after
a source code change (unlike Make)
 Only recompile a component when a demand is
made for the object code
 Supports attribute-based version identification
through 'configuration threads'
 Object code related to source code through
attributes. Compiled objects have the same
attribute set as their sources

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 53


Parallel building
 Generally, on a network of workstations, some
are idle at any one time
 DSEE finds an idle machine and builds
component on that machine
 Leads to performance improvement of several
hundred %
 System works well when a network is
composed of common platforms so
components are interchangable.

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 54


Network-oriented building
Parallel compilation

WS WS WS WS

Workstation network

Source code Compiled object


v1234 for compilation code
v1233
v2234 Object pool
v2233
Source code v2233 v1234
DSEE
versions
v2234 v1233

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 55


Configuration threads
 Identify the version to be built by specifying its
attributes (e.g. Build the version with identifier
attribute, R3; build the version with status
attribute 'beta test' etc.)
 Identify the version of the compiler and support
tools along with its parameters which is to be
used in building a system version

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 56


Integrated CM databases
 Integrate information about the configuration
with the entities which are themselves being
managed.
 Generally based on ERA semantic model
where entities participate in relationships and
have associated attributes.
 Include process information e.g.. an entity
attribute may have a value which is a process
description showing how that entity was
created.

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 57


CM support with an integrated DB
 CM tools may be implemented using database
query and browsing facilities
 Using process information, other tools such as
editors/compilers etc. can be integrated and
can automate version creation
 Information dissemination re versions and
changes can be incorporated in the process
information

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 58


Database-oriented CM tools
 Rely on a powerful semantic or object-oriented
database
 Store both process and product information
 Provide an integrated set of tools for
configuration management
 Integrated with other tools through the
database
 Graphical user interface
 Still research prototypes

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 59


Key points
 CM is the management of system change to
software products
 Effective CM is essential in large software
projects
 CM activities include CM planning, change
management, system building, and version and
release management
 A formal document naming scheme should be
established and documents should be
managed in a database

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 60


Key points
 System releases should be phased with releases
fixing problems interleaved with releases offering
new functionality
 System building involves assembling components
into a system. It is always supported by system
building tools such as Make
 Integrated CM tools such as DSEE combine
support for system building and version
management

©Ian Sommerville 1995 Software Engineering, 5th edition. Chapter 33 Slide 61

You might also like