Link To Publication in University of Groningen/UMCG Research Database
Link To Publication in University of Groningen/UMCG Research Database
IMPORTANT NOTE: You are advised to consult the publisher's version (publisher's PDF) if you wish to cite from
it. Please check the document version below.
Document Version
Publisher's PDF, also known as Version of record
Publication date:
2008
Copyright
Other than for strictly personal use, it is not permitted to download or to forward/distribute the text or part of it without the consent of the
author(s) and/or copyright holder(s), unless the work is under an open content license (like Creative Commons).
The publication may also be distributed here under the terms of Article 25fa of the Dutch Copyright Act, indicated by the “Taverne” license.
More information can be found on the University of Groningen website: https://www.rug.nl/library/open-access/self-archiving-pure/taverne-
amendment.
Take-down policy
If you believe that this document breaches copyright please contact us providing details, and we will remove access to the work immediately
and investigate your claim.
Downloaded from the University of Groningen/UMCG research database (Pure): http://www.rug.nl/research/portal. For technical reasons the
number of authors shown on this cover page is limited to 10 maximum.
C HAPTER 6
E VALUATION OF T OOL
S UPPORT FOR
A RCHITECTURAL E VOLUTION
Published as: Anton Jansen, Jan Bosch, Evaluation of Tool Support for Architec-
tural Evolution, Proceedings of the 19th IEEE International Conference on Auto-
mated Software Engineering (ASE 2004), pp. 375-378, September 2004
Abstract
6.1 Introduction
Software architecture [119, 138] has become a generally accepted concept in re-
search as well as industry. The importance of stressing the components and their
connectors of a software system is generally recognized and has lead to better con-
trol over the design, development and evolution of large and increasingly dynamic
software systems.
124 6. Evaluation of Tool Support for Architectural Evolution
The contribution of this paper is threefold. First, it develops the notion of explicit
architectural design decisions as a fundamental concept during architectural evolu-
tion. Second, it states a set of requirements that tooling needs to satisfy in order to
adequately support evolution of architectural design decisions. Finally, an analysis
is presented of existing tool approaches with respect to the stated requirements.
The remainder of this paper is organized as follows. The concept of architectural
design decisions and the problems associated with the architectural evolution are
explained in more depth in section 6.2. In section 6.3, the requirements for tool
support of architectural design decisions are formulated. The section after that
presents the tools and the evaluation on the requirements stated in the proceeding
section. A discussion of the evaluation results is presented in section 6.5. The paper
concludes with future work and conclusions in section 6.6.
To solve the aforementioned problems, an important role is laid down for the notion
of an architectural design decision. Only with proper tool support can this notion be
realized. Consequently, requirements are needed for such tools in order to support
this fundamental concept of architectural evolution. In the following section, the
requirements for architectural design decisions are presented. The requirements in
turn are used in section 6.4 to evaluate which parts of architectural design decisions
are already supported in existing tools.
6.3 Requirements
In this section, the requirements are presented that need to be satisfied to support
architectural evolution in the form of architectural design decisions. The individual
requirements have been grouped together into three groups: architecture, architec-
tural design decisions, and architectural change.
Architectural design decisions deal with the evolution of software architecture.
Consequently, tools should satisfy requirements regarding software architectures.
The concept of architectural design decisions introduces some requirements as
well, which are covered in the group architectural design decisions.
128 6. Evaluation of Tool Support for Architectural Evolution
6.3.1 Architecture
3. Support multiple views Software architectures have different views for dif-
ferent concerns [29, 67, 92]. Architectural design decisions often influence
multiple concerns simultaneously, because they try to strike a balance in the
effects they have on different concerns in their changes. Consequently, for ar-
chitectural evolution it is important to know these different concerns. Hence,
multiple views on the architecture should be supported.
6.3. Requirements 129
6.4 Evaluation
In this section, six tools are evaluated against the requirements stated in section 6.3.
For each tool, an overview description is provided, followed by a short description
of the support the tool provides for each requirement. The evaluation presented will
be used in section 6.5 to discuss the general tool performance on the three groups
of requirements.
6.4.1 ArchStudio 3
6.4.1.1 Description
6.4.1.2 Evaluation
• Architecture
R1 The underlying C2 part of ArchStudio supports first class architectural con-
cepts as architecture, configuration, components, connectors and messages.
R2 ArchStudio only supports a one-way, relationship from the software archi-
tecture to the realization (Java).
R3 The architectural concepts supported by ArchStudio are all part of the Com-
ponent & Connector view [29] on the software architecture. ArchStudio
does not support other architectural views.
• Architectural design decisions
R4 The concept of an architectural design decision is not supported by Arch-
Studio.
R5 Since the concept of an architectural design decision is not supported, there
is no support for under-specification and incompleteness. However, Arch-
Studio does support inconsistent architectural models, which is part of the
required incompleteness.
• Change
R6 Explicit architectural changes are only partially supported by ArchStudio.
The tool supports the basic operations and does not have a first class repre-
sentation of a change in itself. However, Mae, the change management tool,
which is no part of but related to ArchStudio, has support for the notion of
revisions. Consequently, explicit architectural changes are only supported
by an external tool (Mae) and not by ArchStudio itself.
R7 ArchStudio supports the basic operations of change, apart from the modifi-
cation type. However, replacement as in an atomic subtraction and addition
operation is not supported. Mae claims to support replacement of compo-
nents by encapsulating the separate versions in one component and allowing
run-time change between them.
132 6. Evaluation of Tool Support for Architectural Evolution
6.4.2 ArchJava
6.4.2.1 Description
6.4.2.2 Evaluation
• Architecture
R1 ArchJava supports the architectural concepts of connectors, components,
configuration, and ports.
R2 The supported architectural concepts are implemented directly as first class
entities defined as an extension to Java. Consequently, there is no division
between the architecture and its realization.
R3 Only the architectural concepts of the component & connector view [29]
are supported by ArchJava.
• Architectural design decisions
R4 The concept of an architectural design decision is not supported by Arch-
Java.
R5 Since the concept of an architectural design decision is not supported, the
language of ArchJava does not support under-specification and incomplete-
ness.
• Change
R6 Architectural change is not explicitly supported in ArchJava.
R7 ArchJava does not support the basic change types for evolution. An excep-
tion is formed by the ability to add a connector. A special connect statement
allows new connections to be created at run-time between the components,
but only if their type is a subtype of an earlier defined type.
6.4. Evaluation 133
6.4.3 AcmeStudio
6.4.3.1 Description
AcmeStudio is the tool used as a front end for Acme [50], which is an architectural
description language. The development of Acme started back in 1995 as an ADL
interchange language but has evolved to an ADL itself. Acme currently makes use
of xADL [37]. AcmeStudio is a graphical editor for Acme architectural designs,
which allows editing of designs in existing styles, or creating new styles and types
using visualization conventions that can be style dependent. The integrated Armani
constraint checker [148] is used to check the architectural design rules. The tool is
implemented as an Eclipse plug-in for portability and extensibility.
6.4.3.2 Evaluation
• Architecture
R1 Acme, as used by AcmeStudio, supports the architectural concepts of com-
ponents, connectors, configuration, and ports.
R2 AcmeStudio has a code generating ability to Java and C++, resulting in a
one-directional relationship from the architecture to the realization.
R3 AcmeStudio only supports the Component & Connector view [29]. Al-
though the tool does support multiple views on the architecture (called “rep-
resentations”), only one type is implemented.
• Architectural design decisions
R4 The concept of architectural design decisions is not supported by AcmeS-
tudio.
R5 Since the concept of an architectural design decision is not supported, under-
specification and incompleteness are not explicitly supported.
• Change
R6 Architectural change is not supported.
R7 Supporting mechanisms for the change types are not available.
6.4.4 SOFA
6.4.4.1 Description
6.4.4.2 Evaluation
• Architecture
R1 In the accompanied CDL, SOFA has a first class representations for archi-
tecture, modules, and components (called frames [121]).
R2 SOFA creates the architectural infrastructure. The implementation is still
defined in separate Java classes. Consequently, SOFA uses a one-way code
generation approach.
R3 Although SOFA defines modules and component concerns, these concerns
cannot be used orthogonal in SOFA. Furthermore, SOFA only has a textual
interface to the Component Definition Language presenting one view to the
component model. Hence, multiple views are not supported in SOFA.
• Architectural design decisions
R4 The concept of (architectural) design decisions is not supported in SOFA.
R5 SOFA does not satisfy the requirement for incompleteness and under-specification.
• Change
R6 Architectural change is not supported as a first class entity. However, ex-
plicit versioning is part of the component definition language model defin-
ing the component model.
R7 SOFA has support for the replacement of components at run-time. However,
the basic change types are not supported.
6.4.5 Compendium
6.4.5.1 Description
Compendium [8, 135, 181] is (partly) a knowledge system based on gIBIS [32],
which in turn uses the decision model IBIS[97]. A knowledge system, which uses
a decision model, tries to capture the rationale behind the decisions made in a deci-
sion process. Architectural design decisions can be seen as a very specific kind of
6.4. Evaluation 135
decisions made in a specific process (architectural design phase), which makes this
tool a candidate for evaluation.
Compendium centers on capturing design rationale created in face-to-face meetings
of design groups, potentially the most pervasive knowledge-based activity in work-
ing life, but also one of the hardest to support well. The tool provides a method-
ological framework, for collective sense-making and group memory. Compendium
excels in enabling groups to collectively elicit, organize and validate information
and make decisions about them. In order to integrate this with pre/post-meeting
design activities and artifacts, the created reasoning diagrams can be transformed
into other document formats for further computation and analysis. The domain
independence of Compendium’s reasoning mapping technique is the tool strength
and weakness.
6.4.5.2 Evaluation
• Architecture
R1 Compendium has no notion of first class architectural concepts.
R2 A relationship between architecture and realization can only be defined by
relating the artifacts in Compendium. Consequently, there is only an indi-
rect relationship between the artifacts of the architecture and realization.
R3 As Compendium has no notion of architectural concerns, multiple views are
not supported.
• Architectural design decisions
R4 Compendium has a first class notion of a design decision (in the form of an
issue). Furthermore, it supports rationale capturing about design decisions.
R5 The argument and position elements of the IBIS model [97] allows for
under-specification of the design decisions and the increasing refinement
of them.
• Change
R6 Compendium does not support architectural change, let alone a first class
representation of it. It does support versioning of an artifact describing the
architecture. Through this, Compendium could track architectural change.
R7 As the notion of a software architecture is not known in Compendium, the
basic changes type are not supported.
136 6. Evaluation of Tool Support for Architectural Evolution
6.4.6 Archium
Please note that this evaluation of Archium was not part of the original publication
of this chapter, but was part of the publication chapter 5. However, this evaluation
was left out in the final publication due to space constraints. To be complete in our
evaluation, we present this short evaluation of Archium.
6.4.6.1 Description
6.4.6.2 Evaluation
• Architecture
R1 The Archium tool supports first class architectural concepts of the compo-
nent & connector view, like components, connectors, ports etc.
R2 The relationship between the architecture and realization is very closely
related in Archium, as they have been integrated with each other. Conse-
quently, a bilateral relationship exists between the two
R3 Archium does support multiple views in the form of the component &
connector view [29], and an architectural decision dependency view. Fig-
ures 5.5 on page 115 and 5.1 on page 109 give concrete examples of these
views. However, important views like module and deployment views [29]
are to be added later on.
• Architectural design decisions
R4 The Archium tool includes a first class representation of architectural deci-
sions.
R5 Under-specification and incompleteness are only partially supported in the
tool in the form of stubs and optional rationale elements. However, the
Archium tool lacks the capabilities to explicitly express the incompleteness
of its architectural decisions and architectural elements. For example, if an
architectural decision requires more investigation and is put aside for the
moment, Archium cannot express this state of an architectural decision.
• Change
R6 In various ways, explicit architectural change can be expressed in the Archium
tool. Changes to components, connectors and configurations all can be ex-
pressed explicitly.
6.5. Discussion 137
R7 Furthermore, the Archium tool supports all the three basic change types
(i.e. addition, subtraction, and modification of architectural entities) for
these explicit architectural changes. However, this support is limited to the
architectural entities. An external version management system should be
used to track changes to the architectural decisions themselves.
6.5 Discussion
In the previous section, six tools were evaluated with respect to their support for
architectural evolution. Table 6.1 provides an overview of the results of the evalua-
tion, by presenting the tools against the requirements. For each requirements group
(architecture, architectural design decisions, architectural change), the results are
discussed in more detail.
Apart from Compendium and Archium, the concept of (architectural) design de-
cisions is not supported. Compendium does support design decisions, as issues
elements from the IBIS model. The tool supports arguments and positions of stake-
holders regarding the current problem that can be solved (partially) by a design
decision. A major drawback of Compendium (and other knowledge systems) is
that it does not explicitly support architectural concepts. The tool only allows for
references to be made to artifacts describing the context of the problem (i.e. the ar-
chitecture) and artifacts describing potential solutions. Apart from Archium, there
are currently (as of 2004) no artifacts for software architectures that can express
design solutions to a design problem in an unambiguous way.
The idea of (architectural) design decisions resulting from a design decision pro-
cess, as used in the research community of knowledge systems, is not treated ex-
plicitly in the software architecture community. Consequently, the design rationale
of an evolving software architecture is not captured in these tools. Finally, archi-
tectural design decisions are implicit, which results in the problems already stated
in the introduction (see section 6.1).
6.5. Discussion 139
6.6 Conclusion
architectural change, and the relationship to the software architecture will be impor-
tant areas of work. Hopefully, with the right decisions we will evolve and mature
the concept of architectural design decisions to tool support, making architectural
evolution an inherent part of software architectures.
“The Wheel of Time turns, and Ages come and pass, leaving
memories that become legend. Legends fades to myth, and even myth
is long forgotten when the Age that gave it birth comes again. In one
Age, called the Third Age by some, an Age yet to come, an Age long
past, a wind rose in the Mountains of Mist. The wind was not the
beginning. There are neither beginnings nor endings to the turning of
the Wheel of Time. But it was a beginning”