Mae—A System Model and Environment for Managing Architectural Evolution
or previous versions at the Internet Archive.
Yahoo! is not affiliated with the authors of this page or responsible for its content.
MaeA System Model and Environment for Managing Architectural Evolution
MaeA System Model and Environment for
Managing Architectural Evolution
ROSHANAK ROSHANDEL
University of Southern California
ANDR
E VAN DER HOEK
University of California, Irvine
and
MARIJA MIKIC-RAKIC and NENAD MEDVIDOVIC
University of Southern California
As with any other artifact produced as part of the software life cycle, software architectures evolve
and this evolution must be managed. One approach to doing so would be to apply any of a host of
existing conguration management systems, which have long been used successfully at the level of
source code. Unfortunately, such an approach leads to many problems that prevent effective man-
agement of architectural evolution. To overcome these problems, we have developed an alternative
approach centered on the use of an integrated architectural and conguration management system
model. Because the system model combines architectural and conguration management concepts
in a single representation, it has the distinct benet that all architectural changes can be precisely
captured and clearly related to each otherboth at the ne-grained level of individual architec-
tural elements and at the coarse-grained level of architectural congurations. To support the use of
the system model, we have developed Mae, an architectural evolution environment through which
users can specify architectures in a traditional manner, manage the evolution of the architectures
This research was supported by the National Science Foundation under Grant numbers CCR-
9985441, CCR-0093489, and IIS-0205724.
This effort was also sponsored by the Defense Advanced Research Projects Agency, Rome Labora-
tory, Air Force Materiel Command, USAF under agreement numbers F30602-00-2-0615, F30602-
00-2-0599, and F30602-00-2-0607. The U.S. Government is authorized to reproduce and distribute
reprints for Governmental purposes notwithstanding any copyright annotation thereon. The views
and conclusions contained herein are those of the authors and should not be interpreted as neces-
sarily representing the ofcial policies or endorsements, either expressed or implied, of the Defense
Advanced Research Projects Agency, Rome Laboratory, or the U.S. Government.
This effort was also sponsored by the Jet Propulsion Laboratory, U.S. Army TACOM, Xerox Corpo-
ration, and Intel Corporation.
Authors addresses: R. Roshandel, M. Mikic-Rakic, and N. Medvidovic, Computer Science Depart-
ment, University of Southern California, Henry Salvatori Computer Center 300, Los Angeles, CA
90089; email:
{roshande,marija,neno}@usc.edu; A. van der Hoek, Department of Informatics, Uni-
versity of California, Irvine, 444 Computer Science Building, Irvine, CA 92697-3425; email: an-
dre@ics.uci.edu.
Permission to make digital or hard copies of part or all of this work for personal or classroom use is
granted without fee provided that copies are not made or distributed for prot or direct commercial
advantage and that copies show this notice on the rst page or initial screen of a display along
with the full citation. Copyrights for components of this work owned by others than ACM must be
honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers,
to redistribute to lists, or to use any component of this work in other works requires prior specic
permission and/or a fee. Permissions may be requested from Publications Dept., ACM, Inc., 1515
Broadway, New York, NY 10036 USA, fax:
+1 (212) 869-0481, or permissions@acm.org.
C
2004 ACM 1049-331X/04/0400-0240 $5.00
ACM Transactions on Software Engineering and Methodology, Vol. 13, No. 2, April 2004, Pages 240276.
MaeModel and Environment for Managing Architectural Evolution
241
using a check-out/check-in mechanism that tracks all changes, select a specic architectural con-
guration, and analyze the consistency of a selected conguration. We demonstrate the benets of
our approach by showing how the system model and its accompanying environment were used in
the context of several representative projects.
Categories and Subject Descriptors: D.2.7 [Software Engineering]: Distribution, Maintenance,
and Enhancement; D.2.9 [Software Engineering]: Management; D.2.11 [Software Engineer-
ing]: Software Architectures
General Terms: Design
Additional Key Words and Phrases: Design environment, evolution, Mae, system model
1. INTRODUCTION
Consider the following scenario. An organization specializing in software de-
velopment for mobile platforms is commissioned by a local re department to
produce an innovative application for on-the-y deployment of personnel in
situations such as natural disasters and search-and-rescue efforts. Following
good software engineering practices, the organization rst develops a proper
architecture for the application in a suitable architectural style, then models
this architecture in an architecture description language (ADL), renes the
architecture into a module design, and, nally, implements the application im-
peccably. The new application is an instant hit, and re and police departments
across the country adopt it. Motivated by this success, as well as by demands for
similar capabilities from the military, the organization enters a cycle of rapidly
advancing the application, creating add-ons, selling upgrades, adapting the
application to different hardware platforms (both stationary and mobile), spe-
cializing the application for its various customers, and generally increasing its
revenue throughout this process.
Conguration management (CM) systems [Burrows and Wesley 2001] have
long been used to provide support for these kinds of situations. This, however,
leads to problems with the above scenario: as the application evolves, so does its
architecture. These architectural changes must be managed in a manner much
like source code, allowing the architecture to evolve into different versions and
exhibit different variants [Kuusela 1999]. One solution is to store the entire
architectural description in a single le and track its evolution using an existing
CM system. The problem with this solution is that: (1) it only tracks changes at
the level of an architecture as a whole; (2) it requires extensive use of branching
to capture variations in an architecture; and (3) it does not support the use of
multiple versions of the same artifact (e.g., a single component) within a single
architecture. An alternative solution is to version each architectural element
in a separate le. This leads to a different set of problems: (1) it results in
potential inconsistencies due to duplication of information in the CM system
and the architectural specication; (2) it requires breaking up an architectural
specication into numerous small les; and (3) it still requires extensive use of
branching to manage variability. Thus, while it is possible to use an existing
CM system to manage architectural evolution, the problems associated with
either solution prevent doing so effectively.
ACM Transactions on Software Engineering and Methodology, Vol. 13, No. 2, April 2004.
242
R. Roshandel et al.
In this article, we introduce a novel approach for managing architectural evo-
lution, called Mae, that overcomes these problems. Mae combines techniques
from the elds of software architecture and conguration management to make
two unique contributions: (1) an integrated architectural and conguration
management system model that facilitates capturing the evolution of an archi-
tecture and its constituent elements, and (2) an integrated environment that
supports managing the evolution of architectures.
Maes rst contribution, its system model, focuses on capturing architectural
evolution. We formed the system model by extending a notional architectural
model, based on the concepts commonly present in existing architecture de-
scription languages [Medvidovic and Taylor 2000], with selected conguration
management modeling concepts. In particular, we carefully integrated the fol-
lowing concepts into the notional model to form a single architectural and CM
system model: revisions to capture linear evolution, inter-le branching to cap-
ture diverging paths of evolution, guarded variants to capture alternatives,
guarded options to capture nonmandatory architectural elements, and subtyp-
ing relations to capture the nature of changes. Tight integration of all these
concepts into a single system model is necessary not only to capture the history
of architectural evolution, but also to annotate that history with meaningful in-
formation regarding the compatibility among different versions of architectural
elements as they have evolved over time.
Maes second contribution, its architecture evolution environment, builds
upon the system model to provide an architect with powerful capabilities
for managing architectural evolution. The environment offers a carefully
crafted combination of architectural and conguration management capabil-
ities. Specically, it supports architects in designing and visualizing a software
architecture, checking out