model simulation, graphical animation, and omniscient debugging with ecoretools and sirius animator
TRANSCRIPT
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 COMBEMALEPROFESSOR, UNIV. TOULOUSE, FRANCE
HTTP://COMBEMALE.FR [email protected]@BCOMBEMALE
SiriusAnimatorBenoit 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
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
Model Execution (/Animation): Activity diagram
SiriusAnimatorBenoit 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
PauseStep into
Step overStep out
Visualization ofthe current state
Breakpoints
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
Model Debugging: Arduino designer
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
Required Tools
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
Required DevelopmentsNous ne pouvons pas afficher cette image pour l’instant.
Animator
HOW TO GET YOUROWN DEBUGGER ?
How to provide omniscient debuggingsupport to any executable domain-specific modeling language?
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
DIY: Arduino Designer
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
Ecore Tools: Graphical Edition of Ecore Models
SiriusAnimatorBenoit 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
SiriusAnimatorBenoit 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 {@stepdef void execute() {
if (self.condition.evaluate()) {self.block.execute();
} else {if (self.elseBlock != null) {
self.elseBlock.execute();}
}}
}
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
Ecore Tools: Hello World!
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
Ecore Tools: Going Further…
https://youtu.be/x4viqEFN7PU
SiriusAnimatorBenoit 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
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
SiriusAnimator
simulator.odesign customizing arduino.odesign: Contributing actions:
Adapting style:
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
SiriusAnimator: Debugging in Arduino Designer
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
SiriusAnimator on SiriusLab
SiriusAnimatorBenoit 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!
SiriusAnimatorBenoit 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
LOOKING AHEAD
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
The GEMOC Studio
-22
Design and integrate your executable DSMLs
http://gemoc.org/studio
soonhttp://eclipse.org/gemoc
LanguageWorkbench
ModelingWorkbench
Edit, simulate and animate your heterogeneous models
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
The GEMOC Studio
-23
http://gemoc.org/studio
SiriusAnimatorBenoit 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
Model Simulation, Graphical Animation, and Omniscient Debugging with Sirius Animator
Abstract.
You have your shiny new modeling language up and running thanks to the EclipseModeling 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 debugyour design in some way? Wouldn't you want to see your editors being animated directlywithin 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 anda graphical description of an animation layer. The execution semantics is defined thanks toALE, an Action Language for EMF integrated into Ecore Tools to modularly implement thebodies of your EOperations, and the graphical description of the animation layer is definedthanks to Sirius. From both inputs, Sirius Animator automatically provides an advanced andextensible environment for model simulation, animation and debugging, on top of thegraphical editor of Sirius and the debug UI of Eclipse. To illustrate the overall approach, wewill demonstrate the ability to seamlessly extend Arduino Designer, in order to provide anadvanced debugging environment that includes graphical animation, forward/backwardstep-by-step, breakpoint definition, etc.
SiriusAnimatorBenoit Combemale @ SiriusCon’17, Nov. 2017
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 COMBEMALEPROFESSOR, UNIV. TOULOUSE, FRANCE
HTTP://COMBEMALE.FR [email protected]@BCOMBEMALE