You have your shiny new modeling language up and running thanks to the Eclipse Modeling Technologies and you built a powerful graphical editor with Sirius to support it. But how can you see what is going on when a model is executed? Don't you need to debug your design in some way? Wouldn't you want to see your editors being animated directly within your modeling environment based on execution traces or simulator results?
In this talk, we will present Sirius Animator, an add-on to Sirius that provides you a tool- supported approach to complement a modeling language with an execution semantics and a graphical description of an animation layer. The execution semantics is defined thanks to ALE, an Action Language for EMF integrated into Ecore Tools to modularly implement the bodies of your EOperations, and the graphical description of the animation layer is defined thanks to Sirius. From both inputs, Sirius Animator automatically provides an advanced and extensible environment for model simulation, animation and debugging, on top of the graphical editor of Sirius and the debug UI of Eclipse. To illustrate the overall approach, we will demonstrate the ability to seamlessly extend Arduino Designer, in order to provide an advanced debugging environment that includes graphical animation, forward/backward step-by-step, breakpoint definition, etc.
Model Simulation, Graphical Animation, and Omniscient Debugging with EcoreTools and Sirius Animator
1. SiriusCon 2017, Paris, FR.
Joint work with the DiverSE team (IRISA & Inria), Obeo, and the GEMOC Initiative at large
Model Simulation, Graphical Animation, and Omniscient Debugging
with (EcoreTools and) Sirius Animator
BENOIT COMBEMALE
PROFESSOR, UNIV. TOULOUSE, FRANCE
HTTP://COMBEMALE.FR
BENOIT.COMBEMALE@IRIT.FR
@BCOMBEMALE
2. SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
Model Execution: Why Should I care?
Various engineering: software engineering, systems
engineering, enterprise architecture, scientific
modeling...
Various domains: Business Processes, Orchestrations,
Functional chains, Activities, Protocols, Scenarios...
Various objectives: dynamic analysis, design-space
exploration, tradeoff analysis, models@runtime
breathe life into your
(domain-specific) behavioral models
4. SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
Model Debugging: Why Should I care?
Intuitive model comprehension technique
No abstraction gap
Better turn-arounds
Stepwise Debugging: find the cause of a defect by manually
observing and controlling execution forward
Omniscient Debugging includes backward time traveling
typically rely on an execution trace to store previous states
Resume
Stop
Pause
Step into
Step over
Step out
Visualization of
the current state
Breakpoints
11. SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
Ecore Tools: ALE
An Action Language for EMF
To complement an Ecore metamodel with Runtime Data and Eoperation impl.
To define any Interpreter, compiler, model transformation, analysis tools, etc…
→ Implement an interpreter in the form of a visitor over the Ecore metamodel
ALE extends AQL (Acceleo Query Language)
Provides side effects and additional complex control structures
Main characteristics:
Interpreted (though, a compiler also exist)
Static typing, type inference
Open class support
Integrated into EcoreTools
Define behavior over an Ecore metamodel
Modular specification (thanks to Sirius layers and open class)
http://gemoc.org/ale-lang
12. SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
Ecore Tools: ALE
open class arduino.Block {
def void execute() {
for (i in self.instructions) {
i.execute();
}
}
}
http://gemoc.org/ale-lang
open class arduino.If {
@step
def void execute() {
if (self.condition.evaluate()) {
self.block.execute();
} else {
if (self.elseBlock != null) {
self.elseBlock.execute();
}
}
}
}
15. SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
SiriusAnimator
Sirius to define the animator by extension of the tooling
description
A generative approach for the trace manager
A generic execution engine
Encapsulate step over/into/return in transactions
Transmit events and requests
A generic control panel and (multi-dimensional) timeline
A Sirius Animation Runtime
Bridge the Eclipse Debug APIs and the EMF APIs
Initialize the tooling extension
19. SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
Take Away Messages
Model execution and debugging are key for behavioral modeling
Proposed approach
EcoreTools/Ecore to edit domain Models
EcoreTools/ALE to implement Eoperation’s bodies
SiriusAnimator to design graphical animation layers
Leverages on time-honored concepts from academia
Motivated, supported, and maturated by established industries
Distributed as Open-Source Software through Eclipse projects
To Be Continued...
Source code and documentation:
http://gemoc.org/ale-lang and https://www.eclipse.org/sirius/lab.html
Publications: http://gemoc.org/publications.html
Get in touch!
20. SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
Technology Maturity
EcoreTools/Ecore:
well-proven Eclipse technology
EcoreTools/ALE:
under code review in EcoreTools
ready for pilot projects
SiriusAnimator:
ready for pilot projects
22. SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
The GEMOC Studio
-
22
Design and integrate your
executable DSMLs
http://gemoc.org/studio
soon
http://eclipse.org/gemoc
Language
Workbench
Modeling
Workbench
Edit, simulate and animate your
heterogeneous models
24. SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
Perspectives
Documentation, tutorials and pilot projects
Performance evaluation (and improvement)
Support of other metaprogramming approaches
Contribute to LSP to standardize the protocol between
dynamic language services.
Live and collaborative (meta)modeling
Minimize the round trip between the DSL specification, the
model, and its application (interpretation/compilation)
Model experiencing environments (MEEs): what-if/for scenarios,
trade-off analysis, design-space exploration
25.
26. Model Simulation, Graphical Animation, and Omniscient Debugging with Sirius Animator
Abstract.
You have your shiny new modeling language up and running thanks to the Eclipse
Modeling Technologies and you built a powerful graphical editor with Sirius to support it.
But how can you see what is going on when a model is executed? Don't you need to debug
your design in some way? Wouldn't you want to see your editors being animated directly
within your modeling environment based on execution traces or simulator results?
In this talk, we will present Sirius Animator, an add-on to Sirius that provides you a tool-
supported approach to complement a modeling language with an execution semantics and
a graphical description of an animation layer. The execution semantics is defined thanks to
ALE, an Action Language for EMF integrated into Ecore Tools to modularly implement the
bodies of your EOperations, and the graphical description of the animation layer is defined
thanks to Sirius. From both inputs, Sirius Animator automatically provides an advanced and
extensible environment for model simulation, animation and debugging, on top of the
graphical editor of Sirius and the debug UI of Eclipse. To illustrate the overall approach, we
will demonstrate the ability to seamlessly extend Arduino Designer, in order to provide an
advanced debugging environment that includes graphical animation, forward/backward
step-by-step, breakpoint definition, etc.
SiriusAnimator
Benoit Combemale @ SiriusCon’17, Nov. 2017
27. Hack your own languages?
Join us in the SM@RT group of the CNRS IRIT lab, in
a freshly rebuilt campus of the warm city of Toulouse!
Open Positions
for PhD and Postdoc
BENOIT COMBEMALE
PROFESSOR, UNIV. TOULOUSE, FRANCE
HTTP://COMBEMALE.FR
BENOIT.COMBEMALE@IRIT.FR
@BCOMBEMALE