Presentation of the AADL: Architecture Analysis and Design Language



Similar documents
TASTE: A Real-Time Software Engineering Tool-Chain Overview, Status, and Future

Model-Based Software Quality Assurance with the Architecture Analysis and Design Language

Methods and Tools For Embedded Distributed System Scheduling and Schedulability Analysis

AADL et la conception des logiciels

TASTE: An open-source tool-chain for embedded system and software development

TASTE Tutorial 01/02/2012

Embedded Software development Process and Tools: Lesson-1

Embedded Systems. 6. Real-Time Operating Systems

Predictable response times in event-driven real-time systems

SCADE System Technical Data Sheet. System Requirements Analysis. Technical Data Sheet SCADE System

Trends in Embedded Software Engineering

Real-Time Component Software. slide credits: H. Kopetz, P. Puschner

Notes and terms of conditions. Vendor shall note the following terms and conditions/ information before they submit their quote.

evm Virtualization Platform for Windows

MAST: A Timing Behavior Model for Embedded Systems Design Processes

Comparison of Component Frameworks for Real-time Embedded Systems

The EMSX Platform. A Modular, Scalable, Efficient, Adaptable Platform to Manage Multi-technology Networks. A White Paper.

TICO-EN. TiXML-Console TICO. User Manual V

Java and Real Time Storage Applications

Ontological Identification of Patterns for Choreographing Business Workflow

Real Time Developer Studio. Emmanuel Gaudin

Chapter 19: Real-Time Systems. Overview of Real-Time Systems. Objectives. System Characteristics. Features of Real-Time Systems

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

HP Server Management Packs for Microsoft System Center Essentials User Guide

The Timing Definition Language (TDL)

ARINC 653. An Avionics Standard for Safe, Partitioned Systems

Designing a Home Alarm using the UML. And implementing it using C++ and VxWorks

Tool Support for Software Variability Management and Product Derivation in Software Product Lines

Open Source Implementation of Hierarchical Scheduling for Integrated Modular Avionics

Embedded & Real-time Operating Systems

The Service Revolution software engineering without programming languages

A hypervisor approach with real-time support to the MIPS M5150 processor

Lesson 4 Web Service Interface Definition (Part I)

F-16 Modular Mission Computer Application Software

Using the TASKING Software Platform for AURIX

Virtual Machines.

Division of Mathematical Sciences

Real Time Programming: Concepts

PIE. Internal Structure

SysML Modelling Language explained

Resource Utilization of Middleware Components in Embedded Systems

Intel CoFluent Methodology for SysML *

Software documentation systems

Application Architectures

IBM RATIONAL PERFORMANCE TESTER

Study on Real-Time Test Script in Automated Test Equipment

i. Node Y Represented by a block or part. SysML::Block,

TD 271 Rev.1 (PLEN/15)

System Software and TinyAUTOSAR

White Paper. Real-time Capabilities for Linux SGI REACT Real-Time for Linux

Java Environment for Parallel Realtime Development Platform Independent Software Development for Multicore Systems

Glossary of Object Oriented Terms

theguard! ApplicationManager System Windows Data Collector

Budapest University of Technology and Economics Department of Measurement and Information Systems. Business Process Modeling

Chapter 1. Introduction to ios Development. Objectives: Touch on the history of ios and the devices that support this operating system.

SCADE Suite in Space Applications

Last Class: OS and Computer Architecture. Last Class: OS and Computer Architecture

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Designing Real-Time and Embedded Systems with the COMET/UML method

Safe Automotive software architecture (SAFE) WP3 Deliverable D3.6.b: Safety Code Generator Specification

BPM, EDA and SOA: How the Combination of these Technologies Facilitates Change. Dr. Neil Thomson, Head of Group Development, Microgen plc

Comodo Certificate Manager Version 5.4

Eastern Washington University Department of Computer Science. Questionnaire for Prospective Masters in Computer Science Students

Weighted Total Mark. Weighted Exam Mark

CHAPTER 15: Operating Systems: An Overview

Chapter 13: Program Development and Programming Languages

TESEO S.p.A. Next Electric Integration Rig for Small Aicraft Applications

Manjrasoft Market Oriented Cloud Computing Platform

Understand and Build Android Programming Environment. Presented by: Che-Wei Chang

Questions? Assignment. Techniques for Gathering Requirements. Gathering and Analysing Requirements

Contents. Introduction and System Engineering 1. Introduction 2. Software Process and Methodology 16. System Engineering 53

Introduction to programming

COCOVILA Compiler-Compiler for Visual Languages

OpenText Information Hub (ihub) 3.1 and 3.1.1

PG DAC. Syllabus. Content. Eligibility Criteria

Implementing reusable software components for SNOMED CT diagram and expression concept representations

CS 3530 Operating Systems. L02 OS Intro Part 1 Dr. Ken Hoganson

BIRT Application and BIRT Report Deployment Functional Specification

Real- Time Scheduling

SEMS: The SIP Express Media Server. FRAFOS GmbH

Linux for Embedded and Real-Time Systems

FIPA agent based network distributed control system

JavaFX Session Agenda

Technical Data Sheet SCADE R17 Solutions for ARINC 661 Compliant Systems Design Environment for Aircraft Manufacturers, CDS and UA Suppliers

Property & Casualty Insurance Solutions from CCS Technology Solutions

CS423 Spring 2015 MP4: Dynamic Load Balancer Due April 27 th at 9:00 am 2015

Effective Java Programming. efficient software development

Pharos Control User Guide

STUDY AND SIMULATION OF A DISTRIBUTED REAL-TIME FAULT-TOLERANCE WEB MONITORING SYSTEM

Towards Integrating Modeling and Programming Languages: The Case of UML and Java

Transcription:

Presentation of the AADL: Architecture Analysis and Design Language

Outline 1. AADL a quick overview 2. AADL key modeling constructs 1. AADL components 2. Properties 3. Component connection 3. AADL: tool support page 2

Introduction ADL, Architecture Description Language: Goal : modeling software and hardware architectures to master complexity to perform analysis Concepts : components, connections, configuration. Many ADLs : formal/non formal, application domain, ADL for real-time systems: AADL (Architecture Analysis and Design Language). page 3

AADL: Architecture Analysis & Design Language International standard promoted by the SAE (Society of Automotive Engineers), AS-2C committee, released as AS- 5506A. Version 1.0 published in 2004, version 2 in 2009 http://aadl.info list all resources around AADL Public wiki with lot of resources: https://wiki.sei.cmu.edu/aadl/index.php/main_page Include link to most research activities around AADL Different representations : Graphical (high-level view of the system), Textual (to view all details), XML (to ease processing by 3rd party tool) page 4

A is for Analysis AADL objectives are to model a system With analysis in mind (different analysis) To ease transition from well-defined requirements to the final system : code production Require semantics => any AADL entity has a semantics (natural language or formal methods). page 5

AADL components AADL model : hierarchy/tree of components AADL component: Model a software or a hardware entity Has a type/interface, one or several implementations May be organized in packages (reusable) May have subcomponents May combine/extend/refine others May have properties : valued attributes (source code file name, priority, WCET, memory consumption, ) Component interactions : Modeled by component connections AADL features are connection points page 6

AADL components How to declare a component: Component type: name, category, properties, features. 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 Hardware components: execution platform Software components Systems : bounding box of a system. Model a deployment. page 7

Component type AADLv2 distinguished type and implementation Component type = high-level specification of a component All component type declarations follow the same pattern: page 8 <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: (event) ports, access to data or subprograms Some properties describing non-functional aspect of the component

Component type Example: subprogram Spg -- Spg is modelling a C function, stored features -- in file "foo.c", that takes one in_param : in parameter foo_data; Standard properties, -- parameter one canas input properties define its own properties Source_Language => C; Source_Text => ("foo.c"); end Spg; thread bar_thread -- bar_thread is a sporadic thread, features -- it is dispatched Note: standard defines validity of whenever it combination of properties. To be complete, in_data : in event data port foo_data; -- receives an event a sporadic thread must define a minimal on its"in_data" Inter-arrival time properties -- port Dispatch_Protocol => Sporadic; end bar_thread; page 9

Component implementation AADLv2 distinguishes type from implementation Component Implementation complete the interface Similar to spec/body of Ada, interface/implementation in Java page 10 <category> implementation foo.i [extends <bar>.i subcomponents -- calls -- subprogram subcomponents foo.i implements foo -- called, only for threads or subprograms connections properties -- list of properties -- e.g. priority end foo.i;

Component implementation Example: Connect data flow thread bar_thread -- bar_thread is a spor features -- it is dispatched whe in_data : in event data port foo_data; -- receives an event on properties -- port Dispatch_Protocol => Sporadic; end bar_thread; thread implementation bar_thread.impl -- in this implementati calls -- dispatch we execute C : { S : subprogram spg; }; -- sequence. We pass th connections -- parameter to the cal parameter in_data -> S.in_param; end bar_thread.impl; page 11

AADL concepts AADL introduces many other concepts: Related to embedded real-time distributed systems : AADL flows: capture high-level data+execution flows AADL modes: models an operational mode in the form of an alternative set of active components/connections/ To ease models design/management: AADL packages (similar to Ada, renames, private/public) AADL abstract component, component extension AADL is a rich language : 100 entities in the meta-model BNF has 185 syntax rules Around 250 legality rules and more than 500 semantics rules 400 pages core document + various annex documents page 12

Outline 1. AADL a quick overview 2. AADL key modeling constructs 1. AADL components 2. Properties 3. Component connection 3. AADL: tool support page 13

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 page 14

Software components categories 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 process : address space. It must hold at least one thread subprogram : a sequential execution flow. Associated to a source code (C, Ada) or a model (SCADE, Simulink) thread group : hierarchy of threads Thread data subprogram Threadgroup process page 15

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; page 16

Software components Example of a thread component : a thread may call different subprograms subprogram Receiver_Spg end Receiver_Spg; subprogram ComputeCRC_Spg end Compute_CRCSpg;... thread receiver end receiver; thread implementation receiver.impl CS : calls { call1 : subprogram Receiver_Spg; call2 : subprogram ComputeCRC_Spg; }; end receiver.impl; page 17

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 page 18

«system» category system : 1. Help structuring an architecture, with its own hierarchy of subcomponents. A system can include one or several subsystems. 2. Root system component. 3. Model the deployment of components inside the component hierarchy. Concept of binding. page 19 System

«system» category 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; page 20 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;

About subcomponents Semantics: some restrictions apply on subcomponents A hardware cannot contain software, etc data thread thread group data, subprogram data, subprogram data, thread, thread group, subprogram process processor thread, thread group, data Memory, virtual processor, bus, virtual processor page 21 memory system Memory, bus All except subprogram, thread et thread group

Outline 1. AADL a quick overview 2. AADL key modeling constructs 1. AADL components 2. Properties 3. Component connection 3. AADL: tool support page 22

AADL properties Property: Typed attribute, associated to one or more components Property = name + type + associated components Property association = property name + value. Allowed types in properties: aadlboolean, aadlinteger, aadlreal, aadlstring, enumeration, classifier (component, connection, etc.), reference (component ), list of Can be propagated to subcomponents: inherit Can override parent s one, case of extends page 23

AADL properties Property sets : Group property definitions. Property sets part of the standard, e.g. AADL_Project. Or user-defined, e.g. for new analysis: power, weight Example : property set Thread_Properties is... Deadline : aadlinteger applies to (thread, device, ); Source_Text : inherit list of aadlstring applies to (data, port, thread, );... end Thread_Properties; page 24

AADL properties Properties are typed with units to model physical systems property set AADL_Projects isproperty set Timing_Properties is Time_Units: type units ( ps, ns => ps * 1000, Time: type aadlinteger 0 ps.. Max_Time units Time_Units; us => ns * 1000, ms => us * 1000, Time_Range: type range of Time; sec => ms * 1000, min => sec * 60, Compute_Execution_Time: Time_Range hr => min * 60); applies to thread, device, subprogram, -- event port, event data port); end AADL_Projects; end Timing_Properties; page 25

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). thread receiver properties -- (1) Compute_Execution_Time => 3.. 4 ms; Period => 150 ms; end receiver; thread implementation receiver.impl properties (2) Deadline => 150 ms; Period => 160 ms, end receiver.impl; page 26 process implementation processing.others subcomponents receive1 : thread receiver.impl; receive2 : thread receiver.impl {Deadline => 200 ms;}; -- (3) properties (4) Deadline => 300 ms applies to receive1; end processing.others;

Outline 1. AADL a quick overview 2. AADL key modeling constructs 1. AADL components 2. Properties 3. Component connection 3. AADL: tool support page 27

Component connection Component connection: model component interactions, control flow and/or data flow. E.g. exchange of message, remote call (RPC), features : component point part of the interface. Each feature has a name, a direction, and a category Features category: specification of the type of interaction event port : event exchange (e.g. alarm, interruption) data port/event data port : synchronous/asynchronous exchange of data/message subprogram parameter data access : access to a data, possibly shared subprogram access : RPC or rendez-vous Features direction for port and parameter: input (in), output (out), both (in out). page 28

Component connection Features of subcomponents are connected in the connections subclause of the enclosing component Ex: threads & thread connection on data port 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; page 29

Data connection policies Multiple policies exist to control production and consumption of data by threads: 1. Sampling connection: takes the latest value Problem: stability of control/command algorithm page 30

Data connection policies 2. Immediate: receiver thread is immediately awaken, and will read data when emitter finished 3. Delayed: actual transmission is delayed to the next time frame 1. These two policies allow for deterministic communication, hence stability of the computation page 31

Component connection Thread & subprogram connection thread implementation receiver.impl calls { RS: subprogram Receiver_Spg; }; connections parameter RS.spg_out -> receiver_out; parameter receiver_in -> RS.spg_in; end receiver.impl; page 32 subprogram Receiver_Spg features spg_out : out parameter Target_Distance; spg_in : in parameter Target_Distance; end Receiver_Spg; thread receiver features receiver_out : out data port Target_Distance; receiver_in : in data port Target_Distance; end receiver;

Component connection Connecting threads and shared data: data shared_var; end shared_var; process implementation processing.others subcomponents analyse : thread analyser.impl; display : thread display_panel.impl; a_data : data shared_var.impl; connections data a_data -> display.share; data a_data -> analyse.share; end processing.others; page 33 data implementation shared_var.impl end shared_var.impl; thread analyser features share : requires data access shared_var.impl; end analyser; thread display_panel features share : requires data access shared_var.impl; end display_panel;

Component connection Thread & thread : RPC, rendez vous thread Remote features MyCalc: provides subprogram access Calc; end Remote; thread caller features MyCalc: requires subprogram access Calc; end caller; page 34

Outline 1. AADL a quick overview 2. AADL key modeling constructs 1. AADL components 2. Properties 3. Component connection 3. AADL: tool support page 35

AADL & Tools Tools are mandatory to exploit any models Otherwise, resort to traditional engineering, no value added OSATE (SEI/CMU), http://aadl.info Eclipse-based tools Supports the textual syntax, reference implementation Supports syntactic and semantic checks Some plug-ins integrated (ARINC653 patterns) Support for reliability analysis (Error Modeling annex) OSATE2 meta-model as a UML2 meta-model, to ease writing your own analysis or transformation plug-ins page 36

AADL & Tools STOOD, ADELE (Ellidiss) http://www.ellidiss.com Graphical editors for AADLv1 et v2, code/documentation generation page 37

AADL & Tools Cheddar (UBO/Lab-STICC) http://beru.univ-brest.fr/~singhoff/cheddar/ Import of AADLV1 models Performance analysis, dimensioning Based on real-time scheduling theory, and queueing theory page 38

AADL & Tools AADLInspector (Ellidiss) http://www.ellidiss.com Lightweight tool to inspect AADL models, in text form Connection with Cheddar, Simulation Engine, AADLv2 only page 39

AADL & Tools Ocarina (ISAE -- http://www.openaadl.org) Command line tool, library to manipulate AADL models AADLv1 & v2 parser, analyzer Code generation for High-Integrity system, in C and Ada Support for native, RTOS (RTEMS, RT-Linux), bare boards Mapping to colored or timed Petri Nets, WCET, page 40