Page 267 -
P. 267
238 PART TWO MANAGING SOFTWARE PROJECTS
as part of the CSR task. Output from CSR may be placed in an on-line database [TAY85],
so that software developers or maintainers can access change information by key-
word category. In addition, a CSR report is generated on a regular basis and is intended
to keep management and practitioners appraised of important changes.
Configuration status reporting plays a vital role in the success of a large software
development project. When many people are involved, it is likely that "the left hand
Develop a “need to
know list” for every not knowing what the right hand is doing" syndrome will occur. Two developers may
SCI and keep it up-to- attempt to modify the same SCI with different and conflicting intents. A software engi-
date. When a change neering team may spend months of effort building software to an obsolete hardware
is made, be sure that specification. The person who would recognize serious side effects for a proposed
everyone on the list is change is not aware that the change is being made. CSR helps to eliminate these
informed. problems by improving communication among all people involved.
9.8 SCM STANDARDS
Over the past two decades a number of software configuration management stan-
dards have been proposed. Many early SCM standards, such as MIL-STD-483, DOD-
STD-480A and MIL-STD-1521A, focused on software developed for military
applications. However, more recent ANSI/IEEE standards, such as ANSI/IEEE Stds.
No. 828-1983, No. 1042-1987, and Std. No. 1028-1988 [IEE94], are applicable for non-
military software and are recommended for both large and small software engineering
organizations.
9.9 SUMMARY
Software configuration management is an umbrella activity that is applied through-
out the software process. SCM identifies, controls, audits, and reports modifications
that invariably occur while software is being developed and after it has been released
to a customer. All information produced as part of software engineering becomes
part of a software configuration. The configuration is organized in a manner that
enables orderly control of change.
The software configuration is composed of a set of interrelated objects, also called
software configuration items, that are produced as a result of some software engi-
neering activity. In addition to documents, programs, and data, the development envi-
ronment that is used to create software can also be placed under configuration control.
Once a configuration object has been developed and reviewed, it becomes a base-
line. Changes to a baselined object result in the creation of a new version of that
object. The evolution of a program can be tracked by examining the revision history
of all configuration objects. Basic and composite objects form an object pool from
which variants and versions are created. Version control is the set of procedures and
tools for managing the use of these objects.
Change control is a procedural activity that ensures quality and consistency as
changes are made to a configuration object. The change control process begins with
a change request, leads to a decision to make or reject the request for change, and
culminates with a controlled update of the SCI that is to be changed.