Upload
melbats
View
664
Download
4
Embed Size (px)
Citation preview
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
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