Project Title

GLOSE Demonstrator

Deliverable Type

Software and document

Deliverable Number

DP2.1

Title of Deliverable

Execution and Simulation Environment for Flight Control Management with concurrent execution

Version

1.0

Contractual Delivery Date

T0+14, May. 2020

Author

Didier Vojtisek <didier.vojtisek@inria.fr>

Reviewer

Benoit Combemale <benoit.combemale@irisa.fr>

Latest version

https://gitlab.inria.fr/glose/flight-controller-language-demonstrator/tree/master/documentation

logo cnrs
logo inria
logo safran

Please look at https://gitlab.inria.fr/glose/flight-controller-language-demonstrator for all the software sources, model example and this document sources.

The version used while producing this document is available at https://gitlab.inria.fr/glose/flight-controller-language-demonstrator/-/tags/2020-04.

The latest (possibly updated) online version of this document is also available as html or as pdf

This document presents the demonstrator illustrating the technologies involved in the WP2 of the GLOSE project and the associated use case language.

The demonstrator provides generals guidelines about how to use GEMOC technologies in order to design and implement a modeling language and its corresponding modeling environment.

The modeling environment provided by the demonstrator covers several concerns such as:

  • Model edition (including textual and graphical edition)

  • Model execution (including model debugging).

The document: DP1.1: Modeling environment for Flight Control Management, focuses on how to develop and use a modeling environment. The document DP1.2: Simulation and Compilation Environment for Flight Control Management focuses on model execution, model debugging, model animation, and compilation. This document DP2.1: Execution and Simulation Environment for Flight Control Management with concurrent execution extends DP1.2 with concurrency concerns. The document DP3.1: Source model for the case studies presents example Flight Control Language models.


The demonstrator is illustrated on a realistic language: a language for designing drone flight controllers.

As explained in https://download.eclipse.org/gemoc/docs/nightly/index.html , building the modeling environment for a language involves two mains roles: language engineers and modelers.

  • Language engineers design executable DSLs using metalanguages and implement modeling environments.

  • Modelers are the users of the resulting modeling environment. They build models using the modeling language,and they analyze and execute them using the other tools of the environment.

The GEMOC Studio used to develop the demonstrator offers dedicated workspaces and tooling for each of these roles that are referenced as GEMOC Language workbench for the tools for language engineers and GEMOC Modeling Workbench for the tools for modelers.

1. Deliverables

Deliverables of this demonstrator are produced as a set of videos, a git repository and a summary document. As they contribute to a global demonstration, they are presented globally instead of trying to strictly map to the D.1.1, D1.2, D2.1, D3.1 structure.

1.1. Videos

The videos of the demonstrator are split as follow:

  • Video Part 1. Building Editors, (for DP1.1 and DP3.1)

  • Video Part 2. Specifying Behavior, (for DP1.2)

  • Video Part 3. Animation/Debugging, (for DP1.2)

  • Video Part 4. Advanced Behavior with Concurrency, (for DP2.1)

  • Video Part 5. Model-specific Views, (complement for DP1.2)

1.2. Git repository

See https://gitlab.inria.fr/glose/flight-controller-language-demonstrator#user-content-repository-content for a list of all major folders in the git repository, an overview of their content and use in the deliverables.

The tagged repository used for writing this document is available at the following url:

2. Deliverable items specifically done for D2.1

This section identifies the parts relative to this deliverable D2.1 in the Videos and the git repository

The Video Part 3. Advanced Behavior with Concurrency was specifically designed to cover the explanation about how to create and use a Simulation and Compilation Environment for Flight Control Management extended with concurrency.

The following folders in the git repository contains the code used for D2.1

.
├── fcl-implementations
│   ├── commons
│   │   │     # plugins used by at least 2 engines
│   │   ├── fr.cnrs.luchogie.oscilloscup
│   │   │     # plugin that contains the base lib to display an oscilloscup view
│   │   ├── fr.inria.glose.fcl.k3based.addons
│   │   │     # plugin that offers the engine addons for K3 based engine (ie. K3FCL and MoccmlFCL)
│   │   └── org.javafmi
│   │   │     # plugin that contains the jar for connecting to FMU
│   ├── fcl
│   │   │     # implementation of FCL metamodel, text editor and graphical editor ( used in DP1.1)
│   │   │     # all engine implementations have a dependency to this
│   │   ├── fr.inria.glose.fcl.design       # graphical editor
│   │   ├── fr.inria.glose.fcl.dsml         # gemoc language (used in Melange version)
│   │   ├── fr.inria.glose.fcl.feature
│   │   ├── fr.inria.glose.fcl.model        # metamodel
│   │   ├── fr.inria.glose.fcl.model.edit
│   │   ├── fr.inria.glose.fcl.xtext        # textual editor
│   │   ├── fr.inria.glose.fcl.xtext.ide
│   │   ├── fr.inria.glose.fcl.xtext.tests
│   │   ├── fr.inria.glose.fcl.xtext.ui
│   │   └── fr.inria.glose.fcl.xtext.ui.tests
│   ├── k3fcl
│   │   ├── fr.inria.glose.fcl.k3fcl.k3dsa
│   │   │     # K3 aspects ( used in DP1.2 AND in DP2.1)
│   │   └── fr.inria.glose.fcl.k3fcl.xdsml.design   # Sirius animation ( used in DP1.2 AND in DP2.1)
│   ├── moccmlfcl
│   │   │     # implementation of FCL behavior using GEMOC Moccml Engine (concurrent) ( mainly used in DP2.1)
│   │   ├── fr.inria.glose.fcl.moccmlfcl.dse            # MOCC (Model of Computation and Concurrency) for FCL
│   │   ├── fr.inria.glose.fcl.moccmlfcl.feature
│   │   ├── fr.inria.glose.fcl.moccmlfcl.mocc           # MOCC library
│   │   └── fr.inria.glose.fcl.moccmlfcl.xdsml          # GEMOC language