ophy to the broader software engineering com-
munity at this stage for feedback and critical
discussion. To do this we will focus primar-
ily on the key design choices made by the lan-
guage.
2 Language Rationale
2.1 Goals
The design of a language should reect its in-
tended purp ose. If, for example, the primary
purpose of a language is to support formal anal-
ysis, then minimality of features and semantic
simplicity are likely top-level concerns. If, on
the other hand, the primary purpose of a lan-
guage is to supp ort a domain-sp ecic design ac-
tivity (such as for control systems in chemical
plants), then closely matching the engineers'
natural design vocabulary is crucial. It is im-
portant, therefore, to b e clear about the in-
tended purposes of Acme.
The primary purpose of Acme is to provide
an interchange format for architectural devel-
opment to ols and environments. As such, the
language should make it p ossible to integrate
a broad variety of separately-developed ADL
tools by providing an intermediate form for ex-
changing architectural information.
In addition to its primary goal of inter-
change, Acme was designed with the following
secondary goals in mind. These goals are listed
in decreasing order of importance.
Toprovide a representational scheme that
wil l permit the development of new tools
for analyzing and visualizing architectural
structures.
The language should provide
an architectural vocabulary that makes it
straightforward for tool writers to map
their intuitions ab out architectural struc-
tures into the forms expressible in the lan-
guage.
Toprovide a foundation for developing
new, possibly domain-specic, ADLs.
The
language should not preempt the ability
to build on its core capabilities with addi-
tional constructs and semantics.
To serve as a vehicle for creating conven-
tions and standards for architectural infor-
mation.
The language should make it easy
for groups of ADL developers to standard-
ize asp ects of architectural specication
that are not explicitly included in Acme
Toprovide expressive descriptions that are
easy for humans to read and write.
The
language should allow compact, direct ex-
pression of architectural structures and id-
ioms.
While these goals are complementary, taken
individually they lead to quite dierentchoices
in design. In particular, the primary goal of
supporting interchange of software architecture
descriptions b etween dierent ADLs argues for
a simple, easy-to-parse language, while the sec-
ondary goal of ease of reading and writing
for humans argues for expressive language fea-
tures. In the remainder of this pap er we will see
how Acme attempts to achieve the main goal
of architectural description interchange while
accommodating the secondary goals.
2.2 Reconciling Standardization
and Diversity
The existence of multiple languages arises in
numerous other domains including do cument
formatting, programming, graphical enco dings,
and hypertext. As with ADLs, such diversity
creates problems for users of these languages.
Anumber of approaches have b een used to cop e
with problems of language heterogeneity.
1.
Pick one:
Let the community or mar-
ketplace decide on a single dominant lan-
guage, and co erce future tool development
to occur around that language.
2.
Design a \union" language:
Design a
language that incorp orates all of the fea-
tures of all of the languages, and thereby
allow users to express anything that they
could have expressed in any of the individ-
ual languages.
3.
Design an \intersection" language:
Pick a least common denominator lan-
guage that includes the asp ects of archi-
tectural description that are shared by all
ADLs.
4.
Give up:
Admit that language diversity
is simply to o large to try to nd any co-
ordinated solution at present. This usu-
ally results in a large numb er of pairwise
3