An implementation of the AADL-BA Behavior Annex front-end: an OSATE2 Eclipse plug-in Etienne Borde Gilles Lasnier Sébastien Gardoll Laurent Pautet Jérôme Hugues Fabien Cadoret borde@telecom-paristech.fr lasnier@telecom-paristech.fr gardoll@telecom-paristech.fr pautet@telecom-paristech.fr jerome.hugues@isae.fr cadoret@telecom-paristech.fr page 1 2011/01/24 AADL meeting, Hollywood FL
Objectives of this presentation Report the advancement of the AADL-BA 1 plug-in development Explain how an OSATE-based tool can interface with this plug-in to treat behavioral specifications Present some tool prototypes that interface with the AADL-BA plug-in 1 AADL-Behavior Annex page 2 2011/01/24 AADL meeting, Hollywood FL
AADL-Behavior Annex Overview Model components behavior thanks to A general purpose behavior specification A thread dispatch behavior specification A component interaction behavior specification A behavior action language A behavior expression specification Current draft: 0.94 plug-in v2.16 page 3 2011/01/24 AADL meeting, Hollywood FL
Objectives of the AADL-BA plug-in Provide an AADL Behavior Annex front-end and its integration into OSATE2 Ease the integration of multiple back-ends to allow the integration of AADL-BA in analysis Use in Telecom ParisTech research activities: Integrated in a model-based transformation process to analyze in depth systems schedulability Integrated in a model-based transformation process to validate in depth High-Integrity (HI) systems (Lasnier s PhD thesis) page 4 2011/01/24 AADL meeting, Hollywood FL
AADL-BA plug-in: status AADL-BA plug-in (beta) First implementation which supports 70% of the AADL-BA std v2.13 Update to AADL-BA std v2.16 (actual release, under development) How to get the AADL-BA plug-in Subversion repository (sources) - AADL-BA std v2.13 https://eve.enst.fr/svn/aadl-eclipse-dev/aadlba/trunk/fr.tpt.aadl.annex.behavior - AADL-BA std v2.16 https://eve.enst.fr/svn/aadl-eclipse-dev/aadlba/branches/fr.tpt.aadl.annex.behavior_current_dev page 5 2011/01/24 AADL meeting, Hollywood FL
AADL-BA plug-in: available information Information and documentation available at: Website: Trac AADL Behavior Annex Eclipse Project https://penelope.enst.fr/aadlba Publication UML&AADL 11: «An Implementaton of the Behavior Annex in the AADL-toolset Osate2». G. Lasnier, L. Wrage, L. Pautet, and J. Hugues. (to be pusblished april 2011) page 6 2011/01/24 AADL meeting, Hollywood FL
Architecture of the AADL-BA plug-in workflow compliant name resolver type checker semantic checker V2.13 V2.16 color code: todo done page 7 24/01/11 AADL meeting, Hollywood FL, 201101/24
AADL-BA plug-in: Integration in OSATE2 aadlbabackend parser resolver workflow compliant extension point extends page 8 24/01/11 AADL meeting, Hollywood FL, 201101/24
How to plug a back-end to this plug-in? develop an OSATE plug-in (1/2) MainCheddar action extends OSATE class AbstractInstanceOrDeclarativeModelReadOnlyAction. MainCheddar overrides analyzeinstancemodel method: automatically called by OSATE when button is performed @Override protected void analyzeinstancemodel(, SystemInstance root, ) {... ExecutionGraphRegistry r = new ExecutionGraphRegistry(root); ExtractionStrategy s = ExtractionStrategy.getStrategyFor(root); s.setregistry(r); aadl2cheddar.setstrategy(s); aadl2cheddar.analyze(root); } page 9 24/01/11 AADL meeting, Hollywood FL, 201101/24
How to plug a back-end to this plug-in? develop an OSATE plug-in (2/2) Extract Behavior Annex from a Component Instance public static BehaviorAnnex getbehaviorannex(componentinstance comp) { Subcomponent s = comp.getsubcomponent(); Classifier c = s.getclassifier(); for(annexsubclause annex : c.getownedannexsubclauses()) { if (annex instanceof BehaviorAnnex) return (BehaviorAnnex) annex; } Classifier return null; } 1 0..* ComponentInstance 1 Subcomponent AnnexSubClause BehaviorAnnex page 10 24/01/11 AADL meeting, Hollywood FL, 201101/24
How to plug a back-end to this plug-in? plug to the BA plug-in Useful if you are interested in the BA specification ONLY (not in the AADL instance tree model) page 11 24/01/11 AADL meeting, Hollywood FL, 201101/24
Back-end example Schedulability analysis with Cheddar (1/2) Task Behavior Annex analysis : Three ways to extract computation time of called subprograms: - Computation_Execution_Time property value - Call sequence analysis - Subprogram behavior annex analysis Subprogram annotation to identify middleware synchronization subprograms: property set Synchronization is Available_Synchronization_Function : type enumeration ( BasicComputation, GetResource, ReleaseResource ); Synchronization_Function : Available_Synchronization_Function applies to (subprogram); end Synchronization; page 12 24/01/11 AADL meeting, Hollywood FL, 201101/24
Back-end example Schedulability analysis with Cheddar (2/2) Scheduling analysis with shared resources thread implementation publisher.impl annex behavior_specification {**... transitions ti : s_init -[]-> s_comp { Init! }; tc : s_comp -[on dispatch]-> s_wait { Randomize!(result); GetResource!(resource1); Compute1!(result); Compute2!(resource1, result); ReleaseResource!(resource1); WriteOn!(dataout, result) }; tw : s_wait -[]-> s_comp { PeriodicWait! }; **}; end publisher.impl; (2) AADL2Cheddar : - scheduling model generation - scheduling simulation (1) Task Behavior Annex analysis : - Automaton to Timed Execution Graph - WCET computation - Critical instants computation... <resource> <name>sender.resource1</name> <address_space_name>sender</address_space_name> <cpu_name>cpu</cpu_name> <protocol>immediate_priority_ceiling_protocol</protocol> <resource_used_by> <resource_user>sender.producer 0 22</resource_user> <resource_user>sender.publisher 3 18</resource_user> </resource_used_by> </resource> page 13 24/01/11 AADL meeting, Hollywood FL, 201101/24
Research activities involving AADL-BA std and its plug-in (1/2) Objectives Allow analysis of the whole distributed systems: application + middleware components Reduce semantic gap between AADL model and generated code Use the same AADL model to perform analysis and code generation How? Require the use of AADL-BA AADL-light profile: restrictions of AADL components to eliminate high-level abstractions PolyORB-HI-AADL: middleware components + behavior integrated at model level Process to make visible the different expansion (iterative refinement) Publication ISORC 11: «A Model-Based Transformation Process to Validate and Implement High- Integrity Systems». G. Lasnier, L. Pautet, and J. Hugues. (to be pusblished march 2011) More information available at http://perso.telecom-paristech.fr/~lasnier page 14 2011/01/24 AADL meeting, Hollywood FL
Research activities involving AADL-BA std and its plug-in (2/2) The AADL-MBT project: a Model-Based Transformation plug-in integrated to Osate2 Restrict AADL components using our AADL-light profile Ease the integration of middleware components Produce intermediate AADL models Produce trace and add traceability information to AADL components The AADL-Code Generator project: an Ada/C code generator plug-in integrated to Osate2 Code generation simplify by our MBT-process Target languages Ada/Ravenscar and C MBT Process Aadl model Aadl model + behavior +middleware Ada/Ravenscar or C files Osate2 AADL2 frontend AADL-BA frontend AADL- MBT AADL Code Generator page 15 2011/01/24 AADL meeting, Hollywood FL
Conclusion and Perspectives A first BA-frontend integrated into OASTE Provides a front-end for any analysis/code generation tool Under development (official release expected soon) AADL community Available plug-in (ask for access wrights) Can give feedback using the AADL-BA Trac website Main issue in the standard: data types correspondence (strict or implicit?) - X:Integer_16 - Y:Integer_8 Is X:=Y authorised? Is X/Y authorised? page 16 24/01/11 AADL meeting, Hollywood FL, 201101/24