73
With Sirius & GEMOC Mélanie Bats @melaniebats OBEO Jérôme Le Noir THALES Breathe Life Into Your Designer!

SiriusCon 2015 - Breathe Life into Your Designer!

  • Upload
    melbats

  • View
    664

  • Download
    4

Embed Size (px)

Citation preview

Page 1: SiriusCon 2015 - Breathe Life into Your Designer!

With Sirius & GEMOC

Mélanie Bats @melaniebatsOBEO

Jérôme Le NoirTHALES

Breathe Life Into Your Designer!

Page 2: SiriusCon 2015 - Breathe Life into Your Designer!

(Domain specific) Models

Capella

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

Page 3: SiriusCon 2015 - Breathe Life into Your Designer!

Structural models

Page 4: SiriusCon 2015 - Breathe Life into Your Designer!

Behavioral models

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

Page 5: SiriusCon 2015 - Breathe Life into Your Designer!

Step 12Step 1

Model execution

Execution

Page 6: SiriusCon 2015 - Breathe Life into Your Designer!

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

● Software engineering, systems engineering, enterprise architecture, scientific

modeling...

Page 7: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 8: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 9: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 10: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 11: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 12: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 13: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 14: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 15: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 16: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 17: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 18: SiriusCon 2015 - Breathe Life into Your Designer!

Model Debugging

Page 19: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 20: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 21: SiriusCon 2015 - Breathe Life into Your Designer!

Gemoc ANR project

“A Language Workbench for concurrent

execution and simulation of

heterogeneous models”

http://gemoc.org/ins

Page 22: SiriusCon 2015 - Breathe Life into Your Designer!

Gemoc Initiative

http://gemoc.org

Page 23: SiriusCon 2015 - Breathe Life into Your Designer!

Animating Arduino Designer

Page 24: SiriusCon 2015 - Breathe Life into Your Designer!

A simple Eclipse based tooling

Page 25: SiriusCon 2015 - Breathe Life into Your Designer!

Arduino DSL

Page 26: SiriusCon 2015 - Breathe Life into Your Designer!

Demo

Page 27: SiriusCon 2015 - Breathe Life into Your Designer!

Your own debugger recipe

1. Define the interpreter

2. Define the animator

Page 28: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 29: SiriusCon 2015 - Breathe Life into Your Designer!

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

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

Page 30: SiriusCon 2015 - Breathe Life into Your Designer!

Interpreter

Page 31: SiriusCon 2015 - Breathe Life into Your Designer!

Debug Controller

Page 32: SiriusCon 2015 - Breathe Life into Your Designer!

Animator

simulator.odesign

Page 33: SiriusCon 2015 - Breathe Life into Your Designer!

Animator

simulator.odesign

customizing

arduino.odesign

Page 34: SiriusCon 2015 - Breathe Life into Your Designer!

Animator● Contributing actions

Page 35: SiriusCon 2015 - Breathe Life into Your Designer!

Animator● Contributing actions

● Adapting style

Page 36: SiriusCon 2015 - Breathe Life into Your Designer!

That’s all folks!

Page 37: SiriusCon 2015 - Breathe Life into Your Designer!

Leverage the animation framework

Page 38: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 39: SiriusCon 2015 - Breathe Life into Your Designer!

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

● Bridge the Eclipse Debug APIs and the EMF APIs

Page 40: SiriusCon 2015 - Breathe Life into Your Designer!

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

● Bridge the Eclipse Debug APIs and the EMF APIs

● Transmit events and requests

Page 41: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 42: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 43: SiriusCon 2015 - Breathe Life into Your Designer!

Ecore model for runtime data

Page 44: SiriusCon 2015 - Breathe Life into Your Designer!

Launch configurations

Page 45: SiriusCon 2015 - Breathe Life into Your Designer!

Leverage the simulation framework

Page 46: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 47: SiriusCon 2015 - Breathe Life into Your Designer!

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

● A generic execution engine

● A generic control panel and timeline

Page 48: SiriusCon 2015 - Breathe Life into Your Designer!

Aspects

Page 49: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 50: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 51: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 52: SiriusCon 2015 - Breathe Life into Your Designer!

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

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

Page 53: SiriusCon 2015 - Breathe Life into Your Designer!

Demo

Page 54: SiriusCon 2015 - Breathe Life into Your Designer!

Leverage the Model Debugging

Page 55: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 56: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 57: SiriusCon 2015 - Breathe Life into Your Designer!

Traces

Page 58: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 59: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 60: SiriusCon 2015 - Breathe Life into Your Designer!

Capella

Page 61: SiriusCon 2015 - Breathe Life into Your Designer!

How to coordinate heterogeneous models ?

Page 62: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 63: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 64: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 65: SiriusCon 2015 - Breathe Life into Your Designer!

Executionfunction

Executiondatum

Execution Function & datum

Page 66: SiriusCon 2015 - Breathe Life into Your Designer!

Mapping & MoCC

Page 67: SiriusCon 2015 - Breathe Life into Your Designer!

Animator

Page 68: SiriusCon 2015 - Breathe Life into Your Designer!

xCapella Mode Automata Demonstration

Page 69: SiriusCon 2015 - Breathe Life into Your Designer!

In a nutshell1. Model debugging

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

Page 70: SiriusCon 2015 - Breathe Life into Your Designer!

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.

Page 71: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 72: SiriusCon 2015 - Breathe Life into Your Designer!

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

Page 73: SiriusCon 2015 - 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