AADL Inspector Tutorial ACVI Workshop, Valencia September 29th, 2014 Pierre Dissaux Ellidiss Technologies w w w. e l l i d i s s. c o m
Independent Technology Provider: Ellidiss Software w w w. e l l i d i s s. c o m UK based company aka.tni Europe Ltd Tools sales office Fr based company New tools development R&D center 20 years support to major industrial projects: HOOD design tools for Ada and C: CP-Hood and Stood Eurofighter Typhoon Airbus A340, A380, A350 Eurocopter Tiger (mission calculator) Rafale (engine control) European Space Agency (Frame Contract for the TASTE toolchain) 10 years investement in AADL technology: Contribution to the AADL standardization committee AADL graphical modeling tools: Stood for AADL, Adele, TASTE, DSMs AADL model processing framework: AADL Inspector
AADL Tools STOOD graphical editors HOOD-AADL-UML ADELE graphical editor TOPCASED/SPICES/QUARTEFT AADL Builder graphical editor UML profiles TASTE graphical editors ASSERT/ESA TOPCASED http://www.topcased.org bridge to other AADL tools OSATE, DSM tools: Domain Specific graphical editors Ex: GLASSES Modelling SCHEDULING ANALYSIS with CHEDDAR SIMULATION With MARZHIN PROOF TOOLS bridge to FIACRE and Polychrony SAFETY ANALYSIS bridge to COMPASS CODE GENERATORS bridge to RAMSES and OCARINA static rules checkers: - AADL Legality rules - AADL Naming rules - AADL Consistency rules - Metrics - Project specific rules Model Processing
STOOD for AADL Commercial AADL graphical editor
AADL Inspector Model Processing Framework Static rules analysis Cheddar Cloud access Wizards MARTE import Instance hierarchy AADL model Marzhin
AADL Inspector Internals.aadl AADL parser UML2AADL Rules Checkers LMP Instance Model HW/SW Deployment Model Transformations Cheddar Feasibility Tests Static Simulator Marzhin Dynamic Simulator report report time-lines XML parser Others time-lines.uml
AADL Models AADL Declarative Model HW Instance Model LMP Root System Selection HW-SW Bindings Deployed Model SW Instance Model Analysis Tools Input Models
Cheddar Schedulability Analysis Industrialization Tool packaging Commercial support (Ellidiss) Ellidiss R&D, collaborative projects, prototyping (UBO + Ellidiss + others) Research activities (UBO)
Marzhin Executable AADL Multi-agent real-time simulator: Based on a pre-existing multi-agent kernel Specialized agents to represent real-time software constructs: Processor and scheduler Process and partition Thread and shared data Ports and connections The agents interact together and exhibit a global behavior Implementation of the AADL run-time The run-time semantic of each agent is defined by the AADL standard Example: an AADL thread: Generates system state changes events Used to display simulation traces for software analysis during design phase Used to animate 3D graphics
Demonstration scenario Overview of AADL Inspector Loading AADL models (single file, project, from github) Loading a UML MARTE model Presentation of the analysis plugins and wizards List of illustrative Test Cases: TC1: sampled dataflow between periodic threads TC2: deadlock detection and avoidance (PCP) TC3: priority inversion and avoidance (PCP) TC4: sporadic activities with user interaction TC5: time and space partitionning (ARINC 653) TC6: distributed system (CAN) For each TC: Open the graphical AADL instance model in Stood Generate the textual declarative model Open it in AADL Inspector Check the root system and real-time properties Run Cheddar and/or Marzhin
Test case 1: dataflow sampling data port connections PROCESS IMPLEMENTATION my_process.others SUBCOMPONENTS T1 : THREAD a_thread { Dispatch_Protocol => Periodic; Compute_Execution_Time => 5ms..5ms; Period => 25ms; Deadline => 25ms; }; T2 : THREAD a_thread { Dispatch_Protocol => Periodic; Compute_Execution_Time => 5ms..5ms; Period => 20ms; Deadline => 20ms; }; T3 : THREAD a_thread { Dispatch_Protocol => Periodic; Compute_Execution_Time => 5ms..5ms; Period => 15 ms; Deadline => 15 ms; }; CONNECTIONS C1 : PORT T1.output -> T2.input; C2 : PORT T2.output -> T3.input; END my_process.others;
Test case 2: deadlock data access connections PROCESS IMPLEMENTATION my_process.others SUBCOMPONENTS T1 : THREAD T.i1; T2 : THREAD T.i2; D1 : DATA D.others { Concurrency_Control_Protocol => PRIORITY_CEILING_PROTOCOL; }; D2 : DATA D.others { Concurrency_Control_Protocol => PRIORITY_CEILING_PROTOCOL; }; CONNECTIONS cnx_0 : DATA ACCESS D1 -> T1.D1; cnx_1 : DATA ACCESS D2 -> T1.D2; cnx_2 : DATA ACCESS D1 -> T2.D1; cnx_3 : DATA ACCESS D2 -> T2.D2; END my_process.others;
Test case 3: priority inversion AADLib/examples/pathfinder_system PROCESS IMPLEMENTATION prs_psc.impl SUBCOMPONENTS meteo_task : THREAD meteo_task {Priority => 1;}; mesure_task : THREAD mesure_task {Priority => 2;}; camera_task : THREAD camera_task {Priority => 3;}; radio_task : THREAD radio_task {Priority => 4;}; control_task : THREAD control_task {Priority => 5;}; data_distribution : THREAD data_distribution {Priority => 6;}; bus_scheduling : THREAD bus_scheduling {Priority => 7;}; data_rw : DATA data_rw {Concurrency_Control_Protocol => Priority_Ceiling_Protocol;}; CONNECTION END prs_psc.impl;
Test case 4: sporadic activities event port connections THREAD IMPLEMENTATION CoffeeMaker.others PROPERTIES Dispatch_Protocol => Sporadic; Deadline => 15s; Period => 15s; ANNEX Behavior_Specification {** STATES s0 : INITIAL COMPLETE FINAL STATE; TRANSITIONS t0 : s0 -[ ON DISPATCH ]-> s0 { AddCoffee!; if (Suggar = 1) AddSugar! end if; if (Milk = 1) AddMilk! end if; AddWater! }; **}; END CoffeeMaker.others;
Test case 5: ARINC653 hierarchical scheduling PROCESSOR IMPLEMENTATION powerpc.impl SUBCOMPONENTS part1 : VIRTUAL PROCESSOR p1.impl; part2 : VIRTUAL PROCESSOR p2.impl; PROPERTIES Scheduling_Protocol => ARINC653; ARINC653::Partition_Slots => (10ms, 10ms); ARINC653::Slots_Allocation => (reference(part1),reference(part2)); ARINC653::Module_Major_Frame => 20ms; END powerpc.impl;
Test case 6: distributed system bus messages
3D simulation Multi-agent simulation Control system: AADL Process Sensors/Actuators: AADL Devices => connected to 3D objects Marzhin can send events to both AADL Inspector and the 3D engine
AADL Inspector 1.1 Paris Air Show AADL Inspector 1.2 STOOD 5.4 AeroTech AADL Inspector 1.3 ERTS 2 AADL Inspector 1.4 MODELS STOOD 5.4.1 AADL Inspector 1.5 End of the SMART project 2013 2014 Q2 Q3 Q4 Q1 Q2 Q3 Q4 Ellidiss Roadmap Q1 Paris Air Show Q2 Q3 2015
Summary: Products: Stood Adele Taste AADL Inspector AADL Builder Services: Tool support and training Custom Tool development (DSM) Technology: frameworks: GMP: for graphical tools LMP: for model processing Projects: ASSERT SPICES GLASSES QUARTEFT PARSEC CHEDDAR SMART RAMSES ADOSATE