Architecture Description Languages (ADL's)

Architecture is a broad concept, and each project/domain's notion of what an architecture is and what sorts of data it should contain is different (and rightly so!) Furthermore, the purpose of an architecture description is largely driven by project stakeholders and their needs. Thus, no one ADL will ever fit all projects or domains. Eric M. Dashofy

Concepts

Architecture Description Languages (ADLs) describe principal architecture design decisions. Traditionally this has included a system's components, connectors, and configuration.

A large number of domain-specific and general-purpose ADLs have been published and are used in various areas with focus on specific architectural issues: ACME focuses on architectural interchange, Rapide focuses on simulation, and Meta-H focuses on including hardware concepts, there are many others.

However, a single ADL will never fit all projects or domains. Architecture is a broad concept, and each project/domain's notion of what an architecture is and what sorts of data it should contain is different (and rightly so!) Furthermore, the purpose of an architecture description is largely driven by project stakeholders and their needs.

Techniques

Modularize ADLs. Embracing the fact that no single ADL will ever fit all projects or domains, use an ADL that will support controlled, verifiable extension to express new concepts and concerns.

Utilize XML for modeling the architecture of software systems. Utilizing XML provides unprecedented extensibility and flexibility, as well as basic support from the many available commercial XML tools.

Notations

  • xADL 2.0 an extensible and flexible XML-based ADL. xADL 2.0 ships with a number of predefined xADL 2.0 Schema, or may be extended by your own schema to express the concepts important to your project.
  • xArch [LEGACY] a standard, extensible XML-based representation for software architectures.
  • C2 SADL [LEGACY] a language for defining architectures built according to the C2 style

Tools

  • Apigen - XML schema-to-Java data binding generator for xArch schemas

See Also