SlideShare une entreprise Scribd logo
1  sur  112
Télécharger pour lire hors ligne
Lab on 
AADL 
Ivano Malavolta
Introduction
Real-Time, Critical, Embedded 
Systems 
« Real-time systems are defined as those systems in 
which the correctness of the system depends not only on 
the logical result of computation, but also on the time at 
which the results are produced » Stankovic, 1988. 
Properties we look for: 
– Functions must be predictable: the same data input will 
produce the same data output. 
– Timing behavior must be predictable: must meet temporal 
constraints (e.g. deadline).
Real-Time, Critical, Embedded 
Systems 
Critical (or hard) real-time systems: temporal constraints 
MUST be met, otherwise defects could have a dramatic 
impact on human life, on the environment, on the system 
Embedded systems: computing system designed for 
specific control functions within a larger system 
n Often with temporal constraints 
n Part of a complete device, often including hardware and 
mechanical parts 
n Limited amount of resources
Real-Time, Critical, Embedded 
Systems 
• Need to handle time. Concurrent applications. 
• May have dramatic impact on human life, on the 
system, ... 
• Do not allow software maintenance 
à difficult to correct erroneous software/bugs 
• High implementation cost 
– temporal constraints verification, safety, dedicated hardware/ 
software 
• Examples : aircraft, satellite, automotive, … 
5
Embedded software system arch.
Real-Time, Critical, Embedded 
Systems 
Specific software engineering methods/models/tools to 
master quality and cost 
n Example : early verifications at design step
Advantages of early fault discovery
Objectives of this lecture 
• Issues 
– How to model/design a real-time critical embedded system that 
conforms to requirements? 
– How to verify the solution? 
– How to prototype/implement it? 
• One solution among others: use an architectural 
language 
• to model the system 
• to run various verification 
• and to automatically produce the system 
• Focus on the AADL2.1 SAE standard (2012)
Case study 
Goal: to model a simple radar system 
Let us suppose we have the following requirements: 
1. System implementation is composed by physical devices (Hardware 
entity): antenna + processor + memory + bus 
2. and software entities : running processes and threads + operating system 
functionalities (scheduling) implemented in the processor that represent a 
part of execution platform and physical devices in the same time 
3. The main process is responsible for signals processing : general pattern: 
transmitter -> antenna -> receiver -> analyzer -> display 
4. Analyzer is a periodic thread that compares transmitted and received 
signals to perform detection, localization and identification
Outline of this lecture 
Goal: introduce model-based description of embedded real-time 
critical systems using the AADLv2 architectural language 
• Part 1: Basics on AADLv2 core 
– Syntax, semantics of the language 
• Part 2: Case study 
– A radar illustrative case study
Basics on AADL
Outline 
1. Quick overview 
2. AADL key modeling constructs 
1. Software components 
2. Execution platform components 
3. Properties 
4. Modelling large scale systems 
3. Tool support
Introduction 
AADL: AL for real-time critical embedded systems 
(Architecture Analysis and Design Language) 
– Goal : modeling software and hardware architectures 
• to master complexity 
• to perform analysis 
• to generate code 
• …. 
– Concepts : components, connections, deployments. 
– Many ALs : formal/non formal, application domain, …
AADL: Architecture Analysis & Design 
Language 
• International standard promoted by SAE, AS-2C 
committee, released as AS5506 family of standards 
• Version 1.0 (2004), version 2 (2009), 2.1 (2012) 
– Based on feedback from industry users, mostly from the space 
and avionics domain 
• Annex document to address specific needs 
– Behavior, data, error modeling, code generation, …
AADL capabilities
AADL for analysis
AADL in the process
AADL: Architecture Analysis & Design 
Language 
Based on the component-connector paradigm 
Key Elements: 
• Core AADL language standard 
– Textual & graphical, precise semantics, extensible 
• AADL Meta model & XMI/XML standard 
– Model interchange & tool interoperability 
• Annexes Error Model Annex as standardized extension 
– Error Model Annex addresses fault/reliability modeling, hazard 
analysis 
• UML 2.0 profile for AADL 
– Transition path for UML practitioners community
Different representations of an AADL model
The AADL language in one slide
AADL components 
• AADL model : hierarchy/tree of components 
• AADL component 
• Model a software or a hardware entity 
• May be organized in packages : reusable 
• Has a type/interface, one or several implementations 
• May have subcomponents 
• May combine/extend/refine others 
• May have properties : valued typed attributes (source code file name, 
priority, execution time, memory consumption, …) 
• Component interactions 
– Modeled by component connections 
– AADL features are connection points
AADL components 
• How to declare a component: 
– Component type: 
• name, category, properties, features => interface 
– Component implementation: internal structure (subcomponents), 
properties 
• Component categories: model real-time abstractions, close to the 
implementation space (ex : processor, task, …) 
• Each category has a well-defined semantics/behavior, refined 
through the property mechanism 
– Software components 
– Hardware components: execution platform 
– Systems : bounding box of a system 
• Model a deployment
Component type 
• AADLv2 distinguished type and implementation 
Component type = high-level specification of a component 
All component type declarations follow the same pattern: 
24 
<category> foo [extends <bar>] 
features 
-- list of features 
-- interface 
properties 
-- list of properties 
-- e.g. priority 
end foo; 
Inherit features and 
properties from parent 
Interface of the component: 
Exchange messages, access to 
data or call subprograms 
Some properties describing 
non-functional aspect of the 
component
Component type example 
-- model a sequential execution flow 
subprogram Spg -- Spg represents a C function, 
features -- in file "foo.c", that takes one 
in_param : in parameter foo_data; -- parameter as input 
properties 
Source_Language => C; 
Standard properties, one can 
Source_Text => ("foo.c"); 
define its own properties 
end Spg; 
-- model a schedulable flow of control 
thread bar_thread -- bar_thread is a sporadic thread : 
features -- dispatched whenever it 
in_data : in event data port foo_data; -- receives an event on its “in_data" 
properties -- port 
Dispatch_Protocol => Sporadic; 
end bar_thread;
Component implementation 
• Component Implementation completes the interface 
– Think spec/body package (Ada), interface/class (Java) 
<category> implementation foo.i [extends <bar>.i] 
subcomponents 
-- internal components 
foo.i implements foo 
calls 
-- called subprograms, 
-- only for threads or subprograms 
connections 
properties 
-- list of properties 
-- e.g. Deadline 
end foo.i;
Component implementation example 
subprogram Spg -- Spg represents a C function, 
features -- in file "foo.c", that takes one 
in_param : in parameter foo_data; -- parameter as input 
properties 
Source_Language => C; 
Source_Text => ("foo.c"); 
end Spg; 
thread bar_thread -- bar_thread is a sporadic thread, 
features -- it is dispatched whenever it 
in_data : in event data port foo_data; -- receives an event 
properties 
Dispatch_Protocol => Sporadic; 
end bar_thread; 
thread implementation bar_thread.impl -- in this implementation, at each 
-- dispatch we execute the "C" call 
calls -- sequence. We pass the dispatch 
C : { S : subprogram spg; }; -- parameter to the call sequence 
connections 
P1: parameter in_data -> S.in_param; 
end bar_thread.impl; 
Connect data/ 
parameter
AADL concepts 
• AADL introduces many other concepts: 
– Related to embedded real-time critical systems 
• AADL flows: capture high-level data + execution flows 
• AADL modes: model operational modes in the form 
of an alternative set of active components, 
connections, … 
– To ease models design/management 
• AADL packages (similar to Java, renames, private/ 
public) 
• AADL abstract component, component extensions, …
Outline 
1. Quick overview 
2. AADL key modeling constructs 
1. Software components 
2. Execution platform components 
3. Properties 
4. Modelling large scale systems 
3. Tool support
Summary of AADL elements
Three levels of description 
• Category (predefined) 
• Type 
– specification of the external interface 
• Implementation 
– specification of the content 
• Instance 
– instantiation of a type 
or an implementation 
– this is done by the tool
Software components categories 
• Process : address space. It must 
hold at least one thread 
• Thread : schedulable execution 
flow, Ada or VxWorks task, Java 
or POSIX thread. Execute 
programs 
• Data : data placeholder, e.g. C 
struct, C++ class, Ada record 
• Subprogram : a sequential 
execution flow. Associated to a 
source code (C, Ada) or a model 
(SCADE, Simulink) 
• Thread group : hierarchy of 
threads
Software components 
Example of a process component composed of two 
threads 
thread receiver 
end receiver; 
thread implementation receiver.impl 
end receiver.impl; 
thread analyser 
end analyser; 
thread implementation analyser.impl 
end analyser.impl; 
process processing 
end processing; 
process implementation processing.others 
subcomponents 
receive : thread receiver.impl; 
analyse : thread analyser.impl; 
. . . 
end processing.others;
Software components 
Example of a thread component : a thread may call 
different subprograms 
thread receiver 
end receiver; 
thread implementation receiver.impl 
calls CS : { 
call1 : subprogram Receiver_Spg; 
call2 : subprogram ComputeCRC_Spg; 
}; 
end receiver.impl; 
subprogram Receiver_Spg 
end Receiver_Spg; 
subprogram ComputeCRC_Spg 
end ComputeCRC_Spg; 
. . .
Thread group 
A thread group represents an organizational component to 
logically group threads contained in a process 
Thread groups can be hierarchically nested
Subprogram 
A subprogram component represents an execution entry point in source 
text 
No component can contain subprogram subcomponents. Instances of 
subprogram don't exist 
A subprogram call in the implementation of a thread or another 
subprogram may be “seen as” the inclusion of a subprogram 
subcomponent 
A thread can have call sequences for its states: 
– initialization, finalization, activation, deactivation, computation, and recovery 
Each thread dispatch executes the computation call sequence once
States of a thread
Subprogram local call example
Subprogram remote call example
Data 
It represents static data (e.g., numerical data or source text) 
and data types within a system 
– (e.g., used as data types on ports and parameters) 
Components may have a shared access to a data 
component 
Good practice: to store data definitions in a separate file
Example of data
Component connection
Component connection 
Features of subcomponents are connected in the 
“connections” subclause of the enclosing component 
Example 
thread analyser 
features 
analyser_out : out data port 
Target_Position.Impl; 
end analyser; 
thread display_panel 
features 
display_in : in data port Target_Position.Impl; 
end display_panel; 
process implementation processing.others 
subcomponents 
display : thread display_panel.impl; 
analyse : thread analyser.impl; 
connections 
port analyse.analyser_out -> display.display_in; 
end processing.others;
Ports compatibility
Data connection policies 
Immediate 
receiver thread is immediately 
awaken, and will read data 
when emitter finished 
Delayed 
actual transmission is 
delayed to the next time 
frame
Port groups
Modes 
A mode represents an operational state of a system 
A mode of a component can influence: 
– property values 
– activation of specific subcomponents 
– existence of connections 
Example - Modes of a cruise controller: 
{initialize, disengaged, engaged}
Modes transitions 
Mode transitions represent configuration changes as reaction 
to events 
– Triggered through ports (from outside or from a subcomponent) 
– Triggered internally by implementation software 
– Triggered internally in an execution platform component or a 
device 
• Note: Modes are not intended for modeling detailed 
internal behavior of threads or subprograms (︎ AADL 
Behavior Annex)
Mode example
Internal mode 
transition 
example
Outline 
1. Quick overview 
2. AADL key modeling constructs 
1. Software components 
2. Execution platform components 
3. Properties 
4. Modelling large scale systems 
3. Tool support
Hardware components categories 
• Processor/virtual processor 
– schedule component (combined CPU and RTOS scheduler). A 
processor may contain multiple virtual processors 
• memory 
– model data storage (memory, hard drive) 
• device 
– component that interacts with the environment. Internals (e.g. 
firmware) is not modeled. 
• bus/virtual bus 
– data exchange mechanism between components 
Device Memory bus Processor
Software/platform binding 
Maps application software elements to execution platform 
elements using binding properties
Software/platform binding 
• Actual_Processor_Binding 
– Specify which processor schedules and executes a thread or 
executes a (kernel mode) device driver 
• Actual_Memory_Binding 
– Specify the memory components in which executable code 
(process components) and data (data component) reside 
• Actual_Connection_Binding 
– Specify the communication channels that are used by logical 
connections (see next section)
Bus access 
Access to buses is declared 
explicitly in AADL
Outline 
1. Quick overview 
2. AADL key modeling constructs 
1. Software components 
2. Execution platform components 
3. Properties 
4. Modelling large scale systems 
3. Tool support
AADL properties 
Property: 
– Typed attribute, associated to one or more components 
– Property = name + type + allowed components 
– Property association = property name + value 
Allowed types in properties: 
– aadlboolean, aadlinteger, aadlreal, aadlstring, 
enumeration, many others … 
Can be propagated to subcomponents: inherit 
Can override parent’s one, case of extends
Property types
AADL properties 
Properties are associated to a component type (1) or 
implementation (2), as part of a subcomponent instance (3), 
or a contained property association (4). 
process implementation processing.others 
subcomponents 
receive0 : thread receiver.impl; 
receive1 : thread receiver.impl; 
receive2 : thread receiver.impl 
{Deadline => 200 ms;}; -- (3) 
properties -- (4) 
Deadline => 300 ms applies to receive1; 
end processing.others; 
thread receiver 
properties -- (1) 
Compute_Execution_Time => 3 .. 4 ms; 
Deadline => 150 ms ; 
end receiver; 
thread implementation receiver.impl 
properties -- (2) 
Deadline => 160 ms; 
Compute_Execution_Time => 4 .. 10 ms; 
end receiver.impl;
Property sets 
Property sets : 
– Group property definitions 
– They can be either 
• part of the standard, e.g. Thread_Properties 
• or user-defined, e.g. for new analysis as power analysis 
Example : 
property set Thread_Properties is 
. . . 
Priority : aadlinteger applies to (thread, device, …); 
Source_Text : inherit list of aadlstring applies to (data, port, thread, …); 
. . . 
end Thread_Properties;
AADL predefined property sets
Measurement units 
Properties are typed with units to model physical systems, 
related to embedded real-time critical systems 
property set AADL_Projects is 
Time_Units: type units ( 
ps, 
ns => ps * 1000, 
us => ns * 1000, 
ms => us * 1000, 
sec => ms * 1000, 
min => sec * 60, 
hr => min * 60); 
-- … 
end AADL_Projects; 
property set Timing_Properties is 
Time: type aadlinteger 
0ps .. Max_Time units Time_Units; 
Time_Range: type range of Time; 
Compute_Execution_Time: Time_Range 
applies to (thread, device, subprogram, 
event port, event data port); 
end Timing_Properties;
Outline 
1. Quick overview 
2. AADL key modeling constructs 
1. Software components 
2. Execution platform components 
3. Properties 
4. Modelling large scale systems 
3. Tool support
AADL packages 
A package provides a means to organize the descriptions by 
the use of namespaces 
A package can contain: 
– component types 
– component implementations 
– port group types 
– annex libraries
AADL package example
AADL systems 
Help structuring an architecture, with its own hierarchy of 
subcomponents. 
A system can include one or several subsystems 
In an AADL specification there is always a root system 
component 
Bindings : model the deployment of components inside the 
component hierarchy 
System
AADL systems 
subprogram Receiver_Spg … 
thread receiver … 
thread implementation receiver.impl 
… call1 : subprobram Receiver_Spg; … 
end receiver.impl; 
process processing 
end processing; 
process implementation processing.others 
subcomponents 
receive : thread receiver.impl; 
analyse : thread analyser.impl; 
. . . 
end processing.others; 
device antenna 
end antenna; 
processor leon2 
end leon2; 
system radar 
end radar; 
system implementation radar.simple 
subcomponents 
main : process processing.others; 
cpu : processor leon2; 
properties 
Actual_Processor_Binding => 
reference cpu applies to main; 
end radar.simple;
A full AADL system : a tree of 
component instances 
• Component types and 
implementations only define a 
library of entities (classifiers) 
• An AADL model is a set of 
component instances (of the 
classifiers) 
• System must be instantiated 
through a hierarchy of 
subcomponents, from root 
(system) to the leafs 
(subprograms, ..) 
• We must choose a system 
implementation component as 
the root system model ! 
Root System 
Sub System Process Processor 
Thread Data 
Subprogram
About subcomponents 
Some restrictions apply on subcomponents 
– A hardware cannot contain software, etc 
data data, subprogram 
thread data, subprogram 
thread 
group 
data, thread, thread group, subprogram 
process thread, thread group, data 
processor Memory, virtual processor, bus 
memory Memory, bus 
system ALL except subprogram, thread, and thread 
group 
86
System instances 
Component types and instances are “only” blueprints 
System instances represents the runtime architecture of an 
operational physical system 
Composed of software components + execution platform 
XML for storing system instances
System instances 2 
System instances are automatically generated by OSATE 
starting from complet system implementations
Components extension & refinement 
Extension: to define a new extended classifier based on an 
existing classifier 
Allows incremental refinement of a model 
• Component extension 
– Component types 
– Component implementations 
WHY extensions? 
– Add elements to a classifier 
• features, subcomponents, connections, flows, etc. 
– Refine existing elements in a component 
– Add or override properties
Why extension?
Extension example
Extension example 2
Subcomponents array
Feature arrays
Connecting arrays
Connection patterns
Outline 
1. AADL a quick overview 
2. AADL key modeling constructs 
1. AADL components 
2. Properties 
3. Component connection 
3. AADL: tool support
AADL & Tools 
• OSATE (SEI/CMU, http://aadl.info) 
– Eclipse-based tools. Reference implementation. AADLv1 and v2 
– Textual editors + various plug-ins 
• STOOD, ADELE (Ellidiss, http://www.ellidiss.com ) 
– Graphical editors for AADLv1 and v2, code/documentation generation 
• Cheddar (UBO/Lab-STICC, http://beru.univ-brest.fr/~singhoff/cheddar/ ) 
– Performance analysis, AADLv1 only 
• AADLInspector (Ellidiss, http://www.ellidiss.com) 
– Lightweight tool to inspect AADL models. AADLv1 and v2 
– Industrial version of Cheddar + Simulation Engine 
• Ocarina (ISAE, http://www.openaadl.org) 
– Command line tool, library to manipulate models. AADLV1 and V2 
– AADL parser + code generation + analysis (Petri Net, WCET, …) 
• Others: RAMSES, PolyChrony, ASSIST, MASIW, MDCF, TASTE, …
Case study
Radar case study 
Hardware/Software breakdown: components 
PACKAGE radar 
PUBLIC 
PROCESS processing 
-- … 
END processing; 
DEVICE antenna 
-- … 
END antenna; 
END RADAR;
Radar case study 
Hardware/Software breakdown: features 
in/out ports 
bus access 
PROCESS processing 
FEATURES 
to_screen : OUT EVENT PORT; 
send_pulse : OUT EVENT PORT; 
receive_pulse : IN DATA PORT; 
get_angle : IN DATA PORT; 
END processing; 
DEVICE antenna 
FEATURES 
antenna_in : IN EVENT PORT; 
VME : REQUIRES BUS ACCESS VME; 
END antenna;
Radar case study 
Hardware/Software breakdown: connections 
Logical cnx 
Hardware cnx
Radar case study 
Hardware/Software breakdown: connections 
SYSTEM IMPLEMENTATION radar.simple 
SUBCOMPONENTS 
aerial : DEVICE antenna; 
rotor : DEVICE motor; 
monitor : DEVICE screen; 
main : PROCESS processing.others; 
cpu : PROCESSOR leon2; 
VME : BUS VME; 
RAM : MEMORY RAM; 
CONNECTIONS 
PORT aerial.antenna_out -> main.receive_pulse; 
PORT rotor.motor_out -> main.get_angle; 
PORT main.send_pulse -> aerial.antenna_in; 
PORT main.to_screen -> monitor.screen_in; 
BUS ACCESS VME -> aerial.VME; 
BUS ACCESS VME -> rotor.VME; 
BUS ACCESS VME -> monitor.VME; 
BUS ACCESS VME -> cpu.VME; 
BUS ACCESS VME -> RAM.VME;
Radar case study 
• Hardware/Software breakdown: bindings 
Bindings 
PROPERTIES 
Actual_Memory_Binding => reference (ram) applies to main; 
Actual_Processor_Binding => reference (cpu) applies to main; 
END radar.simple;
Radar case study 
• Software elements
On flow latency analysis…
On flow latency analysis…
What this lecture means to you? 
AADL = Architecture Analysis & Design Language 
AADL is for architectural description, period 
à Not to be compared with UML suites 
– Behavior, types, link with source code is not required 
Keep in mind models support an objective 
– In this lecture, it is just a high-level view of the design 
What is not covered by this lecture: 
flows, annexes, multidimensional arrays, virtual 
processors/buses, analyses with external tools
Suggested readings 
1. The SAE Architecture Analysis & Design Language (AADL) Standard. 
Peter H. Feiler, January 2008. [Introduction to the language] 
2. The Architecture Analysis & Design Language (AADL): An Introduction, 
Peter H. Feiler David P. Gluch John J. Hudak, February 2006. [Use this 
as reference manual] 
3. OSATE plug­in: 
SEI validation plug­ins. 
SEI. [Analysis in general] 
4. Developing AADL Models for Control Systems: A Practitioner’s Guide. 
John Hudak Peter Feiler. July 2007. [Flow latency analysis]
Links 
Tool: 
• http://www.aadl.info/aadl/osate/stable/2.0.8/products/ 
Example projects (other than the ones on Lore): 
1. https://github.com/yoogx/AADLib 
2. https://github.com/osate/examples 
3. http://www.santoslab.org/pub/high-assurance/module-aadl/ 
slides/AADL-Isolette.pdf
Acknowledgements 
Parts of this lecture have been elaborated from: 
• AADLv2, a Domain Specific Language for the Modeling, the Analysis 
and the Generation of Real-Time Embedded Systems. Frank Singhoff 
and Jérôme Hugues, MODELS 2014 tutorial. 
• SAE AADL V2: An Overview. Peter Feiler. © 2010 Carnegie Mellon 
University 
• Overview of AADL Syntax. J-P. Rosen, J-F. Tilman. AADL Workshop 
2005
Contact Ivano Malavolta | 
Post-doc researcher 
Gran Sasso Science Institute 
iivanoo 
ivano.malavolta@gssi.infn.it 
www.ivanomalavolta.com

Contenu connexe

Tendances

How to build a FullStack Airline Ticketing Web App.pdf
How to build a FullStack Airline Ticketing Web App.pdfHow to build a FullStack Airline Ticketing Web App.pdf
How to build a FullStack Airline Ticketing Web App.pdfAmazon Web Services
 
Communication in a Microservice Architecture
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice ArchitecturePer Bernhardt
 
What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19cMaria Colgan
 
Open API Strategy, by Sensedia
Open API Strategy, by SensediaOpen API Strategy, by Sensedia
Open API Strategy, by SensediaSensedia
 
Disaster Recovery for Multi-Region Apache Kafka Ecosystems at Uber
Disaster Recovery for Multi-Region Apache Kafka Ecosystems at UberDisaster Recovery for Multi-Region Apache Kafka Ecosystems at Uber
Disaster Recovery for Multi-Region Apache Kafka Ecosystems at Uberconfluent
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using KafkaKnoldus Inc.
 
What is the Lifecycle Modeling Language?
What is the Lifecycle Modeling Language?What is the Lifecycle Modeling Language?
What is the Lifecycle Modeling Language?SarahCraig7
 
Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015Amazon Web Services
 
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)Prashanth Kurimella
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basicsSourabh Saxena
 
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...Jitendra Bafna
 
Terraform: An Overview & Introduction
Terraform: An Overview & IntroductionTerraform: An Overview & Introduction
Terraform: An Overview & IntroductionLee Trout
 
SMC304 Serverless Orchestration with AWS Step Functions
SMC304 Serverless Orchestration with AWS Step FunctionsSMC304 Serverless Orchestration with AWS Step Functions
SMC304 Serverless Orchestration with AWS Step FunctionsAmazon Web Services
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka StreamsGuozhang Wang
 
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Krishna-Kumar
 

Tendances (20)

How to build a FullStack Airline Ticketing Web App.pdf
How to build a FullStack Airline Ticketing Web App.pdfHow to build a FullStack Airline Ticketing Web App.pdf
How to build a FullStack Airline Ticketing Web App.pdf
 
Communication in a Microservice Architecture
Communication in a Microservice ArchitectureCommunication in a Microservice Architecture
Communication in a Microservice Architecture
 
What to Expect From Oracle database 19c
What to Expect From Oracle database 19cWhat to Expect From Oracle database 19c
What to Expect From Oracle database 19c
 
Open API Strategy, by Sensedia
Open API Strategy, by SensediaOpen API Strategy, by Sensedia
Open API Strategy, by Sensedia
 
Domain Driven Design
Domain Driven DesignDomain Driven Design
Domain Driven Design
 
Disaster Recovery for Multi-Region Apache Kafka Ecosystems at Uber
Disaster Recovery for Multi-Region Apache Kafka Ecosystems at UberDisaster Recovery for Multi-Region Apache Kafka Ecosystems at Uber
Disaster Recovery for Multi-Region Apache Kafka Ecosystems at Uber
 
Stream processing using Kafka
Stream processing using KafkaStream processing using Kafka
Stream processing using Kafka
 
What is the Lifecycle Modeling Language?
What is the Lifecycle Modeling Language?What is the Lifecycle Modeling Language?
What is the Lifecycle Modeling Language?
 
Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015Amazon Route 53 - Webinar Presentation 9.16.2015
Amazon Route 53 - Webinar Presentation 9.16.2015
 
AWS Lambda
AWS LambdaAWS Lambda
AWS Lambda
 
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
MuleSoft Deployment Strategies (RTF vs Hybrid vs CloudHub)
 
Dockers and containers basics
Dockers and containers basicsDockers and containers basics
Dockers and containers basics
 
Terraform on Azure
Terraform on AzureTerraform on Azure
Terraform on Azure
 
Introduction to MuleSoft
Introduction to MuleSoftIntroduction to MuleSoft
Introduction to MuleSoft
 
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
MuleSoft Surat Meetup#45 - Anypoint Flex Gateway as a Kubernetes Ingress Cont...
 
Terraform: An Overview & Introduction
Terraform: An Overview & IntroductionTerraform: An Overview & Introduction
Terraform: An Overview & Introduction
 
Software Design Patterns
Software Design PatternsSoftware Design Patterns
Software Design Patterns
 
SMC304 Serverless Orchestration with AWS Step Functions
SMC304 Serverless Orchestration with AWS Step FunctionsSMC304 Serverless Orchestration with AWS Step Functions
SMC304 Serverless Orchestration with AWS Step Functions
 
Introduction to Kafka Streams
Introduction to Kafka StreamsIntroduction to Kafka Streams
Introduction to Kafka Streams
 
Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!Kubernetes Application Deployment with Helm - A beginner Guide!
Kubernetes Application Deployment with Helm - A beginner Guide!
 

En vedette

[2015/2016] AADL (Architecture Analysis and Design Language)
[2015/2016] AADL (Architecture Analysis and Design Language)[2015/2016] AADL (Architecture Analysis and Design Language)
[2015/2016] AADL (Architecture Analysis and Design Language)Ivano Malavolta
 
AADL Module Analysis by means of Graphical Representation
AADL Module Analysis by means of Graphical RepresentationAADL Module Analysis by means of Graphical Representation
AADL Module Analysis by means of Graphical RepresentationIosif Itkin
 
AADL Overview: Brief and Pointless
AADL Overview: Brief and PointlessAADL Overview: Brief and Pointless
AADL Overview: Brief and PointlessIvan Ruchkin
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsSpace Codesign
 
Executable UML and SysML Workshop
Executable UML and SysML WorkshopExecutable UML and SysML Workshop
Executable UML and SysML WorkshopEd Seidewitz
 
[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)Ivano Malavolta
 
[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languagesIvano Malavolta
 
Software Architecture: Architecture Description Languages
Software Architecture: Architecture Description LanguagesSoftware Architecture: Architecture Description Languages
Software Architecture: Architecture Description LanguagesHenry Muccini
 
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...Ivano Malavolta
 

En vedette (9)

[2015/2016] AADL (Architecture Analysis and Design Language)
[2015/2016] AADL (Architecture Analysis and Design Language)[2015/2016] AADL (Architecture Analysis and Design Language)
[2015/2016] AADL (Architecture Analysis and Design Language)
 
AADL Module Analysis by means of Graphical Representation
AADL Module Analysis by means of Graphical RepresentationAADL Module Analysis by means of Graphical Representation
AADL Module Analysis by means of Graphical Representation
 
AADL Overview: Brief and Pointless
AADL Overview: Brief and PointlessAADL Overview: Brief and Pointless
AADL Overview: Brief and Pointless
 
Performance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL ModelsPerformance Verification for ESL Design Methodology from AADL Models
Performance Verification for ESL Design Methodology from AADL Models
 
Executable UML and SysML Workshop
Executable UML and SysML WorkshopExecutable UML and SysML Workshop
Executable UML and SysML Workshop
 
[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)[2016/2017] AADL (Architecture Analysis and Design Language)
[2016/2017] AADL (Architecture Analysis and Design Language)
 
[2016/2017] Architectural languages
[2016/2017] Architectural languages[2016/2017] Architectural languages
[2016/2017] Architectural languages
 
Software Architecture: Architecture Description Languages
Software Architecture: Architecture Description LanguagesSoftware Architecture: Architecture Description Languages
Software Architecture: Architecture Description Languages
 
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...Modeling objects interaction via UML sequence diagrams  [Software Modeling] [...
Modeling objects interaction via UML sequence diagrams [Software Modeling] [...
 

Similaire à AADL: Architecture Analysis and Design Language

[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design LanguageIvano Malavolta
 
Embedded 120206023739-phpapp02
Embedded 120206023739-phpapp02Embedded 120206023739-phpapp02
Embedded 120206023739-phpapp02Aravindharamanan S
 
HPC Application Profiling & Analysis
HPC Application Profiling & AnalysisHPC Application Profiling & Analysis
HPC Application Profiling & AnalysisRishi Pathak
 
HPC Application Profiling and Analysis
HPC Application Profiling and AnalysisHPC Application Profiling and Analysis
HPC Application Profiling and AnalysisRishi Pathak
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysislienhard
 
Embedded systems notes
Embedded systems notesEmbedded systems notes
Embedded systems notesShikha Sharma
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfSamHoney6
 
Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Atv Reddy
 
Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Atv Reddy
 
Embedded system
Embedded systemEmbedded system
Embedded systemmangal das
 
Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Atv Reddy
 
ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI Jayant Suthar
 
Linux Device Driver,LDD,
Linux Device Driver,LDD,Linux Device Driver,LDD,
Linux Device Driver,LDD,Rahul Batra
 
linux device driver
linux device driverlinux device driver
linux device driverRahul Batra
 
Presentation on Behavioral Synthesis & SystemC
Presentation on Behavioral Synthesis & SystemCPresentation on Behavioral Synthesis & SystemC
Presentation on Behavioral Synthesis & SystemCMukit Ahmed Chowdhury
 
Bba i-introduction to computer-u-2- application and system software
Bba  i-introduction to computer-u-2- application and system softwareBba  i-introduction to computer-u-2- application and system software
Bba i-introduction to computer-u-2- application and system softwareRai University
 
Bsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system softwareBsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system softwareRai University
 

Similaire à AADL: Architecture Analysis and Design Language (20)

[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language[2017/2018] AADL - Architecture Analysis and Design Language
[2017/2018] AADL - Architecture Analysis and Design Language
 
Embedded 120206023739-phpapp02
Embedded 120206023739-phpapp02Embedded 120206023739-phpapp02
Embedded 120206023739-phpapp02
 
HPC Application Profiling & Analysis
HPC Application Profiling & AnalysisHPC Application Profiling & Analysis
HPC Application Profiling & Analysis
 
HPC Application Profiling and Analysis
HPC Application Profiling and AnalysisHPC Application Profiling and Analysis
HPC Application Profiling and Analysis
 
OORPT Dynamic Analysis
OORPT Dynamic AnalysisOORPT Dynamic Analysis
OORPT Dynamic Analysis
 
Embedded
EmbeddedEmbedded
Embedded
 
Embedded systems notes
Embedded systems notesEmbedded systems notes
Embedded systems notes
 
Web Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdfWeb Template Mechanisms in SOC Verification - DVCon.pdf
Web Template Mechanisms in SOC Verification - DVCon.pdf
 
Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02
 
Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02
 
Embedded system
Embedded systemEmbedded system
Embedded system
 
Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02Embedded 100912065920-phpapp02
Embedded 100912065920-phpapp02
 
Chap 03.pdf
Chap 03.pdfChap 03.pdf
Chap 03.pdf
 
ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI ASIC Design Flow | Physical Design | VLSI
ASIC Design Flow | Physical Design | VLSI
 
Linux Device Driver,LDD,
Linux Device Driver,LDD,Linux Device Driver,LDD,
Linux Device Driver,LDD,
 
linux device driver
linux device driverlinux device driver
linux device driver
 
L06 Using Design Patterns
L06 Using Design PatternsL06 Using Design Patterns
L06 Using Design Patterns
 
Presentation on Behavioral Synthesis & SystemC
Presentation on Behavioral Synthesis & SystemCPresentation on Behavioral Synthesis & SystemC
Presentation on Behavioral Synthesis & SystemC
 
Bba i-introduction to computer-u-2- application and system software
Bba  i-introduction to computer-u-2- application and system softwareBba  i-introduction to computer-u-2- application and system software
Bba i-introduction to computer-u-2- application and system software
 
Bsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system softwareBsc cs 1 fit u-2 application and system software
Bsc cs 1 fit u-2 application and system software
 

Plus de Ivano Malavolta

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Ivano Malavolta
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)Ivano Malavolta
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green ITIvano Malavolta
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Ivano Malavolta
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]Ivano Malavolta
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Ivano Malavolta
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Ivano Malavolta
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Ivano Malavolta
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Ivano Malavolta
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Ivano Malavolta
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Ivano Malavolta
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Ivano Malavolta
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Ivano Malavolta
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile developmentIvano Malavolta
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architecturesIvano Malavolta
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languagesIvano Malavolta
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software ArchitectureIvano Malavolta
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineeringIvano Malavolta
 
Mobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionMobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionIvano Malavolta
 

Plus de Ivano Malavolta (20)

Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
Conducting Experiments on the Software Architecture of Robotic Systems (QRARS...
 
The H2020 experience
The H2020 experienceThe H2020 experience
The H2020 experience
 
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)The Green Lab - Research cocktail  @Vrije Universiteit Amsterdam (October 2020)
The Green Lab - Research cocktail @Vrije Universiteit Amsterdam (October 2020)
 
Software sustainability and Green IT
Software sustainability and Green ITSoftware sustainability and Green IT
Software sustainability and Green IT
 
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...Navigation-aware and Personalized Prefetching of Network Requests in Android ...
Navigation-aware and Personalized Prefetching of Network Requests in Android ...
 
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]How Maintainability Issues of Android Apps Evolve [ICSME 2018]
How Maintainability Issues of Android Apps Evolve [ICSME 2018]
 
Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...Collaborative Model-Driven Software Engineering: a Classification Framework a...
Collaborative Model-Driven Software Engineering: a Classification Framework a...
 
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
Experimenting on Mobile Apps Quality - a tale about Energy, Performance, and ...
 
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
Modeling objects interaction via UML sequence diagrams [Software Design] [Com...
 
Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...Modeling behaviour via UML state machines [Software Design] [Computer Science...
Modeling behaviour via UML state machines [Software Design] [Computer Science...
 
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...Object-oriented design patterns in UML [Software Design] [Computer Science] [...
Object-oriented design patterns in UML [Software Design] [Computer Science] [...
 
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
Structure modeling with UML [Software Design] [Computer Science] [Vrije Unive...
 
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
Requirements engineering with UML [Software Design] [Computer Science] [Vrije...
 
Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...Modeling and abstraction, software development process [Software Design] [Com...
Modeling and abstraction, software development process [Software Design] [Com...
 
[2017/2018] Agile development
[2017/2018] Agile development[2017/2018] Agile development
[2017/2018] Agile development
 
Reconstructing microservice-based architectures
Reconstructing microservice-based architecturesReconstructing microservice-based architectures
Reconstructing microservice-based architectures
 
[2017/2018] Architectural languages
[2017/2018] Architectural languages[2017/2018] Architectural languages
[2017/2018] Architectural languages
 
[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture[2017/2018] Introduction to Software Architecture
[2017/2018] Introduction to Software Architecture
 
[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering[2017/2018] RESEARCH in software engineering
[2017/2018] RESEARCH in software engineering
 
Mobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perceptionMobile Apps quality - a tale about energy, performance, and users’ perception
Mobile Apps quality - a tale about energy, performance, and users’ perception
 

Dernier

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr BaganFwdays
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...Fwdays
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsRizwan Syed
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfAlex Barbosa Coqueiro
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piececharlottematthew16
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubKalema Edgar
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsPixlogix Infotech
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebUiPathCommunity
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clashcharlottematthew16
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 

Dernier (20)

How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan"ML in Production",Oleksandr Bagan
"ML in Production",Oleksandr Bagan
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks..."LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
"LLMs for Python Engineers: Advanced Data Analysis and Semantic Kernel",Oleks...
 
DMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special EditionDMCC Future of Trade Web3 - Special Edition
DMCC Future of Trade Web3 - Special Edition
 
Scanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL CertsScanning the Internet for External Cloud Exposures via SSL Certs
Scanning the Internet for External Cloud Exposures via SSL Certs
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Unraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdfUnraveling Multimodality with Large Language Models.pdf
Unraveling Multimodality with Large Language Models.pdf
 
Story boards and shot lists for my a level piece
Story boards and shot lists for my a level pieceStory boards and shot lists for my a level piece
Story boards and shot lists for my a level piece
 
Unleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding ClubUnleash Your Potential - Namagunga Girls Coding Club
Unleash Your Potential - Namagunga Girls Coding Club
 
The Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and ConsThe Ultimate Guide to Choosing WordPress Pros and Cons
The Ultimate Guide to Choosing WordPress Pros and Cons
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
Dev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio WebDev Dives: Streamline document processing with UiPath Studio Web
Dev Dives: Streamline document processing with UiPath Studio Web
 
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data PrivacyTrustArc Webinar - How to Build Consumer Trust Through Data Privacy
TrustArc Webinar - How to Build Consumer Trust Through Data Privacy
 
Powerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time ClashPowerpoint exploring the locations used in television show Time Clash
Powerpoint exploring the locations used in television show Time Clash
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 

AADL: Architecture Analysis and Design Language

  • 1. Lab on AADL Ivano Malavolta
  • 3. Real-Time, Critical, Embedded Systems « Real-time systems are defined as those systems in which the correctness of the system depends not only on the logical result of computation, but also on the time at which the results are produced » Stankovic, 1988. Properties we look for: – Functions must be predictable: the same data input will produce the same data output. – Timing behavior must be predictable: must meet temporal constraints (e.g. deadline).
  • 4. Real-Time, Critical, Embedded Systems Critical (or hard) real-time systems: temporal constraints MUST be met, otherwise defects could have a dramatic impact on human life, on the environment, on the system Embedded systems: computing system designed for specific control functions within a larger system n Often with temporal constraints n Part of a complete device, often including hardware and mechanical parts n Limited amount of resources
  • 5. Real-Time, Critical, Embedded Systems • Need to handle time. Concurrent applications. • May have dramatic impact on human life, on the system, ... • Do not allow software maintenance à difficult to correct erroneous software/bugs • High implementation cost – temporal constraints verification, safety, dedicated hardware/ software • Examples : aircraft, satellite, automotive, … 5
  • 7. Real-Time, Critical, Embedded Systems Specific software engineering methods/models/tools to master quality and cost n Example : early verifications at design step
  • 8. Advantages of early fault discovery
  • 9. Objectives of this lecture • Issues – How to model/design a real-time critical embedded system that conforms to requirements? – How to verify the solution? – How to prototype/implement it? • One solution among others: use an architectural language • to model the system • to run various verification • and to automatically produce the system • Focus on the AADL2.1 SAE standard (2012)
  • 10. Case study Goal: to model a simple radar system Let us suppose we have the following requirements: 1. System implementation is composed by physical devices (Hardware entity): antenna + processor + memory + bus 2. and software entities : running processes and threads + operating system functionalities (scheduling) implemented in the processor that represent a part of execution platform and physical devices in the same time 3. The main process is responsible for signals processing : general pattern: transmitter -> antenna -> receiver -> analyzer -> display 4. Analyzer is a periodic thread that compares transmitted and received signals to perform detection, localization and identification
  • 11. Outline of this lecture Goal: introduce model-based description of embedded real-time critical systems using the AADLv2 architectural language • Part 1: Basics on AADLv2 core – Syntax, semantics of the language • Part 2: Case study – A radar illustrative case study
  • 13. Outline 1. Quick overview 2. AADL key modeling constructs 1. Software components 2. Execution platform components 3. Properties 4. Modelling large scale systems 3. Tool support
  • 14. Introduction AADL: AL for real-time critical embedded systems (Architecture Analysis and Design Language) – Goal : modeling software and hardware architectures • to master complexity • to perform analysis • to generate code • …. – Concepts : components, connections, deployments. – Many ALs : formal/non formal, application domain, …
  • 15. AADL: Architecture Analysis & Design Language • International standard promoted by SAE, AS-2C committee, released as AS5506 family of standards • Version 1.0 (2004), version 2 (2009), 2.1 (2012) – Based on feedback from industry users, mostly from the space and avionics domain • Annex document to address specific needs – Behavior, data, error modeling, code generation, …
  • 18. AADL in the process
  • 19. AADL: Architecture Analysis & Design Language Based on the component-connector paradigm Key Elements: • Core AADL language standard – Textual & graphical, precise semantics, extensible • AADL Meta model & XMI/XML standard – Model interchange & tool interoperability • Annexes Error Model Annex as standardized extension – Error Model Annex addresses fault/reliability modeling, hazard analysis • UML 2.0 profile for AADL – Transition path for UML practitioners community
  • 21. The AADL language in one slide
  • 22. AADL components • AADL model : hierarchy/tree of components • AADL component • Model a software or a hardware entity • May be organized in packages : reusable • Has a type/interface, one or several implementations • May have subcomponents • May combine/extend/refine others • May have properties : valued typed attributes (source code file name, priority, execution time, memory consumption, …) • Component interactions – Modeled by component connections – AADL features are connection points
  • 23. AADL components • How to declare a component: – Component type: • name, category, properties, features => interface – Component implementation: internal structure (subcomponents), properties • Component categories: model real-time abstractions, close to the implementation space (ex : processor, task, …) • Each category has a well-defined semantics/behavior, refined through the property mechanism – Software components – Hardware components: execution platform – Systems : bounding box of a system • Model a deployment
  • 24. Component type • AADLv2 distinguished type and implementation Component type = high-level specification of a component All component type declarations follow the same pattern: 24 <category> foo [extends <bar>] features -- list of features -- interface properties -- list of properties -- e.g. priority end foo; Inherit features and properties from parent Interface of the component: Exchange messages, access to data or call subprograms Some properties describing non-functional aspect of the component
  • 25. Component type example -- model a sequential execution flow subprogram Spg -- Spg represents a C function, features -- in file "foo.c", that takes one in_param : in parameter foo_data; -- parameter as input properties Source_Language => C; Standard properties, one can Source_Text => ("foo.c"); define its own properties end Spg; -- model a schedulable flow of control thread bar_thread -- bar_thread is a sporadic thread : features -- dispatched whenever it in_data : in event data port foo_data; -- receives an event on its “in_data" properties -- port Dispatch_Protocol => Sporadic; end bar_thread;
  • 26. Component implementation • Component Implementation completes the interface – Think spec/body package (Ada), interface/class (Java) <category> implementation foo.i [extends <bar>.i] subcomponents -- internal components foo.i implements foo calls -- called subprograms, -- only for threads or subprograms connections properties -- list of properties -- e.g. Deadline end foo.i;
  • 27. Component implementation example subprogram Spg -- Spg represents a C function, features -- in file "foo.c", that takes one in_param : in parameter foo_data; -- parameter as input properties Source_Language => C; Source_Text => ("foo.c"); end Spg; thread bar_thread -- bar_thread is a sporadic thread, features -- it is dispatched whenever it in_data : in event data port foo_data; -- receives an event properties Dispatch_Protocol => Sporadic; end bar_thread; thread implementation bar_thread.impl -- in this implementation, at each -- dispatch we execute the "C" call calls -- sequence. We pass the dispatch C : { S : subprogram spg; }; -- parameter to the call sequence connections P1: parameter in_data -> S.in_param; end bar_thread.impl; Connect data/ parameter
  • 28. AADL concepts • AADL introduces many other concepts: – Related to embedded real-time critical systems • AADL flows: capture high-level data + execution flows • AADL modes: model operational modes in the form of an alternative set of active components, connections, … – To ease models design/management • AADL packages (similar to Java, renames, private/ public) • AADL abstract component, component extensions, …
  • 29. Outline 1. Quick overview 2. AADL key modeling constructs 1. Software components 2. Execution platform components 3. Properties 4. Modelling large scale systems 3. Tool support
  • 30. Summary of AADL elements
  • 31. Three levels of description • Category (predefined) • Type – specification of the external interface • Implementation – specification of the content • Instance – instantiation of a type or an implementation – this is done by the tool
  • 32. Software components categories • Process : address space. It must hold at least one thread • Thread : schedulable execution flow, Ada or VxWorks task, Java or POSIX thread. Execute programs • Data : data placeholder, e.g. C struct, C++ class, Ada record • Subprogram : a sequential execution flow. Associated to a source code (C, Ada) or a model (SCADE, Simulink) • Thread group : hierarchy of threads
  • 33. Software components Example of a process component composed of two threads thread receiver end receiver; thread implementation receiver.impl end receiver.impl; thread analyser end analyser; thread implementation analyser.impl end analyser.impl; process processing end processing; process implementation processing.others subcomponents receive : thread receiver.impl; analyse : thread analyser.impl; . . . end processing.others;
  • 34. Software components Example of a thread component : a thread may call different subprograms thread receiver end receiver; thread implementation receiver.impl calls CS : { call1 : subprogram Receiver_Spg; call2 : subprogram ComputeCRC_Spg; }; end receiver.impl; subprogram Receiver_Spg end Receiver_Spg; subprogram ComputeCRC_Spg end ComputeCRC_Spg; . . .
  • 35.
  • 36.
  • 37.
  • 38.
  • 39.
  • 40.
  • 41. Thread group A thread group represents an organizational component to logically group threads contained in a process Thread groups can be hierarchically nested
  • 42.
  • 43. Subprogram A subprogram component represents an execution entry point in source text No component can contain subprogram subcomponents. Instances of subprogram don't exist A subprogram call in the implementation of a thread or another subprogram may be “seen as” the inclusion of a subprogram subcomponent A thread can have call sequences for its states: – initialization, finalization, activation, deactivation, computation, and recovery Each thread dispatch executes the computation call sequence once
  • 44. States of a thread
  • 47. Data It represents static data (e.g., numerical data or source text) and data types within a system – (e.g., used as data types on ports and parameters) Components may have a shared access to a data component Good practice: to store data definitions in a separate file
  • 50.
  • 51. Component connection Features of subcomponents are connected in the “connections” subclause of the enclosing component Example thread analyser features analyser_out : out data port Target_Position.Impl; end analyser; thread display_panel features display_in : in data port Target_Position.Impl; end display_panel; process implementation processing.others subcomponents display : thread display_panel.impl; analyse : thread analyser.impl; connections port analyse.analyser_out -> display.display_in; end processing.others;
  • 52.
  • 54. Data connection policies Immediate receiver thread is immediately awaken, and will read data when emitter finished Delayed actual transmission is delayed to the next time frame
  • 56. Modes A mode represents an operational state of a system A mode of a component can influence: – property values – activation of specific subcomponents – existence of connections Example - Modes of a cruise controller: {initialize, disengaged, engaged}
  • 57. Modes transitions Mode transitions represent configuration changes as reaction to events – Triggered through ports (from outside or from a subcomponent) – Triggered internally by implementation software – Triggered internally in an execution platform component or a device • Note: Modes are not intended for modeling detailed internal behavior of threads or subprograms (︎ AADL Behavior Annex)
  • 60. Outline 1. Quick overview 2. AADL key modeling constructs 1. Software components 2. Execution platform components 3. Properties 4. Modelling large scale systems 3. Tool support
  • 61. Hardware components categories • Processor/virtual processor – schedule component (combined CPU and RTOS scheduler). A processor may contain multiple virtual processors • memory – model data storage (memory, hard drive) • device – component that interacts with the environment. Internals (e.g. firmware) is not modeled. • bus/virtual bus – data exchange mechanism between components Device Memory bus Processor
  • 62.
  • 63.
  • 64.
  • 65.
  • 66.
  • 67.
  • 68.
  • 69. Software/platform binding Maps application software elements to execution platform elements using binding properties
  • 70. Software/platform binding • Actual_Processor_Binding – Specify which processor schedules and executes a thread or executes a (kernel mode) device driver • Actual_Memory_Binding – Specify the memory components in which executable code (process components) and data (data component) reside • Actual_Connection_Binding – Specify the communication channels that are used by logical connections (see next section)
  • 71. Bus access Access to buses is declared explicitly in AADL
  • 72.
  • 73. Outline 1. Quick overview 2. AADL key modeling constructs 1. Software components 2. Execution platform components 3. Properties 4. Modelling large scale systems 3. Tool support
  • 74. AADL properties Property: – Typed attribute, associated to one or more components – Property = name + type + allowed components – Property association = property name + value Allowed types in properties: – aadlboolean, aadlinteger, aadlreal, aadlstring, enumeration, many others … Can be propagated to subcomponents: inherit Can override parent’s one, case of extends
  • 76. AADL properties Properties are associated to a component type (1) or implementation (2), as part of a subcomponent instance (3), or a contained property association (4). process implementation processing.others subcomponents receive0 : thread receiver.impl; receive1 : thread receiver.impl; receive2 : thread receiver.impl {Deadline => 200 ms;}; -- (3) properties -- (4) Deadline => 300 ms applies to receive1; end processing.others; thread receiver properties -- (1) Compute_Execution_Time => 3 .. 4 ms; Deadline => 150 ms ; end receiver; thread implementation receiver.impl properties -- (2) Deadline => 160 ms; Compute_Execution_Time => 4 .. 10 ms; end receiver.impl;
  • 77. Property sets Property sets : – Group property definitions – They can be either • part of the standard, e.g. Thread_Properties • or user-defined, e.g. for new analysis as power analysis Example : property set Thread_Properties is . . . Priority : aadlinteger applies to (thread, device, …); Source_Text : inherit list of aadlstring applies to (data, port, thread, …); . . . end Thread_Properties;
  • 79. Measurement units Properties are typed with units to model physical systems, related to embedded real-time critical systems property set AADL_Projects is Time_Units: type units ( ps, ns => ps * 1000, us => ns * 1000, ms => us * 1000, sec => ms * 1000, min => sec * 60, hr => min * 60); -- … end AADL_Projects; property set Timing_Properties is Time: type aadlinteger 0ps .. Max_Time units Time_Units; Time_Range: type range of Time; Compute_Execution_Time: Time_Range applies to (thread, device, subprogram, event port, event data port); end Timing_Properties;
  • 80. Outline 1. Quick overview 2. AADL key modeling constructs 1. Software components 2. Execution platform components 3. Properties 4. Modelling large scale systems 3. Tool support
  • 81. AADL packages A package provides a means to organize the descriptions by the use of namespaces A package can contain: – component types – component implementations – port group types – annex libraries
  • 83. AADL systems Help structuring an architecture, with its own hierarchy of subcomponents. A system can include one or several subsystems In an AADL specification there is always a root system component Bindings : model the deployment of components inside the component hierarchy System
  • 84. AADL systems subprogram Receiver_Spg … thread receiver … thread implementation receiver.impl … call1 : subprobram Receiver_Spg; … end receiver.impl; process processing end processing; process implementation processing.others subcomponents receive : thread receiver.impl; analyse : thread analyser.impl; . . . end processing.others; device antenna end antenna; processor leon2 end leon2; system radar end radar; system implementation radar.simple subcomponents main : process processing.others; cpu : processor leon2; properties Actual_Processor_Binding => reference cpu applies to main; end radar.simple;
  • 85. A full AADL system : a tree of component instances • Component types and implementations only define a library of entities (classifiers) • An AADL model is a set of component instances (of the classifiers) • System must be instantiated through a hierarchy of subcomponents, from root (system) to the leafs (subprograms, ..) • We must choose a system implementation component as the root system model ! Root System Sub System Process Processor Thread Data Subprogram
  • 86. About subcomponents Some restrictions apply on subcomponents – A hardware cannot contain software, etc data data, subprogram thread data, subprogram thread group data, thread, thread group, subprogram process thread, thread group, data processor Memory, virtual processor, bus memory Memory, bus system ALL except subprogram, thread, and thread group 86
  • 87. System instances Component types and instances are “only” blueprints System instances represents the runtime architecture of an operational physical system Composed of software components + execution platform XML for storing system instances
  • 88. System instances 2 System instances are automatically generated by OSATE starting from complet system implementations
  • 89. Components extension & refinement Extension: to define a new extended classifier based on an existing classifier Allows incremental refinement of a model • Component extension – Component types – Component implementations WHY extensions? – Add elements to a classifier • features, subcomponents, connections, flows, etc. – Refine existing elements in a component – Add or override properties
  • 97. Outline 1. AADL a quick overview 2. AADL key modeling constructs 1. AADL components 2. Properties 3. Component connection 3. AADL: tool support
  • 98. AADL & Tools • OSATE (SEI/CMU, http://aadl.info) – Eclipse-based tools. Reference implementation. AADLv1 and v2 – Textual editors + various plug-ins • STOOD, ADELE (Ellidiss, http://www.ellidiss.com ) – Graphical editors for AADLv1 and v2, code/documentation generation • Cheddar (UBO/Lab-STICC, http://beru.univ-brest.fr/~singhoff/cheddar/ ) – Performance analysis, AADLv1 only • AADLInspector (Ellidiss, http://www.ellidiss.com) – Lightweight tool to inspect AADL models. AADLv1 and v2 – Industrial version of Cheddar + Simulation Engine • Ocarina (ISAE, http://www.openaadl.org) – Command line tool, library to manipulate models. AADLV1 and V2 – AADL parser + code generation + analysis (Petri Net, WCET, …) • Others: RAMSES, PolyChrony, ASSIST, MASIW, MDCF, TASTE, …
  • 100. Radar case study Hardware/Software breakdown: components PACKAGE radar PUBLIC PROCESS processing -- … END processing; DEVICE antenna -- … END antenna; END RADAR;
  • 101. Radar case study Hardware/Software breakdown: features in/out ports bus access PROCESS processing FEATURES to_screen : OUT EVENT PORT; send_pulse : OUT EVENT PORT; receive_pulse : IN DATA PORT; get_angle : IN DATA PORT; END processing; DEVICE antenna FEATURES antenna_in : IN EVENT PORT; VME : REQUIRES BUS ACCESS VME; END antenna;
  • 102. Radar case study Hardware/Software breakdown: connections Logical cnx Hardware cnx
  • 103. Radar case study Hardware/Software breakdown: connections SYSTEM IMPLEMENTATION radar.simple SUBCOMPONENTS aerial : DEVICE antenna; rotor : DEVICE motor; monitor : DEVICE screen; main : PROCESS processing.others; cpu : PROCESSOR leon2; VME : BUS VME; RAM : MEMORY RAM; CONNECTIONS PORT aerial.antenna_out -> main.receive_pulse; PORT rotor.motor_out -> main.get_angle; PORT main.send_pulse -> aerial.antenna_in; PORT main.to_screen -> monitor.screen_in; BUS ACCESS VME -> aerial.VME; BUS ACCESS VME -> rotor.VME; BUS ACCESS VME -> monitor.VME; BUS ACCESS VME -> cpu.VME; BUS ACCESS VME -> RAM.VME;
  • 104. Radar case study • Hardware/Software breakdown: bindings Bindings PROPERTIES Actual_Memory_Binding => reference (ram) applies to main; Actual_Processor_Binding => reference (cpu) applies to main; END radar.simple;
  • 105. Radar case study • Software elements
  • 106. On flow latency analysis…
  • 107. On flow latency analysis…
  • 108. What this lecture means to you? AADL = Architecture Analysis & Design Language AADL is for architectural description, period à Not to be compared with UML suites – Behavior, types, link with source code is not required Keep in mind models support an objective – In this lecture, it is just a high-level view of the design What is not covered by this lecture: flows, annexes, multidimensional arrays, virtual processors/buses, analyses with external tools
  • 109. Suggested readings 1. The SAE Architecture Analysis & Design Language (AADL) Standard. Peter H. Feiler, January 2008. [Introduction to the language] 2. The Architecture Analysis & Design Language (AADL): An Introduction, Peter H. Feiler David P. Gluch John J. Hudak, February 2006. [Use this as reference manual] 3. OSATE plug­in: SEI validation plug­ins. SEI. [Analysis in general] 4. Developing AADL Models for Control Systems: A Practitioner’s Guide. John Hudak Peter Feiler. July 2007. [Flow latency analysis]
  • 110. Links Tool: • http://www.aadl.info/aadl/osate/stable/2.0.8/products/ Example projects (other than the ones on Lore): 1. https://github.com/yoogx/AADLib 2. https://github.com/osate/examples 3. http://www.santoslab.org/pub/high-assurance/module-aadl/ slides/AADL-Isolette.pdf
  • 111. Acknowledgements Parts of this lecture have been elaborated from: • AADLv2, a Domain Specific Language for the Modeling, the Analysis and the Generation of Real-Time Embedded Systems. Frank Singhoff and Jérôme Hugues, MODELS 2014 tutorial. • SAE AADL V2: An Overview. Peter Feiler. © 2010 Carnegie Mellon University • Overview of AADL Syntax. J-P. Rosen, J-F. Tilman. AADL Workshop 2005
  • 112. Contact Ivano Malavolta | Post-doc researcher Gran Sasso Science Institute iivanoo ivano.malavolta@gssi.infn.it www.ivanomalavolta.com