SiriusCon 2015 - Breathe Life into Your Designer!

Post on 11-Apr-2017

664 views 4 download

Transcript of SiriusCon 2015 - Breathe Life into Your Designer!

With Sirius & GEMOC

Mélanie Bats @melaniebatsOBEO

Jérôme Le NoirTHALES

Breathe Life Into Your Designer!

(Domain specific) Models

Capella

https://www.eclipse.org/sirius/gallery.html

Structural models

Behavioral models

Business Processes, Orchestrations, Functional chains, Activities, Protocols, Scenarios...

Step 12Step 1

Model execution

Execution

Analysis of Behavioral Models● Early V&V of behavioral properties

● Software engineering, systems engineering, enterprise architecture, scientific

modeling...

Model Debugging

Model Debugging

Model Debugging

Model Debugging

Model Debugging

Model Debugging

Model Debugging

Model Debugging

Model Debugging

Model Debugging

Model Debugging

Model Debugging

Model Debugging● Traversing step forward the states reached by the model through the application

of the interpreter

● Intuitive model comprehension technique

○ No abstraction gap

○ Better turn-arounds

→ Fast convergence towards an acceptable design

How To Get Your Own (Domain-Specific) Debugger ?

Gemoc ANR project

“A Language Workbench for concurrent

execution and simulation of

heterogeneous models”

http://gemoc.org/ins

Gemoc Initiative

http://gemoc.org

Animating Arduino Designer

A simple Eclipse based tooling

Arduino DSL

Demo

Your own debugger recipe

1. Define the interpreter

2. Define the animator

Executable DSL

Interpreter

Model Animator (simulator.odesign)

Model Editor (arduino.odesign)

Eclipse Debug

Control panel

Domain Model (EMF)

Breakpoints

Animator

parameterizes

Debugger

Stack frame configuration

Variables configuration

Stack frame

Variables

controls

provided by the GEMOC Frameworkspecific to Arduino Designerexisting Eclipse components

Arduino simulator2 new plugins:

● fr.obeo.dsl.arduino.simulator

● fr.obeo.dsl.arduino.simulator.design

------------------------------------------------------------

Language files blank comment code

------------------------------------------------------------

Java 14 229 318 1185

XML 5 0 0 329

Maven 2 12 18 54

------------------------------------------------------------

SUM: 21 241 336 1568

------------------------------------------------------------

Interpreter

Debug Controller

Animator

simulator.odesign

Animator

simulator.odesign

customizing

arduino.odesign

Animator● Contributing actions

Animator● Contributing actions

● Adapting style

That’s all folks!

Leverage the animation framework

Leverage the animation framework● Encapsulate step over/into/return in transactions

Leverage the animation framework● Encapsulate step over/into/return in transactions

● Bridge the Eclipse Debug APIs and the EMF APIs

Leverage the animation framework● Encapsulate step over/into/return in transactions

● Bridge the Eclipse Debug APIs and the EMF APIs

● Transmit events and requests

Leverage the animation framework● Encapsulate step over/into/return in transactions

● Bridge the Eclipse Debug APIs and the EMF APIs

● Transmit events and requests

● Initialize the tooling extension

Leverage the animation framework● Encapsulate step over/into/return in transactions

● Bridge the Eclipse Debug APIs and the EMF APIs

● Transmit events and requests

● Initialize the tooling extension

● Provide off-the-shelf ecore model for runtime data

Ecore model for runtime data

Launch configurations

Leverage the simulation framework

Leverage the simulation framework● Use Xtend/Kermeta to define the interpreter

Leverage the simulation framework● Use Xtend/Kermeta to define the interpreter

● A generic execution engine

● A generic control panel and timeline

Aspects

Executable DSL

Interpreter

Model Animator (simulator.odesign)

Model Editor (arduino.odesign)

Eclipse Debug

Control panel

Domain Model (EMF)

Breakpoints

Animator

parameterizes

Debugger

Stack frame configuration

Variables configuration

Stack frame

Variables

controls

provided by the GEMOC Frameworkspecific to Arduino Designerexisting Eclipse components

Executable DSL

Execution engine

Model Animator (simulator.odesign)

Model Editor (arduino.odesign)

Eclipse Debug

Control panel

Domain Model (EMF)

Breakpoints

Animator

parameterizes

Debugger

Stack frame

Variables

controls

Model Interpreter(K3)

Xtend

parameterizes

Stack frame configuration

Variables configuration

provided by the GEMOC Frameworkspecific to Arduino Designerexisting Eclipse components

Executable DSL

Execution engine

Model Animator (simulator.odesign)

Model Editor (arduino.odesign)

Eclipse Debug

Control panel

Domain Model (EMF)

Breakpoints

Animator

parameterizes

Debugger

Stack frame

Variables

controls

Model Interpreter(K3)

Xtend

parameterizes

Timeline

Stack frame configuration

Variables configuration

provided by the GEMOC Frameworkspecific to Arduino Designerexisting Eclipse components

Arduino simulator based on simulation framework2 new plugins:

● org.gemoc.arduino.operationalsemantics

● fr.obeo.dsl.arduino.simulator.design

------------------------------------------------------------

Language files blank comment code

------------------------------------------------------------

Xtend 2 35 1 413

Java 3 34 4 178

XML 2 0 0 329

------------------------------------------------------------

SUM: 7 69 5 920

------------------------------------------------------------

Demo

Leverage the Model Debugging

Executable DSL

Execution engine

Model Animator (simulator.odesign)

Model Editor (arduino.odesign)

Eclipse Debug

Control panel

Domain Model (EMF)

Breakpoints

Animator

parameterizes

Debugger

Stack frame

Variables

controls

Model Interpreter(K3)

Xtend

parameterizes

Timeline

Stack frame configuration

Variables configuration

provided by the GEMOC Frameworkspecific to Arduino Designerexisting Eclipse components

Executable DSL

Execution engine

Model Animator (simulator.odesign)

Model Editor (arduino.odesign)

Eclipse Debug

Control panel

Domain Model (EMF)

Breakpoints

Animator

parameterizes

Debugger

Stack frame

Variables

controls

Model Interpreter(K3)

Xtend

parameterizes

Trace managerTimeline

Stack frame configuration

Variables configuration

Traces

Leverage the Model Debugging● Relies on an execution trace to revert the executed model into a prior state

● Forward/backward navigation into the execution trace

○ No record & replay

○ (similar) Replay

Supporting Efficient and Advanced Omniscient Debugging for xDSMLs

(Erwan Bousse, Jonathan Corley, Benoit Combemale, Jeff Gray, Benoit Baudry)

In 8th International Conference on Software Language Engineering (SLE 2015), ACM, 2015.

https://hal.inria.fr/hal-01182517

Capella

How to coordinate heterogeneous models ?

xCapella Data flowCoordination Specification

xCapella Mode Automata

Data Flow Animator (animator.odesign)

Capella Mode Automata (EMF)

Language Interface

Capella Data flow (EMF)

Language Interface

Mode Automata AnimatorxCapella

Model Interpreter Model Interpreter

xCapella : An industrial case study

Execution engine

Sirius Animator framework

xCapella Data flow

parameterizes (Coordination model)

Timeline

B-COoL

Coordination Specification

parameterizes

MoCCML

xCapella Mode Automata

Melange (K3 AL )

Data Flow Animator (animator.odesign)

Capella Mode Automata (EMF)

Execution engine

Sirius Animator framework

Language Interface

Capella Data flow (EMF)

Heterogeneous Coordination engine

Language Interface

Timeline

Mode Automata Animator

parameterizes parameterizes

xCapella

GEL

parameterizes

Model Interpreter Model Interpreter

Debugger

Trace manager

Timeline

parameterizes

MoCCML

xCapella Mode Automata

Model interpreter

Mapping

MoCC

Execution Data & Functions

Mode Automata Animator (animator.

odesign)

Graphical Model Editor

(Mode Automata.odesign)

Abstract Syntax(ModeAutomata.ecore)

Melange (K3 AL)

Sirius Animator framework

Execution engine

GEL

Executionfunction

Executiondatum

Execution Function & datum

Mapping & MoCC

Animator

xCapella Mode Automata Demonstration

In a nutshell1. Model debugging

→ Quick results, easy to integrate, execution control, analysis capabilities

In a nutshell1. Model debugging

→ Quick results, easy to integrate, execution control, analysis capabilities

2. Industrial case study : xCapella

○ Define the behavioral semantics of mode automata language

○ Customization of each language graphical notation for animation

○ Integration of the GEMOC execution engine and the Sirius animator framework into the Capella

industrial engineering workbench

○ The experiments result in a prototype (TRL 3) named xCapella, an extension of Capella that

supports the execution and animation of behavioral models.

Introducing Sirius Labhttp://www.eclipse.org/sirius/lab.html

Generic technologies (EPL) which have proven

helpful and are looking for an interest to bring it at

full maturity level.

https://github.com/SiriusLab

To be continued● Try executable Arduino Designer v0.1.x

● Read the GEMOC Publications

● Join the GEMOC Initiative

● Get in touch with us to breathe life into your designer

Thanks! Questions?

Mélanie Bats @melaniebatsObeo

Jérôme Le NoirTHALES

Get the slides :

http://fr.slideshare.net/melbats/siriuscon-2015-breathe-life-into-your-designer