Version Selection

The problem of version selection is a topic of much interest in the recent research within the area of software configuration management. Solving it is important for achieving quality of the configuration being built, but it also influences efficiency of the process of building a software system configuration.

Requirements for version selection can have various forms:

Empty description,
i.e. a version is selected solely on grounds of default requirements "hard-wired" in the system, e.g. "select the most recently formed version"
Explicit identification,
i.e. a name of the component to be included is given, e.g. in the form of a table
Description by attributes,
i.e. a version is described implicitly by stating properties which it should fulfil

The empty description has an obvious disadvantage of being too inaccurate. The explicit description can lead to difficulties in practical situations when the number of components is high and to produce a list of all those which should be included is very error-prone. As the most suitable way appears to be the description by attributes. In fact, if we consider a name to be an attribute as well, we can treat the explicit identification to be just a special case of the description by attributes.

The component's attributes can be e.g. date of formation, author, status. Using such attributes, we can formulate the following requirement:

select a version which is being elaborated (status = check_out) by the author, who is the current user; if there is not such a one then select the most recent completed (status = check_in) version which has been already tested.

The selection requirements formulate actually a query to a database of software components. To evaluate them, database query processing techniques can also be used.

Frequently used approach to version selection is to use conditions restricting properties of versions. The conditions are often represented by a logic expression. For example, an expression

(operating_system = DOS and communication_language = Slovak)

identifies all such versions which can run under DOS operating system and the communication with the user is in Slovak language. The ADELE system is an example illustrating this view of version selection.

The language of logic expressions is sometimes enhanced by allowing defaults, conditional selections, and by introducing three-valued logic (i.e. true, false, undefined).

Zeller and Snelting proposed for modelling version sets a unified approach based on feature logic. Version sets are identified by their features, that is, a boolean expression over (name:value) attributes. This approach subsumes all the above mentioned approaches to identify versions of components.

Version selection is often based on logical conditions referring to values of attributes, too. Here, preferences can be specified as well. Preferences are in fact logical conditions which act as filters.

The system SHAPE uses a similar way of selecting versions. It is based on using a selection rule. The selection rule is a named sequence of alternatives. Predicates in alternatives allow to expres requirements with respect to the object attributes. If no selection rule is specified, the fixed default rule is active which is the same as in Make ("select the busy object in the current directory").

System GYPSY uses predicate to obtain a subset of the component versions. In case the resulting set has more than one element, the final selection is the result of applying a single default rule, i.e. "select the most recent version". In {Cohen88}, no precaution was made to handle the case when some or all of the filters failed to produce a nonempty set.

Another frequently used approach is to use rules. For example in the system DSEE there is defined a set of rules which are interpreted sequentially until the sought component is selected. The language for writing rules allows defining default rules, dynamic rules (e.g. select the most recent version), and conditional rules (if-then). Despite the fact that such kinds of rules allow powerful means of selection, their power is limited in the DSEE system by the fact that the set of attributes is set in advance.

This review is taken from the paper Knowledge-Controlled Version Selection in Software Configuration Management written by Pavol Návrat and Mária Bieliková (in Software - Concepts and Tools, 17:40-48, 1996).

to Homepage to SCM to the Top

Last updated:
Mária Bieliková bielik [zavináč] fiit-dot-stuba-dot-sk
Design © 2oo1 KoXo