aadl overview: brief and pointless
DESCRIPTION
My short presentation on basics of AADL. Focused on the language and special features.TRANSCRIPT
![Page 1: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/1.jpg)
1
AADL* OverviewBrief and Pointless
Ivan Ruchkin
November 12, 2012
*Architecture Analysis and Design Language
![Page 2: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/2.jpg)
2
Agenda
● Intro● Elements
– Components
– Ports
– Connections
● Special features– Modes
– Flows
– Annexes
![Page 3: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/3.jpg)
3
Definition
● What it is:– (Systems Engineering) A high-level system
specification language, specialized on real-time and embedded systems.
– (Architecture Description) an ADL for the domain of avionics and automotive.
● What is it not:– Not UML
– Not programming language
![Page 4: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/4.jpg)
4
Use of AADL
● Capture topology of architecture + properties– Specific to embedded real-time systems
● Generate code– C, Simulink, UML
● Do analysis– For example, end-to-end latency
– May extend with annexes
– Tools not included into AADL
![Page 5: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/5.jpg)
5
Timeline
● 2004: the Society of Automotive Engineers (SAE) released AADL v1.0.
– 4 annexes
● 2009: AADL v2.0.– Several major additions and improvements, +3
annexes
● 09/2012: AADL v2.1.– Minor fixes, +3 annexes
* This presentation considers 1.0
![Page 6: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/6.jpg)
6
AADL Notations
● Plain text
● Graphical
● XML
![Page 7: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/7.jpg)
7
AADL Graphic Notation
![Page 8: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/8.jpg)
8
Component Base Types 1 of 2
● Software (“application”):– Thread – a unit of execution
– Process – a unit of protected address space
– Thread group – a logical grouping of threads
– Data – a unit of information
– Subprogram – a callable unit of code
![Page 9: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/9.jpg)
9
Component Base Types 2 of 2
● Hardware (“execution platform”):– Processor – an executer for threads
– Memory – a binary data storage
– Device – a component that interfaces with external environment (transducer)
– Bus – a communication channel
● Composite– System – a composite component
![Page 10: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/10.jpg)
10
Separation of Type and Impl● Component type: externally visible
– Extends
– Features
– Flows
– Properties
● Component impl: externally invisible– Extends, refines
– Subcomponents, calls, connections
– Flows
– Modes
– Properties
![Page 11: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/11.jpg)
11
Example: Component (text)
process control_processing
features
input: in data port sensor_data;
output: out data port command_data;
end control_processing;
process implementation control_processing.speed_control
subcomponents
control_input: thread control_in.input_processing_01;
control_output: thread control_out.output_processing_01;
end control_processing.speed_control;
![Page 12: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/12.jpg)
12
Example: Component (diagram)
![Page 13: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/13.jpg)
13
Example: Thread Lifecycle
![Page 14: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/14.jpg)
14
Example: Device
![Page 15: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/15.jpg)
15
Ports
● Data ports– Typed state data, no queuing
● Event ports– Event data, may be queued
● Both: event data ports– Typed data and event with queuing.
![Page 16: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/16.jpg)
16
Connectors (conceptually)
● Port dataflow● Shared data access (data or bus)● Subprogram call
– By value
– By reference
– Global
* Not first-class elements, unlike e.g. ports
![Page 17: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/17.jpg)
17
Binding
● For a model to be complete:– Each thread bound to processor
– Each process, data, and port bound to memory
– Each interprocessor communication is bound to bus
– …
● No language primitives to bind– Assuming it is done automatically
![Page 18: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/18.jpg)
18
Modes
● State of a component● Part of the component's state machine
![Page 19: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/19.jpg)
19
Example: Modes
![Page 20: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/20.jpg)
20
Flows
● An abstract information path from the source to the sink
● Directional● Type contains source, sink, and path
![Page 21: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/21.jpg)
21
Annexes
● Language extensions (not libraries of types!)● Needs to be approved● Currently around 10:
– Notation annexes (graphical, XML)
– Error model annex
– Behavior annex
– ...
![Page 22: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/22.jpg)
22
Summary for the Language
● Separation of software and hardware● Separation of type and implementation● Specific semantics: properties and constraints● Special features: modes, flows● Generation to code, Simulink, UML● Analysis tools - standalone● Analogy to views: implementations
– Unified through shared types
![Page 23: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/23.jpg)
23
References
● P. Feiler, D. Gluch, J. Hudak, B. Lewis. Embedded System Architecture Analysis Using SAE AADL. CMU/SEI-2004-TN-005. June 2004.
● P. Feiler, D. Gluch, J. Hudak. The Architecture Analysis & Design Language (AADL): An Introduction. CMU/SEI-2006-TN-011. February 2006.
● P. Feiler, J. Hudak. Developing AADL Models for Control Systems: A Practitioner’s Guide. CMU/SEI-2006-TR-019. October 2006.
![Page 24: AADL Overview: Brief and Pointless](https://reader033.vdocument.in/reader033/viewer/2022051400/54bd0ad54a7959da268b460e/html5/thumbnails/24.jpg)
24
Thank you!