Configuration management Managing the products (code and documentation) of system as it changes

advertisement
Configuration management

Managing the products (code
and documentation) of system
as it changes
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 1
Configuration management

New versions of software systems are created
•
•
•
•

Enhancements / Fixes
Different stages of development
For different machines/OS
Less likely, tailored for particular user requirements, offering
different functionality
Configuration management is concerned with
managing evolving software systems
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
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 2000
Software Engineering, 6th edition. Chapter 29
Slide 5
System families
PC
version
VM S
version
Initial
system
DEC
version
Mainframe
version
Workstation
version
Unix
version
Sun
version
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 6
Daily system building




It is easier to find problems that stem from
component interactions early in the process
Encourages thorough unit testing - developers are
under pressure not to ‘break the build’
Successful use requires stringent change
management process to keep track of problems
that have been discovered and repaired
Produces many versions that must be managed
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 9
29. 1 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 2000
Software Engineering, 6th edition. Chapter 29
Slide 10
CM planning



Starts during the early phases of the project
Must define the documents or document
classes which are to be managed
Documents which might be required for future
system maintenance should be identified and
specified as managed documents
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 11
The CM plan





Types of documents to be managed
Who takes responsibility for CM
Policies for change control and version management
CM records which must be maintained
…
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 12
Configuration hierarchy
PCL-TOOLS
COMPILE
FORM-S PECS
EDIT
MAKE-GEN
FORM
STRUC TUR ES
HELP
DIS PLAY
QUERY
AS T-INTERFACE
FORM-IO
OB JECTS
©Ian Sommerville 2000
BIND
CODE
TESTS
Software Engineering, 6th edition. Chapter 29
Slide 15
29.2 Change management

Software systems are subject to continual
change requests
•
•
•


From users
From developers
From market forces
Change management is concerned with keeping
track of these change requests and ensuring that
they are implemented in the most cost-effective
way
Change management starts when materials put into
configuration management
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 18
The change management process
Request change by completing a change request form
Analyze change request
if change is valid then
Assess how change might be implemented
Assess change cost
Submit request to change control board
if change is accepted then
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 2000
Software Engineering, 6th edition. Chapter 29
Slide 19
Example Change request form
Change Request Form
Project: Proteus/PCL-Tools
Number: 23/94
Change requester: I. Sommerville
Date: 1/12/98
Requested change: When a component is selected from the structure,
display the name of the file where it is stored.
Change analyser: G. Dean
Analysis date: 10/12/98
Components affected: Display-Icon.Select, Display-Icon.Display
Associated components: FileTable
Change assessment: Relatively simple to implement as a file name table
is available. Requires the design and implementation of a display field. No
changes to associated components are required.
Change priority: Low
Change implementation:
Estimated effort: 0.5 days
Date to CCB: 15/12/98
CCB decision date: 1/2/99
CCB decision: Accept change. Change to be implemented in Release 2.1.
Change implementor:
Date of change:
QA decision
Date submi tted to QA:
Date submitted to CM:
Commen ts
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 21
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
May be integrated with Configuration Management DB
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 23
Change control board



Decide based on a cost, strategic and organizational
viewpoint
Should be independent of project team
Representatives from client and contractor staff
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 24
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
Impact in tracked item should be marked
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 2000
Software Engineering, 6th edition. Chapter 29
Slide 25
Component header information
// PROTEUS project (ESPRIT 6 087)
//
// PCL-TOOLS/EDIT/FORMS/DISPLAY/AST-INTERFACE
//
// Object: PCL-Tool-Desc
// Author: G. Dean
// Creation date: 10th November 1998
//
// © Lancaster University 1998
//
// Modification history
// Version
Modifier Date
Change
Reason
// 1.0
J. Jones
1/12/1998
Add header Submitted to CM
// 1.1
G. Dean
9/4/1999 New field Change req. R07/99
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 26
29.3 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 2000
Software Engineering, 6th edition. Chapter 29
Slide 27
Version identification


Procedures for version identification should
define an unambiguous way of identifying
component versions
Three basic techniques for component
identification
•
•
•
Version numbering
Attribute-based identification
Change-oriented identification
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 29
Version numbering




Simple naming scheme uses a linear derivation
e.g. V1, V1.1, V1.2, V2.1, V2.2 etc.
However, actual derivation structure may be a
tree or a network rather than a sequence
Names are not meaningful.
Hierarchical naming scheme may be better
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 30
Version derivation structure
V1.0
V1.1b
V1.1.1
V1.1
V1.2
V2.0
V2.1
V2.2
V1.1a
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 31
Attribute-based 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;
Supports queries when looking for versions
Can cause problems with uniqueness
Awkward - needs an associated name for easy reference
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 32
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
Packaging and associated publicity
Systems are now normally released on CD-ROM
or as downloadable installation files from the web
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 36
Release problems
• Release management must not assume that all
previous releases have been accepted.
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 37
Release decision making



Must plan when to distribute a system release
Preparing and distributing a release is expensive
Factors:
•
•
•
technical quality
competition, marketing requirements
customer change requests
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 38
Release creation



Collect all files and documentation
Configuration descriptions / instructions/ scripts
Documented to allow re-creation
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 40
29.4 System building



The process of compiling and linking software
components into an executable system
Different systems are built from different
combinations of components
Invariably supported by automated tools that are
driven by ‘build scripts’
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 41
System building
System
builder
Build
script
©Ian Sommerville 2000
Version
management
system
Source code
component
versions
Compilers
Linker
Object code
components
Software Engineering, 6th edition. Chapter 29
Executable
system
Slide 42
System building problems



Do the build instructions include all required
components?
Is the appropriate component version
specified?
Are all data files available?
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 43
System building problems



Are data file references within components
correct?
Is the system being built for the right platform
Is the right version of the compiler and other
software tools specified?
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 44
29.5 CASE tools for configuration
management




CM processes are standardized and involve
applying pre-defined procedures
Large amounts of data must be managed
CASE tool support for CM is therefore essential
Mature CASE tools to support configuration
management are available ranging from standalone tools to integrated CM workbenches
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 46
Change management tools


Change management is a procedural process so it can be
modelled and integrated with a version management
system
Change management tools
•
•
•
Form editor
Workflow system
Change database, with query facilities
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 47
Version management tools




Version and release identification
Storage management.
Change history recording
Independent development
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 48
Delta-based versioning
Version
1.0
Version
1.1
D1
Version
1.2
D2
Version
1.3
D3
Creation date
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 49
e.g. Microsoft Visual Source Safe


Part of Visual Studio
Handles Sharing of Files in a project
•
•

Handles Multiple Versions
•
•

Check out for making changes
Check back in after changes
Saves latest
Saves “Backward Deltas”
Mostly makes sense with network common area
available to whole team
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 50
Microsoft Visual Source Safe





VSS keeps a database
Inside DB there are Projects
Projects include files
Users have working folder for when they are
working on something
Shadow Folder – common, read only versions of
current code
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 51
Microsoft Visual Source Safe








Check out file – copied to your working folder
While checked out, other check-outs are stopped
Check back in makes file available to others
If not changing file, can Get / View the file (read only)
Can cancel checkout if decide not to change file
VSS can show differences between versions of a file
VSS keeps track of versions using numbers, by date, AND
by user-defined labels (names)
Can try to merge different versions of a file
©Ian Sommerville 2000
Software Engineering, 6th edition. Chapter 29
Slide 52
Download