CH 25 Mod
CH 25 Mod
Change management
Version management
System building
Release 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.
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.
Chapter 25 Configuration management 4
Configuration management activities
Term Explanation
Configuration item or Anything associated with a software project (design, code, test data,
software configuration document, etc.) that has been placed under configuration control. There are
item (SCI) often different versions of a configuration item. Configuration items have a
unique name.
Configuration control The process of ensuring that versions of systems and components are
recorded and maintained so that changes are managed and all versions of
components are identified and stored for the lifetime of the system.
Version An instance of a configuration item that differs, in some way, from other
instances of that item. Versions always have a unique identifier, which is
often composed of the configuration item name plus a version number.
Baseline A baseline is a collection of component versions that make up a system.
Baselines are controlled, which means that the versions of the components
making up the system cannot be changed. This means that it should
always be possible to recreate a baseline from its constituent components.
Codeline A codeline is a set of versions of a software component and other
configuration items on which that component depends.
Term Explanation
Mainline A sequence of baselines representing different versions of a
system.
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.
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.
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.
System building The creation of an executable system version by compiling and
linking the appropriate versions of the components and libraries
making up the system.
Chapter 25 Configuration management 7
Change 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.
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.
Source code checksums
The signature on the source code file is a checksum calculated
from data in the file. A checksum function calculates a unique
number using the source text as input. If you change the source
code (even by 1 character), this will generate a different
checksum. You can therefore be confident that source code files
with different checksums are actually different.
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.
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.
Factor Description
Technical quality of If serious system faults are reported which affect the way in
the system which many customers use the system, it may be
necessary to issue a fault repair release. Minor system
faults may be repaired by issuing patches (usually
distributed over the Internet) that can be applied to the
current release of the system.
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.
Lehman’s fifth law This ‘law’ suggests that if you add a lot of new functionality
(see Chapter 9) to a system; you will also introduce bugs that will limit the
amount of functionality that may be included in the next
release. Therefore, a system release with significant new
functionality may have to be followed by a release that
focuses on repairing problems and improving performance.
Factor Description
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.
Marketing The marketing department of an organization may have
requirements made a commitment for releases to be available at a
particular date.
Customer change For custom systems, customers may have made and paid
proposals for a specific set of system change proposals, and they
expect a system release as soon as these have been
implemented.