SPaCIFY project - Synoptic : Spacecraft ... - Alexandre Cortier

MW Config. Source Code .... Interactions between MW and Synoptic models are handled using external ... works on transformations proof (Martin Streker). IRIT.
967KB taille 27 téléchargements 209 vues
Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

- SPaCIFY project Synoptic : Spacecraft Synchronous DSML Alexandre Cortier Post-doc at IRIT/ACADIE

[email protected]

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

1/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

1. Introduction 2. Synoptic language 3. Middleware/Synoptic Interaction 4. Current works

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

2/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

SPaCIFY : ANR Project Spacify ANR (French Research National Agency) Project End : September 2009 Aim : I

I

R&D project aiming at developing a design environment for critical embedded software (Spacecraft System) Model-Driven Engineering and Formal Methods • model checking • formally-verified domain specific transformations

I I I I

multi-clock synchronous paradigm simulation and analysis tools scheduling analysis executive platform supporting distribution, partitionning and dynamic adaptation (middleware)

Environment components will be built upon the Topcased toolkit. (The Open-Source Toolkit for Critical Systems) IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

3/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

The SPaCIFY Project Industrial Stakeholders : I

CNES, Thales Alenia Space, EADS Astrium

I

Anyware Technologies, GEENSYS

• spacecraft system designers • graphical design environment • configuration, versions and documentation management

Academic Stakeholders : I

I I I

IRIT-ACADIE (Toulouse): Synoptic language definition, formally-verified model transformations ENSTB-CAMA (Brest) : middleware design IRISA-ESPRESSO (Rennes) : synchronous semantics LaBRI (Bordeaux) : model-checking

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

4/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic Synoptic : DSML (Domain Specific Modeling Language) for spacecraft systems. Requirements : central language of the development environment must be able to support an iterative and incremental development process functional, architectural and dynamic views specifications modular design based on a synchronous semantics (functional part)

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

5/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Overview : SPaCIFY development process Dynamic/Hardware Specification

Simulink / Stateflow models Textual Requirement

(limited to functional behavior) Automation / System Engineer

S O F T W A R E

D E V E L O P M E N T

AADL models

Model Transformation

Req. Analysis Design

"Functional" Synoptic model Domain specific transfo. pattern Synoptic Transfo. pattern

Automata elicitation Software function splitting Model Organisation

Synoptic model

Dynamic analysis and design Code Generation

Source Code Synoptic model

MW Config.

MW Config.

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

6/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Overview : SPaCIFY development process Dynamic/Hardware Specification

Simulink / Stateflow models Textual Requirement

(limited to functional behavior) Automation / System Engineer

S O F T W A R E

D E V E L O P M E N T

AADL models

Model Transformation

Req. Analysis Design

"Functional" Synoptic model

Synchronous World Synoptic model

Dynamic analysis and design Code Generation

Source Code Synoptic model

MW Config.

MW Config.

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

7/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Overview : SPaCIFY development process Development process starts with Simulink/Stateflow models... Reasons : Simulink/Stateflow is the most frequently used modelling language in the space domain by software engineers. Raised problems : Simulink/Stateflow is I I

based on synchronous paradigm but some control flow constructions were added ...

This requires to be careful during the translation process ! (cf. Geneauto - Marc Pantel)

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

8/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

1. Introduction 2. Synoptic language 3. Middleware/Synoptic Interaction 4. Current works

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

9/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic Synoptic : a graphical and textual DSML provides high-level constructions to handle I I I

multi-layers description (various modelling aspect) various granularity levels (iterative and refinement development) modular approach

based on a synchronous semantics. I I I

formal and deterministic analysis and verification refinement proof transformation proof

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

10/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : multi-layers system specification Synoptic is not fundamentally a new language but an integration of different sources and concepts. Synoptic is inspired by several approaches : Geneauto : safe subset of the Simulink/Stateflow modelling language used for the development of certified safety critical embedded real time systems AADL : Architecture Analysis & Design Language (formerly Avionics Architecture Description Language) Components Models : CCM, Fractal

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

11/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : multi-layers system specification Software Architecture : Geneauto approach I I

I

structural feature : Dataflow models (“Blocks Diagrams”) behavioral feature : Control Flow models (“Finite States Machines”) real-time constraints : clock properties

Dynamic/Hardware Architecture : AADL approach I I I

Threads description platform aspects (“components view”) mappings : which component execute which functional blocks ? • functional block → threads • threads → hardware components (processor)

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

12/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : multi-layers system specification Functional and control design

Software architecture

Dynamic architecture

Hardware architecture

10 Hz

Device_1

Threads + Properties

Bus

50 Hz

Processor

Hardware Design

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

13/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : multi-layers system specification Functional and control design

Software architecture

mappings

Dynamic architecture

10 Hz

Threads + Properties

50 Hz

mappings

Hardware architecture

Device_1

Bus

Processor

Hardware Design

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

14/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : multi-layers system specification Functional and control design

Software architecture

mappings

Dynamic architecture

10 Hz

Threads + Properties

50 Hz

mappings

Hardware architecture

Device_1

Bus

Processor

Hardware Design

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

15/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : functional model Software architecture = blocks/nodes hierarchy A node in a block diagram has : I I

a type several implementations

a node type describes interaction ports (interface) different kinds of implementations : I I I

dataflow : describes functional part automaton : describes behavioral part (modes) primitive : “black box”

Dataflow and automaton blocks are mutually nested.

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

16/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : functional model (block hierarchy) AUTOMATON

Etat_1

transition

Etat_2

DATAFLOW

MACRO−ETAT

AUTOMATON Garde

Etat_1.1

Action

Etat_1.2

Macro−état 1.3

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

17/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : functional model (node type) Node type example : 1 2 3 4 5 6 7 8

block type SunPointing features IMU_Data : i n data p o r t a r r a y 3 o f double ; STR_Data : i n data p o r t a r r a y 4 o f double ; DOR_Data : i n data p o r t a r r a y 4 o f double ; MTQ_Cmd : out data p o r t a r r a y 3 o f double ; RW_Cmd : out data p o r t a r r a y 3 o f double ; end SunPointing ;

Implicit ports : reset : re-initialization (boolean port) trigger : block activation (event port) enable : block activation control (boolean port) IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

18/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : functional model (dataflow) Node type identifier

node body int1 . dtf

Dataflow implementation name

is dataflow

blocks sc1 : sc2 : sc3 : sc4 : sc1 :

dataflow dtf2 > interface int2 ; −− to refine extern var tc1; −− MW/Synoptic interaction automaton aut ; external algo >

Logical Expression

signals s2 : s1 :

Hierarchy

event (ev1? and (dp>3)^) −> sc1. trigger ; data port sc2.odp −> sc1.idp ;

.... properties

Port identifier

....

end int1.dtf ;

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

19/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic : functional model (automaton) 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

automaton INIT_calculateur . aut states PM_RESET : s t a t e dtf , /* dtf = datfalow implementation */ Boostrap : s t a t e , OBSW_running : s t a t e , Firmware : macro s t a t e states PM_Built_IN_TESTS : s t a t e , OBSW_checkers : s t a t e ; i n i t i a l s t a t e PM_Built_IN_TESTS ; transitions tr1 : PM_Built_IN_TESTS -[ ]→OBSW_checkers ; end Firmware , RAM : macro s t a t e [...] end RAM ; i n i t i a l s t a t e PM_RESET ; transitions t1 : PM_RESET -[ on G do A ]→ Firmware . PM_Built_IN_TESTS ; t2 : Firmware . PM_Built_IN_TESTS -[ ]→Firmware . OBSW_checkers ; [...] end INIT_calculateur . aut ;

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

20/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

1. Introduction 2. Synoptic language 3. Middleware/Synoptic Interaction 4. Current works

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

21/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic/MW : external variables

The Middleware has to abstract the asynchronous behavior of the system (bufferisation,...) Interactions between MW and Synoptic models are handled using external variables concept. external variables = sources / sinks of signals external variables types : I

constants, TM, TC, global variables,

external variables contracts

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

22/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic/MW : external variables Usage contract

Client 1

Client 2

Synchronisation contract Persistence contract Syntactic Contract

Variable Remote access contract

External variables and associated contracts are used to configure the MW IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

23/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

1. Introduction 2. Synoptic language 3. Middleware/Synoptic Interaction 4. Current works

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

24/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Synoptic Language Definition

Synoptic Language Definition I I

Meta-Model definition (last steps) concrete textual syntax

Synoptic Semantics ? I I I

in progress... semantics by traduction (ESPRESSO-IRIT) : Signal (Polychrony) we need to define a semantics for the language core • works on transformations proof (Martin Streker)

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

25/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Meta-Model Ecore

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

26/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Textual Syntax and Edition tool (Topcased)

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

27/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Transformations Validation Automatic mappings : blocks → threads I I

to assist the developper need a formalisation of current pragmatic rules used by system engineers

Blocks and Signals Refinements : I I

automatic refinement (patterns : validated transformation) Proof Obligation (PO) generation for manual refinements

Edition transformations : I I

ex : Model organisation, Software function splitting Automatic and validated transformations

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

28/29

Introduction

Synoptic language

Middleware/Synoptic Interaction

Current works

Questions ?

Questions ?

IRIT - SPaCIFY project - , Synoptic : Spacecraft Synchronous DSML

29/29