EclipseCon Eu 2015 - Breathe life into your Designer!

95
With Sirius & GEMOC Mélanie Bats @melaniebats Obeo Benoit Combemale @bcombemale INRIA and Univ. Rennes 1 Breathe Life Into Your Designer!

Transcript of EclipseCon Eu 2015 - Breathe life into your Designer!

Page 1: EclipseCon Eu 2015 - Breathe life into your Designer!

With Sirius & GEMOC

Mélanie Bats @melaniebatsObeo

Benoit Combemale@bcombemale

INRIA and Univ. Rennes 1

Breathe Life Into Your Designer!

Page 2: EclipseCon Eu 2015 - Breathe life into your Designer!

(Domain specific) Models

Capella

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

Page 3: EclipseCon Eu 2015 - Breathe life into your Designer!

Structural models

Page 4: EclipseCon Eu 2015 - Breathe life into your Designer!

Behavioral models

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

Page 5: EclipseCon Eu 2015 - Breathe life into your Designer!

Step 12Step 1

Model execution

Execution

Page 6: EclipseCon Eu 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: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 8: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 9: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 10: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 11: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 12: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 13: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 14: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 15: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 16: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 17: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 18: EclipseCon Eu 2015 - Breathe life into your Designer!

Model Debugging

Page 19: EclipseCon Eu 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: EclipseCon Eu 2015 - Breathe life into your Designer!

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

Page 21: EclipseCon Eu 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: EclipseCon Eu 2015 - Breathe life into your Designer!

Gemoc Initiative

http://gemoc.org

Page 23: EclipseCon Eu 2015 - Breathe life into your Designer!

Animating Arduino Designer

Page 24: EclipseCon Eu 2015 - Breathe life into your Designer!

A simple Eclipse based tooling

Page 25: EclipseCon Eu 2015 - Breathe life into your Designer!

Arduino DSL

Page 26: EclipseCon Eu 2015 - Breathe life into your Designer!

Demo

Page 27: EclipseCon Eu 2015 - Breathe life into your Designer!

Demo

… with no cat

Page 28: EclipseCon Eu 2015 - Breathe life into your Designer!

Your own debugger recipe

1. Define the interpreter

2. Define the animator

Page 29: EclipseCon Eu 2015 - Breathe life into your Designer!

Arduino simulator2 new plugins:

● fr.obeo.dsl.arduino.simulator

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

Page 30: EclipseCon Eu 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 31: EclipseCon Eu 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 32: EclipseCon Eu 2015 - Breathe life into your Designer!

Interpreter

Page 33: EclipseCon Eu 2015 - Breathe life into your Designer!

Interpreter

Page 34: EclipseCon Eu 2015 - Breathe life into your Designer!

Interpreter

Page 35: EclipseCon Eu 2015 - Breathe life into your Designer!

Interpreter

Page 36: EclipseCon Eu 2015 - Breathe life into your Designer!

Debug Controller

Page 37: EclipseCon Eu 2015 - Breathe life into your Designer!

Debug Controller

Page 38: EclipseCon Eu 2015 - Breathe life into your Designer!

Debug Controller

Page 39: EclipseCon Eu 2015 - Breathe life into your Designer!

Debug Controller

Page 40: EclipseCon Eu 2015 - Breathe life into your Designer!

Our debugger

Page 41: EclipseCon Eu 2015 - Breathe life into your Designer!

Our debugger

Page 42: EclipseCon Eu 2015 - Breathe life into your Designer!

Our debugger

Page 43: EclipseCon Eu 2015 - Breathe life into your Designer!

Our debugger

Page 44: EclipseCon Eu 2015 - Breathe life into your Designer!

Our debugger

Page 45: EclipseCon Eu 2015 - Breathe life into your Designer!

Current instruction

Page 46: EclipseCon Eu 2015 - Breathe life into your Designer!

Current instruction

Page 47: EclipseCon Eu 2015 - Breathe life into your Designer!

Current instruction

Page 48: EclipseCon Eu 2015 - Breathe life into your Designer!

Update variables

Page 49: EclipseCon Eu 2015 - Breathe life into your Designer!

Animator

simulator.odesign

Page 50: EclipseCon Eu 2015 - Breathe life into your Designer!

Animator

simulator.odesign

customizing

arduino.odesign

Page 51: EclipseCon Eu 2015 - Breathe life into your Designer!

Animator● Contributing actions

Page 52: EclipseCon Eu 2015 - Breathe life into your Designer!

Animator● Contributing actions

● Adapting style

Page 53: EclipseCon Eu 2015 - Breathe life into your Designer!

That’s all folks!

Page 54: EclipseCon Eu 2015 - Breathe life into your Designer!

Leverage the animation framework

Page 55: EclipseCon Eu 2015 - Breathe life into your Designer!

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

Page 56: EclipseCon Eu 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 57: EclipseCon Eu 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 58: EclipseCon Eu 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 59: EclipseCon Eu 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 60: EclipseCon Eu 2015 - Breathe life into your Designer!

Ecore model for runtime data

Page 61: EclipseCon Eu 2015 - Breathe life into your Designer!

Ecore model for runtime data

Page 62: EclipseCon Eu 2015 - Breathe life into your Designer!

Ecore model for runtime data

Page 63: EclipseCon Eu 2015 - Breathe life into your Designer!

Ecore model for runtime data

Page 64: EclipseCon Eu 2015 - Breathe life into your Designer!

Ecore model for runtime data

Page 65: EclipseCon Eu 2015 - Breathe life into your Designer!

Ecore model for runtime data

Page 66: EclipseCon Eu 2015 - Breathe life into your Designer!

Ecore model for runtime data

Page 67: EclipseCon Eu 2015 - Breathe life into your Designer!

Launch configurations

Page 68: EclipseCon Eu 2015 - Breathe life into your Designer!

Leverage the simulation framework

Page 69: EclipseCon Eu 2015 - Breathe life into your Designer!

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

Page 70: EclipseCon Eu 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 71: EclipseCon Eu 2015 - Breathe life into your Designer!

Aspects

Page 72: EclipseCon Eu 2015 - Breathe life into your Designer!

Aspects

Page 73: EclipseCon Eu 2015 - Breathe life into your Designer!

Aspects

Page 74: EclipseCon Eu 2015 - Breathe life into your Designer!

@Step

Page 75: EclipseCon Eu 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 76: EclipseCon Eu 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 77: EclipseCon Eu 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 78: EclipseCon Eu 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 79: EclipseCon Eu 2015 - Breathe life into your Designer!

Demo

… still with no cat

Page 80: EclipseCon Eu 2015 - Breathe life into your Designer!

Leverage the Model Debugging

Page 81: EclipseCon Eu 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 82: EclipseCon Eu 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 83: EclipseCon Eu 2015 - Breathe life into your Designer!

Traces

Page 84: EclipseCon Eu 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 85: EclipseCon Eu 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 86: EclipseCon Eu 2015 - Breathe life into your Designer!

Another example

See http://gemoc.org/ttc15

Debugging of Activity Diagrams

Page 87: EclipseCon Eu 2015 - Breathe life into your Designer!
Page 88: EclipseCon Eu 2015 - Breathe life into your Designer!

In a nutshell1. Leverage Animation Framework (POJO simulator)

○ Code the interpreter

○ Code the execution engine

→ Quick results, easy to integrate, minimum execution control

Page 89: EclipseCon Eu 2015 - Breathe life into your Designer!

In a nutshell1. Leverage Animation Framework (POJO simulator)

○ Code the interpreter

○ Code the execution engine

→ Quick results, easy to integrate, minimum execution control

2. Leverage Simulation Framework (Advanced simulator)

○ Code the interpreter

○ Use the generic execution engine

→ More analysis capabilities and rich execution control (timeline...)

Page 90: EclipseCon Eu 2015 - Breathe life into your Designer!

In a nutshell1. Leverage Animation Framework (POJO simulator)

○ Code the interpreter

○ Code the execution engine

→ Quick results, easy to integrate, minimum execution control

2. Leverage Simulation Framework (Advanced simulator)

○ Code the interpreter

○ Use the generic execution engine

→ More analysis capabilities and rich execution control (timeline...)

3. Leverage Model Debugging

○ Use the trace manager

→ Advanced trace management facilities

Page 91: EclipseCon Eu 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 92: EclipseCon Eu 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 93: EclipseCon Eu 2015 - Breathe life into your Designer!

http://www.siriuscon.org/

Page 94: EclipseCon Eu 2015 - Breathe life into your Designer!

Thanks! Questions?

Mélanie Bats @melaniebatsObeo

Benoit Combemale@bcombemale

INRIA and Univ. Rennes 1

Get the slides :

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

Page 95: EclipseCon Eu 2015 - Breathe life into your Designer!