Lecture 7 - 8 Configuration Management
Lecture 7 - 8 Configuration Management
Configuration
Management
2
Topics covered
Change management
Version management
System building
Release management
3
Configuration management
Change management
Keeping track of requests for changes to the software from customers and
developers, working out the costs and impact of changes, and deciding
the changes should be implemented.
Version management
Keeping track of the multiple versions of system components and ensuring
that changes made to components by different developers do not interfere
with each other.
6
CM activities
System building
The process of assembling program components, data and libraries, then
compiling these to create an executable system.
Release management
Preparing software for external release and keeping track of the system
versions that have been released for customer use.
7
Configuration management activities
8
CM terminology
Configuration control
Version
Baseline
Codeline
A codeline is a set of versions of a software component and other
configuration items on which that component depends.
Mainline
A sequence of baselines representing different versions of a
system.
13
CM terminology
Release
A version of a system that has been released to customers (or
other users in an organization) for use.
Workspace
A private work area where software can be modified without
affecting other developers who may be using or modifying that
software.
14
CM terminology
Branching
The creation of a new codeline from a version in an existing
codeline.
The new codeline and the existing codeline may then develop
independently.
15
CM terminology
Merging
The creation of a new version of a software component by
merging separate versions in different codelines.
These codelines may have been created by a previous branch
of one of the codelines involved.
16
CM terminology
System Building
Change
Management
18
Change management
The change
management
process
21
A partially completed change request
form (a)
Change assessment: Relatively simple to implement by changing the display color according to status. A table
must be added to relate status to colors. No changes to associated components are required.
Version
Management
28
Version management
Independent development
The version management system keeps track of components that have
been checked out for editing and ensures that changes made to a
component by different developers do not interfere.
Project support
A version management system may support the development of several
projects, which share components.
35
Storage management using deltas
Delta differencing is an
incremental approach to
backup that only backs up
blocks that have changed
after the first full backup.
http://searchstorage.techtarget.c
om/definition/delta-differencing
36
Check-in and check-out from a
version repository
37
Codeline branches
System Building
43
System building
Modification timestamps
The signature on the source code file is the time and date
when that file was modified.
If the source code file of a component has been modified after
the related object code file, then the system assumes that
recompilation to create a new object code file is necessary.
51
File identification
Timestamps
Because source and object files are linked by name rather than an explicit
source file signature, it is not usually possible to build different versions of a
source code component into the same directory at the same time, as these
would generate object files with the same name.
Checksums
When you recompile a component, it does not overwrite the object code, as
would normally be the case when the timestamp is used. Rather, it generates
a new object code file and tags it with the source code signature. Parallel
compilation is possible and different versions of a component may be
compiled at the same time.
53
Agile building
Check out the mainline system from the version management system
into the developer’s private workspace.
Build the system and run automated tests to ensure that the built
system passes all tests. If not, the build is broken and you should inform
whoever checked in the last baseline system. They are responsible for
repairing the problem.
Make the changes to the system components.
Build the system in the private workspace and rerun system tests. If the
tests fail, continue editing.
54
Agile building
Once the system has passed its tests, check it into the build system but
do not commit it as a new system baseline.
Build the system on the build server and run the tests. You need to do
this in case others have modified components since you checked out
the system. If this is the case, check out the components that have
failed and edit these so that tests pass on your private workspace.
If the system passes its tests on the build system, then commit the
changes you have made as a new baseline in the system mainline.
55
Continuous integration
56
Daily building
Release
Management
58
Release management
Release timing
As well as the the executable code of the system, a release may also
include:
configuration files defining how the release should be configured for
particular installations;
data files, such as files of error messages, that are needed for successful
system operation;
an installation program that is used to help install the system on target
hardware;
electronic and paper documentation describing the system;
packaging and associated publicity that have been designed for that
release.
66
Factors influencing system release
planning
Platform changes
You may have to create a new release of a software application when a
new version of the operating system platform is released.
68
Factors influencing system release
planning
Competition
For mass-market software, a new system release may be necessary
because a competing product has introduced new features and market
share may be lost if these are not provided to existing customers.
70
Factors influencing system release
planning
Marketing requirements
The marketing department of an organization may have made a
commitment for releases to be available at a particular date.
71
Factors influencing system release
planning