While the concept of SCM is
widely recognized, its limits, its logic,
its priorities, are not clearly defined or agreed upon.
ClearCase best supports a point of view based on dependency
management. This is a bottom-up approach, whose primary focus is
to control the generation of dependencies between the various
configuration items.
A first classification of the various configuration items
identifies some of them in different configurations as
versions of the same entities.
For this distinction to be effective, it is required that at most one
version of any such entity may figure in any
software configuration.
These entities (encompassing several versions) must then be given an
identity (more on this with the concept of
winkin).
A next distinction parts derived objects from
source objects. Source objects will be named from now on,
following the ClearCase
terminology, elements. Dealing with them is the concern of
Version Control.
Dealing with derived objects is the concern of
Build Management.
Both Version Control and Build Management rely on
the assumption that the identity of the objects they control can be
preserved during the development. Insuring this in practice is the
focus of Workspace Management.
The coordination of the work of many developers is implemented by
maintaining a common baseline, and defining
the tasks and the achievements by reference to it. This is the area of
Change Management.