"Acme is a simple, generic software architecture description language (ADL) that can be used as a common interchange format for architecture design tools and/or as a foundation for developing new architectural design and analysis tools." Refer to the Acme-Web for details.
Roughly speaking, a mapping is a relationship bewtween architectural parts. Each part
can be an architectural element or an aggregation of architectural elements.
In practice, it often helps to have multiple views of the same system. For example,
multiple architectures of the desired system might be presented and compared; or a system
might have a hardware view that shows the hardware structure and a software views that
shows the software application running on the hardware; or, over the evolution of the
system, the architecture of the system evolves and leaves different views of the system.
In either case, there are relations between these views. Those relations might show which
part of the software runs on which processor, or which part of one architecture design has
the same function as that of an alternative design. Knowledge of those relations helps the
designers to get a better understanding of the system and reason about it.
In general, describing relations between architectures is a hard problem, since each
architecture has its own semantics and stand-alone fashion. The capability of addressing
arbitrary kinds of relations requires understanding these properties of individual
architecture, which makes a generic means of relation describing difficult to find, if at
all possible.
However, despite of the differences in semantics and fashions, all architecture descriptions have some means to describe architectural structures. Therefore it is possible to find a generic way to describe structural relations. Acme, designed as an interchange language for software architecture, focuses on structural issues, which makes it an optimal base for our extension.