Thus researchers are seeking to make architecture explicit and, to some degree, formal, and are seeking to provide manipulation and analysis tools supporting architecture-based development and evolution. The use of architecture specifications in the development of software intensive systems is depicted in Figure 1. Architecture Representation Software architecture involves descriptions of elements from which systems are built, interactions among those elements, patterns that guide their composition, and constraints on those patterns. ADLs provide language support for expressing these elements and lend themselves to providing a scientific and engineering basis for design, analysis, and composition. Some language and tool development efforts, such as the Domain Specific Software Architecture program, have as an additional goal support for domain specific language in architectural specification.
Architecture is defined as a diagram of formal specifications.
These researchers are designing ACME along with translators into and out of ACME so that, for example, architectures described in UniCon can be translated through ACME into another ADL such as Aesop. This interchange language provides a way for different ADLs and ADL tool suites to work together. An interesting by-product of this research is that it is leading to a better understanding of what ADLs should be capable of representing and reasoning about. The heavy arrows in the figure represent language to language transformations. Another type of transformation is one that takes place within the same language.