The Ragnarok Architectural Software Configuration Management Model

 
CONTINUE READING
Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999
                Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999

                                                The
                                      Ragnarok Architectural
                             Software Configuration Management Model

                                             Henrik Bærbak Christensen
                                           Department of Computer Science
                                                University of Aarhus
                                            DK-8000 Århus C, Denmark
                                                 hbc@daimi.aau.dk

                         Abstract                                design patterns, software architecture, etc. Still, many tradi-
                                                                 tional software configuration management (SCM) systems
    The architecture is the fundamental framework for de-        [11, 7, 27, 24, 4] do not support the concept of software
signing and implementing large scale software, and the           architecture directly. Software is viewed as ‘a set of files’
ability to trace and control its evolution is essential. How-    and stable configurations are defined implicitly as sets of file
ever, many traditional software configuration management         versions with a certain label or tag. This generates an un-
tools view ‘software’ merely as a set of files, not as an ar-    fortunate impedance mismatch between the concepts used
chitecture. This introduces an unfortunate impedance mis-        in design and implementation (architectural level) and in
match between the design domain (architecture level) and         configuration management (file level.) Furthermore, sets of
configuration management domain (file level.)                    labelled file versions can not provide unambiguous informa-
    This paper presents a software configuration manage-         tion about the evolution of the architecture itself.
ment model that allows tight version control and configu-           This paper outlines an architectural software configura-
ration management of the architecture of a software system.      tion management model where the architecture is used as
Essential features of the model have been implemented in a       basis for version and configuration control. Thereby, the
research prototype, Ragnarok. Two years of experience us-        impedance mismatch is lessened, making the model more
ing Ragnarok in three, real, small- to medium sized, projects    ‘natural’ for developers. The architectural SCM model
is reported. The conclusion is that the presented model is vi-   places strong emphasis on traceability and reproducibility
able, feels ‘natural’ for developers, and provides good sup-     of configurations and architectural changes.
port for handling an evolving architecture.
                                                                 2.   Architecture
1. Introduction
                                                                    A sound, logical, software design is perhaps the most
    The software architecture is the mental framework soft-      important aspect in successful software development, and
ware designers and engineers use to design, discuss, doc-        abstraction and hierarchy are key concepts in a good design.
ument, and reuse software systems. Here ‘architecture’ is           An abstraction is seldom an isolated entity but must
used in the sense ‘the logical decomposition of a system         be understood in its architectural context; abstractions are
into a collection of interrelated parts’ [18]. Software devel-   organised hierarchically by composition (aggregation/part-
opment is a dynamic process and designers and developers         whole), and interrelated by functional dependencies (asso-
must constantly modify and refine the architecture as new        ciation/use) and possibly inheritance.
insight is gained. Consequently, an important aspect in the         In object-oriented architectures, abstractions are typi-
development process is the ability to track and control the      cally classes and class-categories [6]. Composition groups
evolution of the software architecture.                          classes (or class-categories) into class-categories, forming
    In the early days of computing, a program was often          a hierarchy, while dependencies relate classes functionally
contained within a single file and systems like SCCS [28]        (e.g. that a window class uses a general-purpose rectangle
and RCS [29] provided adequate version control. Mod-             class.)
ern software is vastly more complex and to handle it, more          Abstractions require a physical manifestation, typically
and more emphasis is put on the underlying architecture—         as source code fragments in some programming language.
a trend apparent within research fields like design methods,     However, different languages use different storage schemes

                                            0-7695-0001-3/99 $10.00 (c) 1999 IEEE                                                   1
Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999
                  Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999

                                                                                                              Model
for the source code. Integrated environments like Smalltalk
present only the logical level while the physical level is hid-                                                   11

den. At the other extreme, the coupling in C++ is mostly
based on conventions.
                                                                                   Terrain
   The architectural software configuration management                                                                    Unit
model views the logical level as primary and the physical                                        7
                                                                                                                          9
level as secondary in the sense that source code fragments
are attributes of architectural entities. The central unit in
the model is the software component, which is an object
representing an abstraction. Software components are char-                                                    5

acterised by a unique identity, CID, and a name. The actual
                                                                                                City
physical implementation of the abstraction, as well as its
relations (like composition and dependency) to other com-
ponents, are stored as attributes. This way, a software com-                   Figure 1: Version 11 of component Model
ponent is a flexible building block that may represent any
granularity in a system from a simple method to a full sys-
tem with a complicated substructure of components.                        game concepts. Figure 1 shows a milestone, Model ver-
                                                                          sion 11. In the figure, the version group for a component
3. Versioning Model                                                       is depicted as a box with rounded corners containing the
                                                                          component versions (small quadrants with the version num-
   The evolving item is the software component and each                   bers inside) organised in a version graph. Solid lines going
state is represented by a software component version—in                   out of a component version represent composition relations,
essence reifying a version of an abstraction.                             dashed lines dependencies. So, Model version 11 is com-
                                                                          posed of Terrain version 7, City version 5, and Unit ver-
3.1. Software Component Version                                           sion 9—and City version 5 depends on (Unit, 9) and (Ter-
   A software component version is an immutable snapshot                  rain, 7), and so on.
of the state of a software component and stored in a version
database.                                                                 3.2. Check-in
   A software component version C is a tuple
(CID,VID,Ssub ,Srel )                                                         For the architecture to evolve, developers modify copies
   –   CID is the component identity.                                     of component versions in a workspace (modifying sub-
   –   VID is the version identity.                                       stance and/or relations.) When the resulting changes meet
                                                                          some criteria of completeness, they can be committed back
   –   Ssub is a set of software artifacts, defining substance.
                                                                          to the version database through a check-in procedure.
   –   Srel is a set of references to other component version
       tuples fref i (Ci ); : : : ; ref j (Cj )g, defining relations.      The architectural model version controls the full archi-
        indicates the type of relation as for instance ‘com-             tectural context of a component by means of a transitive
       position’, ‘functional dependency’, ‘inheritance’, etc.            closure check-in algorithm. To check in a new version,
                                                                          the algorithm recursively traverses all relation set refer-
 The component versions for a given component are ar-                     ences, depth-first, and creates new versions of all compo-
ranged in a traditional version graph [30, 13].                           nents along paths to modified components and updates the
   An essential requirement of the model is that:                         relation set references accordingly.
Requirement 1 For each software component in the ver-                         Example: To illustrate a check-in, consider a situation
sion database, the elements in its relation set, Srel , must be           where an inner class, Weapon, is added to class Unit. Af-
references to specific software component versions, which                 ter implementation and testing, a new version of Model is
are present in the version database.                                      created in Fig. 2. The check-in is propagated to component
                                                                          Weapon, it substance stored and a new version identity, 1,
   Example: Consider a fictitious software team that is de-               established. A reference to (Weapon, 1) of type ‘composi-
veloping a small strategy game. In the game, a player con-                tion relation’ is added to the relation set of Unit, and a new
trols a region of land, comprising various cities, by means               version 10 created. City lies on a path to a modified com-
of military units. The fundamental game model is imple-                   ponent and is thus checked-in with a reference to (Unit, 10)
mented in a class-category, Model, that is composed of                    and finally Model is checked-in. No new version of Terrain
classes Terrain, City, and Unit, modelling the fundamental                is necessary, as it does not lie on a path to Weapon.

                                                   0-7695-0001-3/99 $10.00 (c) 1999 IEEE                                                   2
Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999
                   Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999

                                           Model
                                                                               3.6. Architectural Differences
                                      11    12
                                                                                  An important consequence of the model is that the soft-
                                                                               ware architecture itself is under strict version control. An
         Terrain                                                               architectural diff algorithm can recursively compute differ-
                                                            Unit               ences in the relation sets between two versions of a compo-
                          7
                                                       9    10
                                                                               nent and report abstractions added, deleted, or moved, and
                                                                               how relations have changed. This provides better overview
                                                                               of architectural changes than the traditional list of file con-
                                                                               tents differences. For instance, invoking the architectural
                              5   6                                            diff on Model version 11 and 12 (or e.g. City version 5
                                                   1
                                                                               and 6) would report that a new component, Weapon, has
                   City
                                            Weapon                             been added via a composition relation from Unit.

     Figure 2: Version 12 of component Model                                   4.   Architectural Evolution
                                                                                  Whereas major architectural changes may be the respon-
                                                                               sibility of a small elite of chief designers, minor changes of-
3.3. Check-out
                                                                               ten have to be made by subteams or individuals in their daily
   The check-out trivially reverses the check-in process:                      work: Introducing new classes, rearranging the dependency
The root component version is checked out, then the check-                     structure, etc. When stabilised these new configurations has
out is propagated recursively to all component versions ref-                   to be made available for integration testing.
erenced in the relation sets.                                                     The architectural model both supports local introduction
                                                                               of changes as well as later integration.
3.4. Consistency
                                                                               4.1. Introduction of Change
    As is evident from Fig. 1 and 2 the component versions
and their relationships can be viewed as a directed graph:                        Introducing changes in the architecture for a part of a
Component versions are nodes and relations are arcs. Thus,                     system is eased by the fact that the description of archi-
any component version is root in a directed graph that iden-                   tecture is distributed—relations are local attributes of the
tifies a bound configuration of the abstraction and its context                components. Therefore, changes can be made by the sub-
of relations and related abstractions.                                         team/individual with only local effect and without the po-
                                                                               tential bottleneck of a global architectural description.
    The graph interpretation allows us to express a con-
                                                                                  Example: Our game team decides to provide both sea
sistency requirement on the component versions in the
                                                                               and land terrain in the game. The developer responsible
database:
                                                                               for the Terrain class decides to model this by viewing the
                                                                               terrain as a matrix of areas, each area being either water or
Requirement 2 For any given component version in the                           land. An inner class Matrix is introduced that depends on
version database, the bound configuration it defines cannot                    superclass Area and subclasses Water and Land. Figure 3
contain more than one version of the same component.                           shows a version of the new context of Terrain during this
                                                                               work; dash-dotted lines indicate inheritance relations.
                                                                                  Other developers, working on classes Unit and City, are
   If this requirement was not ensured, absurd situations                      not disturbed by the changes in Terrain because they work
could arise. For instance in Fig. 1 if (City, 5) depended                      with the stable class (Terrain, 7).
upon, say, (Unit, 8) then the configuration of Model would
refer to two different versions of class Unit.
                                                                               4.2. Integration
                                                                                  Integration of architectural changes is performed by a
3.5. Versions equal Configurations
                                                                               check-out. Consider the change made to the Terrain class
   It follows from the transitive nature of the model that                     described above. When the developer has a version of the
the concepts ‘version’ and ‘bound configuration’ are uni-                      terrain class that is sufficiently stable for the rest of the team
fied. Even complex configurations are identified by a single                   to test, the only thing needed to be communicated is the
component version, like e.g. ‘Model version 11’ in Fig. 1.                     proper version identification, here version 9. The other team
Thus, configurations are first class objects and the evolution                 members can simply check-out Terrain version 9 and will
of configurations is trivially recorded and accessible.                        automatically get the new configuration including all newly

                                                           0-7695-0001-3/99 $10.00 (c) 1999 IEEE                                                    3
Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999
                Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999

                                  Terrain                                                                           Model
                                                                                                        11     12
                          7          9
                                                                                                             11.1

           Matrix
                                                Area                          Terrain
                                                                                                                                           Unit
                      2                                                             7
                                            4                                           7.1                             9       10
                                                                                                                                     9.2

              Water                               Land

                              2                                                                5   6
                                                  3
                                                                                                       5.2
                                                                                                                            1

                                                                                        City
                                                                                                                     Weapon
Figure 3: Class Terrain after restructuring to pro-
vide multiple terrain types
                                                                     Figure 4: A variant, 11.1, of version 11 of compo-
                                                                     nent Model
introduced classes, their internal relationships, and the code
fragments defining their substance.
                                                                     only lightweight data is changed (basically a new version
   The check-out thus becomes an ‘architectural merge’:
                                                                     identification, VID, and a new relation set, Srel ), which con-
The changed architecture of component Terrain is merged
                                                                     sumes very little storage. (In the prototype this amounts to
into the architecture of e.g. component Unit. Note that no
                                                                     about 170 bytes although a verbose format is used.)
merge is performed on the source code level, only on the
architectural level.
                                                                     4.3.2. Merging Usually, the bugfixes made in a main-
   Working with stable versions and occasionally integrat-
                                                                     tenance branch need to be introduced in the main develop-
ing with a new milestone version is a well-proven tech-
                                                                     ment line as well. An automatic merge is often the heart of
nique. However many fast-paced, small team, development
                                                                     such a reconcilement process.
projects work with a much faster integration cycle where
developers constantly integrate the newest code. A special               In many traditional systems, a merge only extends to the
check-out has been provided in the prototype (section 5.) to         file level building a new file version from two file versions
enable this working style. It recursively traverses a given          with a common ancestor. In the architectural model the no-
configuration and checks-out the newest version on the cur-          tion of merge must be extended to the architectural level as
rent branch of every component unless it is currently being          well, i.e. it must handle added and/or deleted components
edited in the developer’s workspace.                                 as well as changed relations.
                                                                         The algorithm for merging is as follows: Consider two
                                                                     versions Cr and Cd of a given component, CID. Cr is de-
4.3. Parallel development                                            noted the receptor version, and Cd the donator version, as
   Few development efforts proceed in a strictly linear fash-        the donator can be viewed as a supplier of deltas that are
ion. The archetypical example of non-linear development is           merged into the receptor forming a new, direct, version of
the case where a released system needs to be bugfixed at the         the receptor. Both versions are root in a bound configura-
same time as development on the next release is in progress.         tion, and the merged configuration is calculated recursively.
   In this case, the release version becomes parent in the           For each component, a merged version is created based on
version graph for both the bugfixed version(s) and the main-         the receptor- and donator versions. The merged relation set
stream development version(s) i.e. a branch point.                   is a set union of the relation sets in receptor and donator,
                                                                     constrained by requirement 2 (a component can only appear
4.3.1. Branching In keeping with the transitive nature               in one version in a configuration.) Refer to the example
of the architectural model, branching is propagated through-         below to see how this works in practice. To merge the sub-
out the configuration, i.e. similar branches are created             stance, a merge technique must be used that understands the
within the version graphs of all components in the config-           format of the source code fragments; like for instance tradi-
uration. This is exemplified in Fig. 4 where a variant of            tional merge programs for textual source code. Our imple-
Model version 11 is shown. (To keep the figure small, the            mentation also identifies situations where a merge can be
evolution of Terrain from Fig. 3 is left out.)                       avoided, namely in case receptor and donator versions have
    This approach may sound expensive in terms of storage.           identical substances and relation sets.
However, in most components the actual source code frag-                 Example: Figure 5 shows an example of how merge
ments are identical in the branch and in the main line. Thus,        works in practice. Here variant 11.1 of Model is donator and

                                                 0-7695-0001-3/99 $10.00 (c) 1999 IEEE                                                            4
Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999
                   Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999

                                                 Model
                                                                                        5.1. Projects
                                   11       12   13
                                        11.1                                                The first project, which has used RCM since March
                                                                                        1996, is ‘ConSys’ [17] . The ConSys team of three develop-
         Terrain                                                                        ers has been developing a Windows NT system, for control-
                                                                          Unit          ling accelerators, storage rings, and other large distributed
               7
                   7.1                                 9       10          11           equipment in experimental physics. The system consists of
                                                                    9.2
                                                                                        about 130 components and more than 1100 files. The source
                                                                                        code size is about 225.000 lines of C++ code.
                                                                                            The second project is the BETA compiler team, four
                          5   6         7
                                  5.2
                                                                                        developers responsible for the development and mainte-
                                                           1
                                                                                        nance of the Mjølner BETA compiler [1, 5], a commercial
                   City
                                                      Weapon                            compiler for the strongly typed object oriented language
                                                                                        BETA [21]. The development is mainly done in the BETA
Figure 5: A merged version 13 of component                                              language itself, however the run-time system is written in C.
Model from receptor version 12 and donator ver-                                         The compiler has been under RCM control since February
sion 11.1                                                                               1997, and consists of 35 components containing about 250
                                                                                        files which amounts to about 120.000 lines of code.
                                                                                            The last project is the Ragnarok project itself. Ragnarok
merged back into the main development line, version 12.                                 is about 40.000 lines of code, in about 160 files in 35 com-
Consider component Unit where the branched version 9.2                                  ponents.
has a single relation, a dependency to Terrain, but the recep-
tor has an additional composition relation to Weapon. The                               5.2. Results
result is a union with both a dependency to Terrain and a
composition relation to Weapon. Considering Terrain, sub-                                  Data has been collected from the projects mainly through
stances and relation sets are identical in receptor- and dona-                          guided, open-ended [26] interviews of the developers on the
tor versions, and thus a potential version 8 is avoided.                                BETA compiler and ConSys projects. A secondary source
   It should be noted that any automatic merge has its limits.                          of data has been automatically generated usage logs from
A merge between two versions representing radically differ-                             RCM that have been analysed by simple statistical methods.
ent architectures will most likely be useless and invalid.                                 The conclusion from both interviews and analysis of the
                                                                                        usage data is that the architectural software configuration
                                                                                        management approach is a viable one, at least for small- to
5. Prototype
                                                                                        medium sized projects.
    The architectural model is implemented as a subsystem                                  Some key points were made:
in the Ragnarok software development environment [9, 10].                                  Model ‘feels’ natural: The user groups readily accept the
This subsystem has been equipped with its own, textual, in-                             software component to represent design entities and claim
terface in a stand-alone software configuration management                              a close, if not one-to-one, mapping between their design
tool called RCM. RCM has been used for more than two                                    and their software component structure. They ‘think’ SCM
years in three, small- to medium-sized, projects.                                       in terms of components rather than files/directories. This
    A number of design decisions had to be made to create a                             claim is supported by the usage logs data where file related
flexible prototype quickly, in order to evaluate the feasibility                        commands are seldom used.
of the model. Major decisions include:                                                     Focus on bound configurations: Bound configurations
                                                                                        are of course important for milestone- and release manage-
    – The substance attribute implemented as a set of RCS-
                                                                                        ment but the developers more emphasised the feeling of ‘se-
      controlled [29] files. The drawback is that fine-
                                                                                        curity’ in the daily development cycle as backtracking to
      grained abstractions, like individual methods in a
                                                                                        working configurations was easy.
      class, are infeasible in practice. However, a large
                                                                                           Traceable architectural evolution: To be able to trace
      effort in implementing efficient delta storage was
                                                                                        how the architecture evolves was considered important.
      avoided.
                                                                                        During the two year period, the ConSys project has more
    – Copy scheme for workspaces like in CVS [4]. This
                                                                                        than tripled its size in terms of components and files, and the
      scheme does not scale up, but, again, the implemen-
                                                                                        ability to make local changes to the architecture was consid-
      tation is easy.
                                                                                        ered essential.
The RCM prototype is freely available and described on                                     Intermediate versions: The teams were also asked if they
WWW [8].                                                                                found the intermediate versions created in components in-

                                                                    0-7695-0001-3/99 $10.00 (c) 1999 IEEE                                                 5
Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999
                 Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999

directly modified (i.e. on a path to a modified component)        about how it would be to program in a modular program-
annoying. They did not report this a problem; it was ‘the         ming language that only offered an is-used-in relation.
job of the tool’ and handled adequately.                              The box construct in Gandalf [16], family in Adele [3],
                                                                  and the configuration language PCL [31] also allow describ-
6. Discussion                                                     ing physical structure as attributes of the logical structure.
                                                                  In contrast to our model, these focus on generic configura-
    It should be noted that the model does not exclude the        tions through rule-based selection [13] (Adele, PCL) or a
use of selection rules to make new configurations in a            dynamically bound ‘standard’ version (Gandalf).
workspace, but rule-based selection plays a much lesser part          The underlying version and configuration model in
than in many other software configuration management sys-         COOP/Orm [22, 23, 25] and POEM [20, 19] share the tran-
tems. Generally, stable subconfigurations can be communi-         sitive flavour of our model. Both systems are focused on
cated through their version identifications, which eliminates     supporting fine-grained abstractions but are not used in real-
the need for rules to describe them.                              life projects. As such, we feel that our work complements
    A question one may ask, is how to treat parallel work on      and adds credibility to COOP/Orm and POEM by reporting
different components that have overlapping configurations;        that architectural models are feasible in practice.
for example if City and Unit both depend on a library com-
ponent that both developers need to modify frequently. The        8.   Future Work
general answer is that the branch/merge technique comes
into play (section 4.3.), but the experience from the projects        Future research proceeds in a number of directions. A
is, that people avoid it. The prototype warns when devel-         strong wish is to improve the current implementation to al-
opers want to edit a component version that will need to          low larger projects to be handled. The current use of a copy
branch and they can cancel the action. Instead, they retrieve     scheme for workspaces is a limitation in this respect, and a
the newest version before editing and avoid the branch.           future version must implement a mechanism to share ver-
    An important question is that of scale: Does this ap-         sions and thereby reduce workspace storage requirements.
proach scale well to large software systems? We believe               Another important topic is collaboration and a current
so and base our belief on the fact that human’s best tool to      effort is to introduce specific support for cooperative ver-
handle complexity and size is the well-known paradigm of          sions [15] that allows several teams/individuals to work in
‘divide-and-conquer’. So, if a ‘well-behaved’ architecture        parallel on overlapping configurations. The branch/merge
can emerge with logical boundaries and low coupling, the          mechanism will be used as the underlying technique but co-
architectural model should be sound as well.                      operative branches will be treated specially to emphasise
                                                                  collaborative awareness and minimise the amount of ’pol-
7. Related Work                                                   lution’ of the version graph.
                                                                      Finally, the current work has grown out of an object-
   Many traditional SCM systems [11, 27, 12, 7, 24, 4] rely       oriented software engineering context. An important exer-
on labels or tags for defining bound configurations: When         cise is to evaluate and analyse the model in a broader ar-
creating, say a milestone, all file versions defining the mile-   chitectural perspective, for instance to see if the model is
stone are tagged with a symbolic name. While tagged file          suitable for other architectural styles [2]. Furthermore, the
version based systems are easy to understand, they suffer         model has similarity to an architecture description language
from a number of conceptual problems. First, tagged file          (ADL) and this aspect should be explored further. Relations
versions do not convey information about the evolution of         are not first class objects in our model, in contrast to the
the software architecture itself. If you consider the many,       connector concept in ADLs, and this increased power of ex-
radical, changes made in Terrain (Fig. 3), the tagging tech-      pressiveness should be analysed in the context of software
nique can only account for the file versions used in the two      configuration management.
configurations of Terrain. It cannot describe the changed
and newly formed relationships and components. Also, if a         9.   Conclusion
given file version bears the tag for one release but not the
other, there are several valid causes: The file could either         The architectural software configuration management
have been deleted or added between the two releases, or           model takes the logical software architecture as its starting
maybe someone just forgot to tag it. Secondly, conceptually       point and uses this structure to ‘drive’ the version- and con-
a tag is an is-used-in relation (stating that ‘this version of    figuration control process. Thereby, developers can do SCM
this file is-used-in, say, release 4 of our system’)—however      in terms of well-known concepts from the design domain.
developers more naturally think in terms of uses relations        Fewer SCM specific concepts are introduced, basically only
like: Release 4 uses graphics library version 14, which uses      the notion of ‘version’, resulting in easier learning. The em-
the window class version 22 etc. As an experiment think           phasis on bound configurations has as a result that the con-

                                             0-7695-0001-3/99 $10.00 (c) 1999 IEEE                                                 6
Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999
                 Proceedings of the 32nd Hawaii International Conference on System Sciences - 1999

cepts ‘version’ and ‘bound configuration’ are unified, and          [14] J. Estublier, editor. Software Configuration Management,
configurations become first class objects and are organised              Lecture Notes in Computer Science 1005. ICSE SCM-4 and
historically. The emphasis also results in a feeling of se-              SCM-5 Workshops, Springer Verlag, 1995.
curity in the daily development cycle as earlier, known-to-         [15] J. Estublier and R. Casallas. Three Dimensional Versioning.
work, configurations can be easily be reestablished or com-              In Estublier [14], pages 118–135.
pared to. Finally, the architecture itself is under tight version   [16] A. N. Habermann and D. Notkin. Gandalf: Software De-
control as the full context of abstractions and their interre-           velopment Environments. IEEE Transactions on Software
lations are stored during a check-in.                                    Engineering, 12(12):1117–1127, dec 1986.
    We generally find the results from using RCM in real            [17] ISA. Consys. http://isals.dfi.aau.dk, 1996. ISA: Institute for
projects encouraging, especially seen in the light that the              Storage Ring Facilities, University of Aarhus.
prototype is still rather crude. It is a stable, viable, tool for   [18] D. A. Lamb. Introduction: Studies of Software Design.
configuration management, and provides good support for                  In D. A. Lamb, editor, Studies of Software Design, Lec-
controlling and tracing the evolution of the architecture of a           ture Notes in Computer Science 1078. ICSE’93 Workshop,
software system.                                                         Springer Verlag, 1996.
                                                                    [19] Y.-J. Lin and S. P. Reiss. Configuration Management in
References                                                               Terms of Modules. In Estublier [14].

 [1] P. Andersen, L. Bak, S. Brandt, J. L. Knudsen, O. L. Mad-      [20] Y.-J. Lin and S. P. Reiss. Configuration Management with
     sen, K. J. Møller, C. Nørgaard, and E. Sandvad. The Mjølner         Logical Structures. In Proceedings of the 18th International
     BETA System. In Object-Oriented Environments - The                  Conference on Software Engineering, pages 298–307. IEEE
     Mjølner Approach, pages 24–35. Prentice-Hall, 93.                   Computer Society Press, 1996.

 [2] L. Bass, P. Clements, and R. Kazman. Software Architecture     [21] O. L. Madsen, B. Møller-Pedersen, and K. Nygaard. Object-
     in Practice. Addison-Wesley, 1998.                                  Oriented Programming in the BETA Programming Lan-
                                                                         guage. Addison Wesley, 1993.
 [3] N. Belkhatir and J. Estublier. Experience with a Database of
     Programs. In Proceedings of the ACM SIGSOFT/SIGPLAN            [22] B. Magnusson and U. Asklund. Fine Grained Version Con-
     Software Engineering Symposium on Practical Software De-            trol of Configurations in COOP/Orm. In I. Sommerville,
     velopment Environments, volume 22, pages 84–91, jan 1987.           editor, Software Configuration Management, Lecture Notes
                                                                         in Computer Science 1167, pages 31–48. ICSE’96 SCM-6
 [4] B. Berliner. CVS II: Parallelizing Software Development. In         Workshop, Springer Verlag, 1996.
     USENIX, Washington D.C., 1990.
                              
 [5] http://www.daimi.aau.dk/ beta/.
                                                                    [23] B. Magnusson, U. Asklund, and S. Minör. Fine Grained Re-
                                                                         vision Control for Collaborative Software Development. In
 [6] G. Booch.     Object Oriented Design.        The Ben-               ACM SIGSOFT’93 - Symposium on the Foundations of Soft-
     jamin/Cummings Publishing Company, Inc., 1991.                      ware Engineering, Los Angeles, California, Dec. 1993.
 [7] PLATINUM CCC/Harvest Users Guide.                              [24] Microsoft (R) Corporation:             Visual    SourceSafe.
 [8] H. B. Christensen.    RCM Reference Guide.     Depart-              http://www.microsoft.com/ssafe/.
     ment of Computer Science, University of Aarhus, 1998.          [25] S. Minör and B. Magnusson.         A model for Semi-
                              
     http://www.daimi.aau.dk/ hbc/Ragnarok/rcm quickref.html.            (a)Synchronous Collaborative Editing. In Proceedings of
 [9] H. B. Christensen. The Ragnarok Software Development En-            Third European Conference on Computer-Supported Coop-
     vironment. In K. A. Mughal and A. L. Opdahl, editors, Pro-          erative Work - ECSCW’93, Milano, Italy, 1993. Kluwer Aca-
     ceedings of NWPER’98, Nordic Workshop on Programming                demic Press.
     Environment Research, Bergen, June 1998. Department of         [26] M. Q. Patton. Qualitative Evaluation Methods. Sage Publi-
     Information Science, University of Bergen.                          cations, Beverly Hills, Calif., 1980.
[10] H. B. Christensen. Utilising a Geographic Space Metaphor       [27] http://www.intersolv.com/products/pvcs-vm.htm.
     in a Software Development Environment. In Proceedings          [28] M. J. Rochkind. The Source Code Control System. IEEE
     of EHCI’98, IFIP Working Conference on Engineering for              Transactions on Software Engineering, 1(4), 1975.
     Human-Computer Interaction, Crete, Greece, Sept. 1998.
     Chapman and Hall.                                              [29] W. F. Tichy. RCS – A System for Version Control. Software
                                                                         – Practice & Experience, 15(7):637–654, July 1985.
[11] http://www.rational.com/products/clearcase/.
                                                                    [30] W. F. Tichy. Tools for Software Configuration Management.
[12] Pc-based                version                     control.
                             
     http://www.silcom.com/ alobba/pc vc.html.
                                                                         In J. F. H. Winkler, editor, Proceedings of the International
                                                                         Workshop on Software Version and Configuration Control.
[13] R. Conradi and B. Westfechtel. Towards a Uniform Version            B. G. Teubner, Stuttgart, Jan. 1988.
     Model for Software Configuration Management. In R. Con-        [31] E. Tryggeseth, B. Gulla, and R. Conradi. Modelling Sys-
     radi, editor, Software Configuration Management, Lecture            tems with Variability using the PROTEUS Configuration
     Notes in Computer Science 1235. ICSE’97 SCM-7 Work-                 Language. In Estublier [14].
     shop, Springer Verlag, 1997.

                                               0-7695-0001-3/99 $10.00 (c) 1999 IEEE                                                      7
You can also read