An SAE International standard established in 2004, the Architecture Analysis and Design Language (AADL) provides a new framework that allows analysis of system (and system of systems) designs prior to development and supports an architecture-centric, model-based development approach throughout the system life cycle.
System developers in industry and researchers in leading universities in Europe and the U.S. use AADL to predict and validate nonfunctional properties.
In addition to providing technical leadership for AADL development, the SEI provides training and technical assistance to support the use of this standard language for architecture design and analysis.
The AADL lowers costs in development and maintenance through
- a well-defined architecture documentation based on a precise syntax and semantics
- a single architectural model of multi-contractor systems that supports multiple analyses
- evaluation of the effect of architectural choices
- early and life-cycle tracking of modeling and analysis
- analysis of system structure and runtime behavior rather than functional behavior
- a complement to reference architectures and component-based or product-line development
AADL consists of
- a textual and graphical language with precise execution semantics for modeling the architecture of embedded software systems and their target platforms
- an XML/XMI interchange format to support AADL model exchange between contractors and interoperability with commercial and in-house tools
- an error model annex as a standardized AADL extension to support fault/reliability modeling and hazard analysis
AADL can be used to model
- embedded systems as component-based system architecture
- component interactions as flows, service calls, and shared access
- task execution and communication with precise timing semantics
- execution platform and specify application binding; and operational modes and fault tolerant configurations
The language also supports component evolution and large-scale development and accommodates analyses such as reliability and safety criticality (through extensions).
The benefits of using AADL include
- prediction and validation of runtime characteristics such as availability, timeliness, and security
- validation of system architectures and implementations
- improved development process through a single annotated architecture model
- AADL models as deliverables and subcontractor management
- interoperability and integration of commercial and in-house tools