Uniï¬ed Versioning through Feature Logic
« back to results for ""
Below is a cache of http://www.cs.ucdavis.edu/~devanbu/for-ab.pdf. It's a snapshot of the page taken as our search engine crawled the Web.
The web site itself may have changed. You can check the current page or check for previous versions at the Internet Archive.
Yahoo! is not affiliated with the authors of this page or responsible for its content.
Unied Versioning through Feature Logic
Unied Versioning through Feature Logic
Andreas Zeller and Gregor Snelting
@
Informatik-Bericht No. 96-01
Uberarbeitete Fassung, 15. Februar 1997
Copyright c 1997 Institut fur Programmiersprachen und Informationssysteme
Abteilung Softwaretechnologie
Technische Universitat Braunschweig
Bultenweg 88
D-38092 Braunschweig/Germany
Distribution Notice
This paper has been submitted for publication elsewhere. It has been published as a technical report for early
dissemination of its contents. As a courtesy to the intended publisher, it should not be widely distributed until
after the date of outside publication.
To appear in ACM Transactions on Software Engineering and Methodology 6(3), July 1997
Unied Versioning through Feature Logic
Andreas Zeller and Gregor Snelting
Technische Universitt Braunschweig, Germany
Abstract
Software Conguration Management (
SCM
) suffers from tight coupling between
SCM
ver-
sioning models and the imposed
SCM
processes. In order to adapt
SCM
tools to
SCM
processes,
rather than vice versa, we propose a unied versioning model, the
version set model.
Version
sets denote versions, components, and congurations by
feature terms,
that is, boolean terms
over
(feature: value)-attributions. Through
feature logic,
we deduce consistency of abstract con-
gurations as well as features of derived components and describe how features propagate in
the
SCM
process; using
feature implications,
we integrate change-oriented and version-oriented
SCM
models. We have implemented the version set model in a
SCM
system called
ICE
for
Incremental Conguration Environment.
ICE
is based on a
featured le system
(
FFS
), where
version sets are accessed as virtual les and directories. Using the well-known C Preprocessor
representation, users can view and edit multiple versions simultaneously, while still only the
differences between versions are stored. It turns out that all major
SCM
models can be realized
and integrated efciently on top of the
FFS
, demonstrating the exible and unifying nature of
the version set model.
Categories and Subject Descriptors:
D.2.6 [Software Engineering] Programming envi-
ronments; D.2.7 [Software Engineering] Distribution and Maintenance
version control;
D.2.9 [Software Engineering] Management
software conguration management; program-
ming teams;
D.4.3 [Operating Systems] File Systems Management; I.2.3 [Articial Intelli-
gence
] Deduction and theorem proving; I.2.4 [Articial Intelligence] Knowledge representa-
tion formalisms and methods
General Terms: Management, Theory, Standardization
Additional Key Words and Phrases: Feature logic, Version sets
1
Introduction
Software Conguration Management, or
SCM
for short, is the discipline for controlling the evolution
of software systems.
SCM
encompasses general conguration management procedures [21, 22] like
identication of components and structures, control of changes and releases, status accounting, or
audit and review, as well as software-specic tasks [12] like manufacture, process management,
and
team work.
SCM
is one of the basic prerequisites for process improvement, stipulated by the
ISO
9000 standard or the
SEI
capability maturity model, and thus attracts more and more attention
from professional software development.
This article is a revised and extended version of a paper [64] presented at the Fifth European Software Engineering
Conference, Sitges, September 1995. Early descriptions of the revision and workspace concepts (sections 4.1 and 4.3)
were presented in [60]. The featured le system (sections 5.2 and 5.3) was rst discussed in [61].
This work was supported by the Deutsche Forschungsgemeinschaft, grants Sn11/1-2 and Sn11/2-2.
Authors address: Technische Universitt Braunschweig, Abteilung Softwaretechnologie, Bltenweg 88, D-38092 Braun-
schweig, Germany; email:
{zeller, snelting}@ips.cs.tu-bs.de; http://www.cs.tu-bs.de/softech/.
1
SCM Policy
SCM Protocol
SCM Primitives
Version Set Model
Featured File System
ICE Task Tools
SCM Foundation
ICE Process Tools
Quality assurance, SCM Process, etc.
Transactions, Workspaces, etc.
Tool primitives, Operating system operations, etc.
Unified SCM model
Based on feature logic
Transparent version set access
Realize specific SCM procedures
Realize specific SCM process
Figure 1: A federated
SCM
architecture, as proposed in [8] (left) and as realized in
ICE
(right)
As all conguration items are accessible on-line,
SCM
is typically supported and enforced by
automated
SCM
tools and systems. The early days of
SCM
were characterized by dedicated
SCM
tools like
SCCS
[43] or
RCS
[55] (revision and change control);
CPP
, the C preprocessor [23] (variant
control); or
MAKE
[17] (manufacture). These days, a new generation has emerged, represented
by
SCM
systems like
ADELE
[15],
EPOS
[19], or
CLEARCASE
[31]. These systems provide and
integrate support for all
SCM
aspects through
federated
SCM
system architectures [8], as illustrated
in gure 1: a
primitive layer provides basic versioning and access capabilities, a protocol layer
realizes
SCM
tasks and procedures, and a
policy layer implements organization-specic standards.
Today, several
SCM
vendors compete with each other by means of an ever-growing number of
product features. This has the benet that users can choose between a large number of
SCM
systems,
each with an individual set of features [10]. Despite these advances,
SCM
systems still suffer from
three deciencies:
Lack of ambiguity tolerance.
SCM
systems generally provide poor support for treating several
items at once. This includes lack of support for manipulating and identifying permanent vari-
ants [33], change propagation across several versions at once [36], or consistency checking in
abstract (ambiguous) congurations [47].
Lack of process exibility.
SCM
systems are frequently used to enforce a specic software
process. Unfortunately, nearly every
SCM
system relies on its own predened and inexi-
ble product life cycle [14]; at least four diverging
SCM
models have been identied, each
imposing a different
SCM
process [16]. This is pretty far away from the ideal that a
SCM
system should adapt to an organizations process.
Lack of system integration.
Already at the
SCM
primitive layer, there is considerable disagree-
ment about versioning models [9]. Consequently, the
SCM
layers are not interchangeable,
resulting in
SCM
systems that neither interoperate nor integrate. Furthermore, the basic layers
constrain higher layers: exibility decreases the higher the layer considered [56].
In this paper, we propose to resolve these deciencies through a unied
SCM
versioning model
as common
SCM
foundation. Our
version set model integrates the common
SCM
models, increases
exibility at the protocol and policy layers, and tolerates ambiguity at all levels. Version sets are sets
of objects (typically software components), characterized by a
feature terma boolean expression
over
(feature: value)-attributions denoting common and individual version properties, following the
2
Figure 2: Exploring the conguration space with the
ICE
le/conguration browser
SCM
convention to characterize objects by their attributes. Version sets generalize well-known
SCM
concepts such as components, repositories, workspaces, variant sets, or revision histories.
Using
feature logic, intersection, union, and complement operations on version sets are realized
in order to express and generalize the semantics of
SCM
models. Through
feature unication, a
constraint-solving technique, we can determine whether version sets exist, ensuring consistency of
congurations and inferring necessary steps for their construction.
We have implemented the version set model in a
SCM
system, called
ICE
for
Incremental Cong-
uration Environment.
ICE
integrates within software development environments through its
featured
le system (
FFS
), where version sets are represented as les and directories. Arbitrary programs can
access version sets and realize version operations through le manipulations. Through specialized
conguration browsers, as shown in gure 2, users can incrementally explore the conguration
space and have
ICE
deduce consistency even for incomplete congurations. Using the well-known
CPP
representation, users can view and edit multiple versions simultaneously, while still only the
differences between version sets are stored. All four major
SCM
models can be realized and inte-
grated on top of the
FFS
, demonstrating the unifying nature of the version set model.
This paper is organized like the federated
SCM
architecture shown in gure 1. We begin at
the lowest
SCM
layer by motivating and presenting feature logic as a formal
SCM
foundation. Sec-
tion 3 introduces the ve