Page 261 -
P. 261
232 PART TWO MANAGING SOFTWARE PROJECTS
FIGURE 9.3
Evolution obj obj
graph 1.3 1.4
obj obj obj
1.0 1.1 1.2
obj obj
2.0 2.1
obj obj
1.1.1 1.1.2
version 2.1? How can we be sure that changes to the version 2.1 source code are
properly reflected in the corresponding design documentation? A key element in the
answer to all these questions is identification.
A variety of automated SCM tools has been developed to aid in identification (and
other SCM) tasks. In some cases, a tool is designed to maintain full copies of only the
most recent version. To achieve earlier versions (of documents or programs) changes
(cataloged by the tool) are "subtracted" from the most recent version [TIC82]. This
scheme makes the current configuration immediately available and allows other ver-
CASE Tools—SCM
sions to be derived easily.
9.4 VERSION CONTROL
Version control combines procedures and tools to manage different versions of con-
figuration objects that are created during the software process. Clemm [CLE89]
describes version control in the context of SCM:
Configuration management allows a user to specify alternative configurations of the soft-
ware system through the selection of appropriate versions. This is supported by associat-
ing attributes with each software version, and then allowing a configuration to be specified
[and constructed] by describing the set of desired attributes.
The naming scheme These "attributes" mentioned can be as simple as a specific version number that is
you establish for SCIs attached to each object or as complex as a string of Boolean variables (switches) that
should incorporate the indicate specific types of functional changes that have been applied to the system
version number. [LIE89].
One representation of the different versions of a system is the evolution graph pre-
sented in Figure 9.3. Each node on the graph is an aggregate object, that is, a com-
plete version of the software. Each version of the software is a collection of SCIs
(source code, documents, data), and each version may be composed of different vari-
ants. To illustrate this concept, consider a version of a simple program that is com-