This is an author-deposited version published in: Eprints ID: 10292

Similar documents
The TASTE MBE development toolchain - update & case-studies

Institut Supérieur de l Aéronautique et de l Espace. TASTE Multi-core. ISAE / ONERA Jérôme Hugues / Claire Pagetti December 2016

AADL committee, Valencia October 2 nd, Pierre Dissaux (Ellidiss) Maxime Perrotin (ESA)

Generating high-integrity systems with AADL and Ocarina. Jérôme Hugues, ISAE/DMIA

Institut Supérieur de l Aéronautique et de l Espace Ocarina: update and future directions

Towards the integration of Overture and TASTE

An open-source tool-chain for embedded software development. Maxime Perrotin TEC-SWE

STRAST. UPMSat-2 On-board computers. Grupo de Sistemas de Tiempo Real y Arquitectura de Servicios Telemáticos Universidad Politécnica de Madrid.

AADL to build DRE systems, experiments with Ocarina. Jérôme Hugues, ENST

From MDD back to basic: Building DRE systems

Model-Based Engineering for the Development of ARINC653 Architectures

Data Modelling with ASN.1 for Space Applications

To cite this document

AADL : about code generation

FOUR INDEPENDENT TOOLS TO MANAGE COMPLEXITY INHERENT TO DEVELOPING STATE OF THE ART SYSTEMS. DEVELOPER SPECIFIER TESTER

The Ocarina Tool Suite. Thomas Vergnaud

Verification, Validation, and Test with Model-Based Design

Query Language for AADLv2, Jérôme Hugues, ISAE Serban Gheorghe, Edgewater

AADL Tools & Technology. AADL committee 22 April Pierre Dissaux. Ellidiss. T e c h n o l o g i e s. w w w. e l l i d i s s.

HOOD, STOOD and AADL. Ada Europe, Valencia June 2010

This is an author-deposited version published in: Eprints ID: 10939

AADL Generative Implementation Annex

AADL Subsets Annex Update

I3DS SENSOR SUITE FOR SPACE ROBOTICS

ARINC653 toolset: Ocarina, Cheddar and POK

This is an author-deposited version published in: Eprints ID: 3664

Performance Verification for ESL Design Methodology from AADL Models

Final Presentation AUTOCOGEQ GMV, 2017 Property of GMV All rights reserved UNCLASSIFIED INFORMATION

From the Prototype to the Final Embedded System Using the Ocarina AADL Tool Suite

Model-Based Engineering for the Development of ARINC653 Architectures

POK. An ARINC653-compliant operating system released under the BSD licence. Julien Delange, European Space Agency

System-level co-modeling AADL and Simulink specifications using Polychrony (and Syndex)

Automatic test generation based on functional coverage

Project Report. Using the AADL to support the ASSERT modeling process

PragmaDev. change request. Emmanuel Gaudin. PragmaDev ITU-T SG17 change request Grimstad June 24,

Model Editing & Processing Tools. AADL Committee, San Diego February 4th, Pierre Dissaux. Ellidiss. Technologies w w w. e l l i d i s s.

This is an author-deposited version published in : Eprints ID : 15109

modelling and automatic code generation

Design and Implementation of Real-Time Distributed Systems with the ASSERT Virtual Machine

AO4AADL Compiler. Sihem Loukil. June 2011

Introduction to Dependable Systems: Meta-modeling and modeldriven

Architecture-driven development of Climate Control Software LMS Imagine.Lab Embedded Software Designer Siemens DF PL

NordiaSoft SCA Architect 2016

COMPASS GRAPHICAL MODELLER

Institut Supérieur de l Aéronautique et de l Espace Constraints Annex Implementation Approach

Architectural Design

Les outils CNES. The «BEST» WORKBENCH. Béatrice LARZUL Danièle BOUCON Dominique HEULET. March The «BEST» Workbench

Compositional Model Based Software Development

Rapid Prototyping of Distributed Real-Time Embedded Systems Using the AADL and Ocarina

Updates on the code generation annex. Jérôme Hugues, ISAE

SCADE. SCADE Suite Tailored for Critical Applications EMBEDDED SOFTWARE

L3Obis: Leon3-based Onboard Instrument Software A case study using TASTE. Daniel Tonoiu

This is an author-deposited version published in: Eprints ID: 13515

Deployment of the PUS-C Standard in Projects supported by an Automatic Generation Toolset (PUS-Gen)

Semantics-Based Integration of Embedded Systems Models

Automatically adapt Cheddar to users need

Chapter 6 Architectural Design. Lecture 1. Chapter 6 Architectural design

ESTEC, June 9 th, 2016

Scalable embedded Realtime

Octave: A Portable, Distributed, Opened Platform for Interoperable Monitoring Services

An Implementation of the Behavior Annex in the AADL-toolset Osate2

EagleEye TSP Porting to HWIL Configuration (RTB)

SCADE System, a comprehensive toolset for smooth transition from Model-Based System Engineering to certified embedded control and display software

COMPASS: FORMAL METHODS FOR SYSTEM-SOFTWARE CO-ENGINEERING

Certification Authorities Software Team (CAST) Position Paper CAST-25

Model-Driven Engineering Approach for Simulating Virtual Devices in the OSATE 2 Environment

Programming Languages for Real-Time Systems. LS 12, TU Dortmund

Modelling Avionics Architectures

RAMSES. Refinement of AADL Models for the Synthesis of Embedded Systems. Etienne Borde

Learn AADL concepts in a pleasant way

This is an author-deposited version published in : Eprints ID : 17146

Presentation of the AADL: Architecture Analysis and Design Language

Rockwell Collins Evolving FM Methodology

Execution of UML models Present and Future of Research and Practice

Designing GPU-accelerated applications with RTMaps (Real-Time Multisensor Applications) Framework and NVIDIA DriveWorks

MyCCM. A Component Based Approach for Real-Time & Critical Systems. Olivier Hachet Thales Communications

UML&AADL 11 An Implementation of the Behavior Annex in the AADL-toolset OSATE2

AADL Inspector Tutorial. ACVI Workshop, Valencia September 29th, Pierre Dissaux. Ellidiss. Technologies w w w. e l l i d i s s.

CCSDS Mission Operations Services

Figure 1 - EDGE Developer Suite Block Diagram

ARINC653 AADL Annex. Software Engineering Institute Carnegie Mellon University Pittsburgh, PA Julien Delange 07/08/2013

Profiling and Debugging OpenCL Applications with ARM Development Tools. October 2014

Chapter 2. Operating-System Structures

Establishing the overall structure of a software system

Outline. SLD challenges Platform Based Design (PBD) Leveraging state of the art CAD Metropolis. Case study: Wireless Sensor Network

Involved subjects in this presentation Security and safety in real-time embedded systems Architectural description, AADL Partitioned architectures

Chapter 6 Architectural Design

CSSE 490 Model-Based Software Engineering: More MBSD. Shawn Bohner Office: Moench Room F212 Phone: (812)

SCADE. SCADE Display Graphical Prototyping and Design. Tailored for Critical Embedded HMIs EMBEDDED SOFTWARE

Timing Definition Language (TDL) Concepts, Code Generation and Tools

Blazo Nastov. Journée des doctorant, Nîmes, France 19 June 2014

3rd Lecture Languages for information modeling

Model Verification: Return of experience

Monitoring DNSSEC. Martin Leucht Julien Nyczak Supervisor: Rick van Rein

Advanced On-board Control Procedure

Presentation of the AADL: Architecture Analysis and Design Language

Chapter 6 Architectural Design. Chapter 6 Architectural design

TERRA support for architecture modeling. K.J. (Karim) Kok. MSc Report. C e Dr.ir. J.F. Broenink Z. Lu, MSc Prof.dr.ir. A. Rensink.

Investigation of System Timing Concerns in Embedded Systems: Tool-based Analysis of AADL Models

Modeling and verification of memory architectures with AADL and REAL

Transcription:

Open Archive Toulouse Archive Ouverte (OATAO) OATAO is an open access repository that collects the work of Toulouse researchers and makes it freely available over the web where possible. This is an author-deposited version published in: http://oatao.univ-toulouse.fr/ Eprints ID: 10292 To cite this document: Hugues, Jérôme Ingénierie Dirigée par les Modèles - Une approche pragmatique pour la génération de code. (2013) In: Séminaire ISCLP : «Méthodologies et Technologies innovantes pour les systèmes embarqués», 05 November 2013-06 November 2013 (Toulouse, France). (Unpublished) Any correspondence concerning this service should be sent to the repository administrator: staff-oatao@inp-toulouse.fr

Institut Supérieur de l Aéronautique et de l Espace Code generation and models Perspectives from the TASTE project Jérôme Hugues, ISAE/DMIA ISCLP'13 1

What is the TASTE process? > TASTE derives from ASSERT (FP6, 2004-2008) > The TASTE process is based on simple observations» a system ANY system is made of heterogeneous components, that have to live and communicate together» system builders have other concerns than software implementation details,» and good software engineers are unhappy when they have just to develop application code and follow associated process: their skills are misused, better used to hack-n-play: add drivers, play with hardware, add verification/testing facilities, configure RTOS, etc. > Some considerations on Model-Based S(oftware ystem) Engineering» Desired functionality have reached levels (dangerously) close to being unmanageable by humans. Empirical methodologies have reached their limit...» Model Driven Engineering offers some notion of correctness, at the model level» Tools generate C/Ada code but no established standard for interoperability» Messages/data exchanged face the same issue no common data modeling» Some options for automation remove human from the loop > The TASTE process proposes solutions to» capture a system using user-friendly (yet formal) modeling techniques» automate repetitive and error-prone software activities» build an homogeneous system having heterogeneous components > The toolset has been specified, designed, and implemented by ESA together with ISAE, Ellidiss, PragmaDev, Neuropublic» Open source toolchain: see http://taste.tuxfamily.org ISCLP'13 2

Rationale for multiple modeling notations 10 Hz sensor data actuators AOCS! &.#!! &.,".! Control law! *!+,-&%! '()! &.,./&!!"#$%&'""!#!$%!!"#$%&'""!#$% ()*+"!&$% ()*+"!&!$%! '($)*(+,! -./01! Mode Management! State Machine!!"#$%&&!344&! (5*6! 78&! :$;2<=<>! 98&!?<(=@3441!?<(=@3441! 781! (5*6! '2-! -./01! to FDIR AADL and ASN.1 are combined to provide a complete Description of the system, SDL SCADE, C, Ada for impl. FDIR-command ::= ENUMERATED { safe-mode, switch-to-redundant,... } AOCS-tm ::= SEQUENCE { attitude Attitude-ty, orbit Orbit-ty,... } -- ASN.1 type definition ISCLP'13 3

Overview of the TASTE process Interface, functional and data views,-$"%&'./01#2"/ Hardware and deployment views 3"456#%/74#'28-49#5-'/ VM level containers TASTE runtime Complete system :;7-9#56 6-$"/."'"4#5-'/ Tool chain allowing the user to capture his system using a set of models and to generate the complete code of the application without manual intervention ISCLP'13 4

Modeling your system > TASTE proposes an integrated set of tools for modeling» Graphical DSL, provides basic blocks + semantics Follow Ravenscar computational model» Or use directly AADL, and connect it with your own process ISCLP'13 5

Adding function behavior: pick your notation > Generation of code skeletons system basic_fv USE Datamodel; SIGNAL basictotc (T_TM); SIGNAL tcommand (T_HLTC_PLUS); SIGNAL basictocontrol (T_CONTROL_IN); SIGNAL controldow ntobasic (T_CONTROL_DOWN_OUT); SIGNAL controluptobasic (T_CONTROL_UP_OUT); SIGNAL cyclicactivationimplementation; procedure aplc_basic_op COMMENT '#c_predef';fpar IN thrusters_opening T_THRUSTERS_OPENING, IN pfs_iw m_arming_relay_status_on T_PFS_IWM_ARMING_RELAY_STATUS_ON, IN pfs_hltc_red_button_is_on T_PFS_HLTC_RED_BUTTON_IS_ON, IN msu_id T_MSU_ID, IN pfs_ew m_msuy_msux_hs T_PFS_EWM_MSU_MSU_HS, IN ftcp_health_status T_FTCP_HEALTH_STATUS, IN pfs_ew m_dtg12_msu T_PFS_EWM_DTG12_MSU, IN hltc T_HLTC, IN end_boost_is_reached T_END_BOOST_IS_REACHED, IN sun_is_aimed T_SUN_IS_AIMED, IN/OUT pfs_ew c_msu_pde_t T_PFS_EWC_MSU_PDE_T, IN/OUT pde_cmd_a T_PDE_CMD_A, IN/OUT dpu_cmd T_DPU_CMD, IN/OUT set_pfs_ew c_msu_dtg_mode_coarse T_ON_OFF_CMD, IN/OUT hltm T_HLTM, IN/OUT pfs_ew m_msux_msuy_hs T_PFS_EWM_MSU_MSU_HS, IN/OUT cam_mode T_CAM_MODE, IN/OUT controller_to_be_activated T_CONTROLLER_TO_BE_ACTIVATED, IN/OUT navigation_output T_NAVIGATION_OUTPUT; EXTERNAL; procedure mysimulink COMMENT '#c_predef';fpar IN my_in T_FOR_SIMULINK_IN, IN my_in2 T_control_in, IN/OUT my_out T_FOR_SIMULINK_OUT, IN/OUT my_out2 T_Control_in; EXTERNAL; basic_fv c tcommand, controldowntobasic, controluptobasic, cyclicactivationimplementation basictotc, basictocontrol ISCLP'13 6

What TASTE tools do with the models! Generate application skeletons in Simulink, SDL, C, and Ada system basic_fv USE Datamodel; SIGNAL basictotc (T_TM); SIGNAL tcommand (T_HLTC_PLUS); SIGNAL basictocontrol (T_CONTROL_IN); SIGNAL controldow ntobasic (T_CONTROL_DOWN_OUT); SIGNAL controluptobasic (T_CONTROL_UP_OUT); SIGNAL cyclicactivationimplementation; procedure aplc_basic_op COMMENT '#c_predef';fpar IN thrusters_opening T_THRUSTERS_OPENING, IN pfs_iw m_arming_relay_status_on T_PFS_IWM_ARMING_RELAY_STATUS_ON, IN pfs_hltc_red_button_is_on T_PFS_HLTC_RED_BUTTON_IS_ON, IN msu_id T_MSU_ID, IN pfs_ew m_msuy_msux_hs T_PFS_EWM_MSU_MSU_HS, IN ftcp_health_status T_FTCP_HEALTH_STATUS, IN pfs_ew m_dtg12_msu T_PFS_EWM_DTG12_MSU, IN hltc T_HLTC, IN end_boost_is_reached T_END_BOOST_IS_REACHED, IN sun_is_aimed T_SUN_IS_AIMED, IN/OUT pfs_ew c_msu_pde_t T_PFS_EWC_MSU_PDE_T, IN/OUT pde_cmd_a T_PDE_CMD_A, IN/OUT dpu_cmd T_DPU_CMD, IN/OUT set_pfs_ew c_msu_dtg_mode_coarse T_ON_OFF_CMD, IN/OUT hltm T_HLTM, IN/OUT pfs_ew m_msux_msuy_hs T_PFS_EWM_MSU_MSU_HS, IN/OUT cam_mode T_CAM_MODE, IN/OUT controller_to_be_activated T_CONTROLLER_TO_BE_ACTIVATED, IN/OUT navigation_output T_NAVIGATION_OUTPUT; EXTERNAL; procedure mysimulink COMMENT '#c_predef';fpar IN my_in T_FOR_SIMULINK_IN, IN my_in2 T_control_in, IN/OUT my_out T_FOR_SIMULINK_OUT, IN/OUT my_out2 T_Control_in; EXTERNAL; basic_fv tcommand, controldowntobasic, controluptobasic, cyclicactivationimplementation c basictotc, basictocontrol " Generate a software real-time architecture (in AADL) Task 1 Task 1 Task 2 Task 3 Task 4 Task 2 Task 3 # Generate glue code to put everything together on a real-time operating system ISCLP'13 7

Implementation of the TASTE process ASN.1 Code generators0 SDL ObjectGeode System Model (AADL) The source code for each subsystem, Data Models Using as graphical generated DSL (ASN1)0 by the Or tools plain AADL Lustre code The generators messages The encoders exchanged and decoders The between of the semantically subsystems ASN.1 messages equivalent types of the messages per tool SCADE ASN1 compiler (asn1c)0 C code! Behavior! Data structures! AADL container0 C code mapping! C code! Data structures! Encoder/decoder! C code mapping! C code! Behavior! Data structures! AADL Container0 AADL Runtime! ISCLP'13 8

Configure your runtime > Provide a centralized place to add instrumentation, configure the build or the deployment» Also allow for automatic execution from toolsets» Main objective: convenient way to test models on the final target > Targets: Ada, C (RT-POSIX, Xtratum, RTEMS, )» Scripts to deploy on your target (board, simulator) ISCLP'13 9

Gathering metrics from projects > Scheduling, memory, coverage analysis» Integrate third-party tools, consolidate results at project level > All available from main GUI, or command line ISCLP'13 10

Testing and so forth > Rapid prototyping: the toolchain generates GUIs to quickly test the system, replay capabilities using MSCs > Simulation and Analysis: Data can be monitored using real-time plotting. > Documentation: ICDs are generated automatically with a description of the data binary encodings (ASN.1 uper Encodings) MY-MODULE DEFINITIONS ::= BEGIN MySequence ::= SEQUENCE { field1 INTEGER (5..4294967295), field2 INTEGER (5..4096) OPTIONAL, field3 BOOLEAN, field4 MyChoice, ISCLP'13 11

Tools under the hood > GUI and graphical editors are optional» This is not Eclipse ;) > The toolchain follows the Unix philosophy» One concern := one tool > Rely only on standards: AADL, ASN.1 + your models» Eases maintenance, extensibility, adaptation by user» Hooks to extend each step of the process» Easy to extend and add new features, tools, checks, etc.» Allows for batch processing, regression testing, etc. > GUI (Ellidiss), orchestrator are TCL or Python scripts» Configure other tools from TASTE, main entrypoints» Add your own tools (!)» E.g. COMPASS for safety analysis > A library of components for runtime deployment» SpaceWire, Ethernet, Serial, MIL-STD1553,» As both AADL models and source code, per OS» Add your own drivers (!) ISCLP'13 12

Tools under the hood (cont d) > Buildsupport (ESA)» Mapping from high-level AADL to detailed levels» Generation of wrappers for instrumentation > ASN.1 Space Certifiable Compiler (Neuropublic)» Generation of marshallers for ASN.1, Ada/SPARK & C» No dynamic memory allocation, no system calls» Let you specify data encoding in ACN (!) > AADL runtime two options» Code generated from AADL models (Ocarina, ISAE)» Ada: any Ravenscar-compliant Ada runtime» C: RT-POSIX, RTEMS, Xtratum, POK, Native,..» Runtime is not part of the generator itself» Add your OS of choice (!) ISCLP'13 13

Conclusion: http://taste.tuxfamily.org > TASTE is now 8 years old» Many demonstrators: FDIR, Galileo receiver, robotic arm,» Pragmatic view on code generation Remove manual work in critical paths Enable/disable features automatically» Everything is static, no dynamic model analysis at run-time Code ready to be embedded on final target Instrumentation present only on demand» Focus on supporting most activities in V cycle Prototyping, testing, early V&V activities, assessment of binary» Integrate heterogeneous models Depending on their relevance, *but* textual syntax is a must» (coming) Support for formal methods > TASTE is more than a working prototype: it is now a full proof of concept of initial vision on code generation» Clear separation between system and software engineers > TASTE is free software, enjoy! ISCLP'13 14