= AADL = The Architecture Analysis and Design Language has been standardized by the [http://www.sae.org SAE], avionics systems division, under number AS 5506. The last version of the standard (revision C) has been issued in January2017. The AADL is a textual and graphical language that can be used to design and analyze the software and hardware architecture of performance-critical real-time systems. An AADL model describes a system as a hierarchy of components with their interfaces and their interconnections. More information can be found on ([http://www.sae.org/standards/content/as5506d the SAE website]) and ([http://www.openaadl.org the AADL resource pages]) [[BR]] [[Image(wiki:AADL:img2.png)]] [[Image(wiki:AADL:img1.png)]] == AADL components == AADL components belong to predefined categories which precise semantics is defined by the standard. * Execution platform components represent the hardware parts of the system which may be: Processors, Buses, Memories and Devices. * Application software components describe the applicative model running on the system in terms of: Processes, Threads, Subprograms and Data. AADL components have a type that describes their functional interface and one or several implementations defining their internal structure and in particular their subcomponents and subcomponents interactions. == AADL features and connections == The purpose of AADL features is to specify the functional interface of a component. A feature can be an incoming outgoing port (event, data or event data), a subprogram entry point or data access point. Features are end for AADL connections. == AADL properties == Default semantics of AADL constructs is described by the standard, and appear in the models either implicitly (run-time semantics) or explicitly with predefined properties. Additionally, it is possible to enrich the semantics of AADL models by defining user-defined property sets that can apply to AADL component categories, features and connections. == AADL Extensions == The AADl standard comes with a set of extensions that enlarge the scope of the language for more particular usages. Some of these Annexes have already been published and others are still being studied by the AADL committee. * Error Model Annex * Behaviour Annex * Data Modeling Annex * Code Generation Annex * ARINC 653 Annex == Verifiable Model Based Engineering == One of the main benefits of using the AADL for modeling critical systems is that this language has been developed in the purpose of being verified. The standard specifies numerous legality rules that can be checked automatically by tools to insure that all the model is correctly formed according to the AADL semantics. Moreover, a common architectural description of the system can carry a variety of information that may be processed separately in order to provide analysis reports in various areas: * Schedulability Analysis * Run-Time Simulation at System level * Latency Analysis * Safety Analysis * Resource Consumption * ... == AADL tool chains == Since the first release of AADL in 2004, many modeling and verification tools have been developed. Ellidiss has become a leader in this area and provides '''commercially supported''' solutions for industrial projects. Main available AADL tools are: * [wiki:stood Stood]: (Commercial) all-in-one tool, graphical editor, analysis tools, code and documentation generation, developed by Ellidiss. * [wiki:inspector AADL Inspector]: (Commercial) light weight AADL Model Processing framework, including static analysis, schedulability analysis and a run-time simulator, developed by Ellidiss. * [wiki:aadlparser AADL Prolog API]: (Commercial) an extensive and formal API to process AADL models with the prolog language. * [http://osate.org OSATE]: (Open Source) Eclipse plugin, textual editor and analysis tools, developed by the Software Engineering Institute. * [http://www.openaadl.org/ocarina.html Ocarina]: (Open Source) Standalone tool, verification and code generation, developed by Telecom ParisTech and ISAE. * [http://beru.univ-brest.fr/~singhoff/cheddar/index-fr.html Cheddar]: (Open Source) Standalone tool, real-time performance analysis, developed by the University of Brest. All these tools can either import or export AADL models, which enables the realization of complete cost-effective tool-chain.[[BR]][[BR]] == AADL examples == === Fight Deck Door === * [http://www.ellidiss.fr/public/wiki/raw-attachment/wiki/WikiStart/AADL_inspector_FlightDeckDoor.mp4 Demonstration video] === Pacemaker === * [http://www.ellidiss.fr/public/wiki/raw-attachment/wiki/AADL/Pacemaker.pdf Design documentation] * [http://www.ellidiss.fr/public/wiki/raw-attachment/wiki/AADL/Pacemaker.aadl AADL source code] * [http://www.ellidiss.fr/public/wiki/raw-attachment/wiki/AADL/PacemakerTests.pdf Validation documentation] === modelling SADT with AADL Call Sequences === * [http://www.ellidiss.fr/public/wiki/raw-attachment/wiki/AADL/sadt.pdf illustration] [[BR]] [wiki:AADL#AADL Back to the top of the page].