There is a large variety in ADLs developed by either academic or industrial groups. Many languages were not intended to be an ADL, but they turn out to be suitable for representing and analyzing an architecture. In principle, ADLs differ from requirements languages, because ADLs are rooted in the
solution space, whereas requirements describe problem spaces. They differ from programming languages, because ADLs don't bind architectural abstractions to specific point solutions. Modeling languages represent behaviors, where ADLs focus on representation of components. However, there are domain-specific modeling languages (DSMLs) that focus on representation of components.
Minimal requirements The language must: • Be suitable for communicating an architecture to all interested parties • Support the tasks of architecture creation, refinement and validation • Provide a basis for further implementation, so it must be able to add information to the ADL specification to enable the final system specification to be derived from the ADL • Provide the ability to represent most of the common architectural styles • Support analytical capabilities or provide quick generating prototype implementations
ADLs have in common: • Graphical syntax with often a textual form and a formally defined syntax and semantics • Features for modeling distributed systems • Little support for capturing design information, except through general purpose annotation mechanisms • Ability to represent hierarchical levels of detail including the creation of substructures by instantiating templates
ADLs differ in their ability to: • Handle real-time constructs, such as deadlines and task priorities, at the architectural level • Support the specification of different architectural styles. Few handle object oriented class inheritance or dynamic architectures • Support the analysis of the architecture • Handle different instantiations of the same architecture, in relation to product line architectures
Positive elements of ADL • ADLs are a formal way of representing architecture • ADLs are intended to be both human and machine-readable • ADLs support describing a system at a higher level than previously possible • ADLs permit analysis and assessment of architectures, for completeness, consistency, ambiguity, and performance • ADLs can support automatic generation of software systems
Negative elements of ADL • There is no universal agreement on what ADLs should represent, particularly as regards the behavior of the architecture • Representations currently in use are relatively difficult to parse and are not supported by commercial tools • Most ADLs tend to be very vertically optimized toward a particular kind of analysis ==Common concepts of architecture==