Version Control
Version control combines tools and process to manage various versions of configuration objects which are develop during the software engineering procedure Clemm [CLE89] describes version control in the context of SCM:
Configuration management's allows a user o specify alternative configuration of the software system by the selection of appropriate versions. This is supported through related attributes with each software version and then allowing a configuration to be specified and constructed through describing the group of desired attributes.
The attributes which are mentioned above can be as easy as a specific version number which is attached to each object or as complex as a string of Boolean variables switches which indicate specific kind of functional changes that have been applied to the system [LIE89].
The representation of the various edition of a system is the evolution graph illustrate in Figure
Every node on the graph is an aggregate object which is a complete edition of the software. Every edition of the software is a collection of SCIs documents, source code, and data and every edition may be composed of various variants. To describe this concept consider a versions f a simple program which is composed of components 1,2,3,4 and 5 that are describe in Figure 11.5 Component 4 is used only when the software is implemented using colour displays. Component 5 is implemented when monochrome displays are available. Thus 2 variants of the edition can be described that are:
(1) Components 1, 2, 3, 4; and
(2) Components1, 2, 3 and 5.
Figure - Object pool representation of components, variants, and versions
To build the appropriate variant of a given edition of a program every component can be assigned an attribute tuple a list of elements which will describe whether the component should be used when a particular variant of a software edition is to be build. 1 or more attributes is assigned of each variant example for a colour displays are to be supported.
The other way to conceptualize the relationship among variants, components and edition is to represent them as an object pool [REI 89]. In the figure 11.6 shows the relationship among configuration components and objects, versions and variants can be represented as a three-dimensional space. The component is composed of a collection of objects at the some revision stages. A variant is a several collection of objects at the similar revision stage and therefore coexists in parallel with other variants. A new edition is described when major changes are made to 1 or more objects.
The numbers of various automated approaches to edition control have been proposed over the previous decade. The primary difference in approaches is the sophistication of the attributes which are used to construct exact variants and edition of a system and the mechanics of the procedure of construction. In the early systems like SCCS [ROC75] attributes took on numeric values. In later systems like as RCS [TIC82] symbolic revision keys were used, Modern systems like as DSEE or NSE [ADA89] develop edition specifications which can be used to construct new versions or variants. These systems also support the base lining concept thereby precluding uncontrolled deletion or modification of a particular version.