Acme Mapping Extension

What's Acme?

What's mapping?

Why do we need mapping?

Why do we need a mapping extension for Acme?

Preliminary proposal for the mapping extension (in Word97 format) ps format

Send me your comments


What's Acme?

"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.

What's mapping?

Roughly speaking, a mapping is a relationship bewtween architectural parts. Each part can be an architectural element or an aggregation of architectural elements.

Why do we need mapping?

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.

Why do we need a mapping extension for Acme?

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.