With Sirius & GEMOC
Mélanie Bats
@melaniebats
Obeo
Benoit Combemale
@bcombemale
INRIA and Univ. Rennes 1
Breathe Life Into...
(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...
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
● Int...
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/...
Gemoc Initiative
http://gemoc.org
Animating Arduino Designer
A simple Eclipse based tooling
Arduino DSL
Demo
Demo
… with no cat
Your own debugger recipe
1. Define the interpreter
2. Define the animator
Arduino simulator
2 new plugins:
● fr.obeo.dsl.arduino.simulator
● fr.obeo.dsl.arduino.simulator.design
Executable DSL
Interpreter
Model Animator
(simulator.odesign)
Model Editor (arduino.
odesign)
Eclipse Debug
Control panel
...
Arduino simulator
2 new plugins:
● fr.obeo.dsl.arduino.simulator
● fr.obeo.dsl.arduino.simulator.design
------------------...
Interpreter
Interpreter
Interpreter
Interpreter
Debug Controller
Debug Controller
Debug Controller
Debug Controller
Our debugger
Our debugger
Our debugger
Our debugger
Our debugger
Current instruction
Current instruction
Current instruction
Update variables
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 t...
Leverage the animation framework
● Encapsulate step over/into/return in transactions
● Bridge the Eclipse Debug APIs and t...
Leverage the animation framework
● Encapsulate step over/into/return in transactions
● Bridge the Eclipse Debug APIs and t...
Leverage the animation framework
● Encapsulate step over/into/return in transactions
● Bridge the Eclipse Debug APIs and t...
Ecore model for runtime data
Ecore model for runtime data
Ecore model for runtime data
Ecore model for runtime data
Ecore model for runtime data
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 c...
Aspects
Aspects
Aspects
@Step
Executable DSL
Interpreter
Model Animator
(simulator.odesign)
Model Editor (arduino.
odesign)
Eclipse Debug
Control panel
...
Executable DSL
Execution engine
Model Animator
(simulator.odesign)
Model Editor (arduino.
odesign)
Eclipse Debug
Control p...
Executable DSL
Execution engine
Model Animator
(simulator.odesign)
Model Editor (arduino.
odesign)
Eclipse Debug
Control p...
Arduino simulator based on simulation framework
2 new plugins:
● org.gemoc.arduino.operationalsemantics
● fr.obeo.dsl.ardu...
Demo
… still with no cat
Leverage the Model Debugging
Executable DSL
Execution engine
Model Animator
(simulator.odesign)
Model Editor (arduino.
odesign)
Eclipse Debug
Control p...
Executable DSL
Execution engine
Model Animator
(simulator.odesign)
Model Editor (arduino.
odesign)
Eclipse Debug
Control p...
Traces
Leverage the Model Debugging
● Relies on an execution trace to revert the executed model into a prior state
● Forward/back...
Supporting Efficient and Advanced Omniscient Debugging for xDSMLs
(Erwan Bousse, Jonathan Corley, Benoit Combemale, Jeff G...
Another example
See http://gemoc.org/ttc15
Debugging of Activity Diagrams
In a nutshell
1. Leverage Animation Framework (POJO simulator)
○ Code the interpreter
○ Code the execution engine
→ Quick ...
In a nutshell
1. Leverage Animation Framework (POJO simulator)
○ Code the interpreter
○ Code the execution engine
→ Quick ...
In a nutshell
1. Leverage Animation Framework (POJO simulator)
○ Code the interpreter
○ Code the execution engine
→ Quick ...
Introducing Sirius Lab
http://www.eclipse.org/sirius/lab.html
Generic technologies (EPL) which have proven
helpful and are...
To be continued
● Try executable Arduino Designer v0.1.x
● Read the GEMOC Publications
● Join the GEMOC Initiative
● Get i...
http://www.siriuscon.org/
Thanks! Questions?
Mélanie Bats
@melaniebats
Obeo
Benoit Combemale
@bcombemale
INRIA and Univ. Rennes 1
Get the slides :
h...
EclipseCon Eu 2015 - Breathe life into your Designer!
EclipseCon Eu 2015 - Breathe life into your Designer!
Prochain SlideShare
Chargement dans…5
×

EclipseCon Eu 2015 - Breathe life into your Designer!

974 vues

Publié le

You have your shiny new DSL up and running thanks to the Eclipse Modeling Technologies and you built a powerful tooling with graphical modelers, textual syntaxes or dedicated editors to support it. But how can you see what is going on when a model is executed ? Don't you need to simulate 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?

The GEMOC Research Project designed a methodology to bring animation and execution analysis to DSLs. The companion technologies required to put this in action are small dedicated components (all open-source) at a "proof of concept" maturity level extending proven components : Sirius, Eclipse Debug, Xtend making such features within the reach of Eclipse based tooling. The general intent regarding those OSS technologies is to leverage them within different contexts and contribute them to Eclipse once proven strong enough. The method covers a large spectrum of use cases from DSLs with a straightforward execution semantic to a combination of different DSLs with concurrent execution semantic. Any tool provider can leverage both the technologies and the method to provide an executable DSL and animated graphical modelers to its users enabling simulation and debugging at an early phase of the design.

This talk presents the approach, the technologies and demonstrate it through an example: providing Eclipse Debug integration and diagram animation capabilities for Arduino Designer (EPL) : setting breakpoints, stepping forward or backward in the execution, inspecting the variables states... We will walk you through the steps required to develop such features, the choices to make and the trade-offs involved. Expects live demos with simulated blinking leds and a virtual cat robot !

Publié dans : Logiciels
0 commentaire
2 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
974
Sur SlideShare
0
Issues des intégrations
0
Intégrations
33
Actions
Partages
0
Téléchargements
10
Commentaires
0
J’aime
2
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

EclipseCon Eu 2015 - Breathe life into your Designer!

  1. 1. With Sirius & GEMOC Mélanie Bats @melaniebats Obeo Benoit Combemale @bcombemale INRIA and Univ. Rennes 1 Breathe Life Into Your Designer!
  2. 2. (Domain specific) Models Capella https://www.eclipse.org/sirius/gallery.html
  3. 3. Structural models
  4. 4. Behavioral models Business Processes, Orchestrations, Functional chains, Activities, Protocols, Scenarios...
  5. 5. Step 12Step 1 Model execution Execution
  6. 6. Analysis of Behavioral Models ● Early V&V of behavioral properties ● Software engineering, systems engineering, enterprise architecture, scientific modeling...
  7. 7. Model Debugging
  8. 8. Model Debugging
  9. 9. Model Debugging
  10. 10. Model Debugging
  11. 11. Model Debugging
  12. 12. Model Debugging
  13. 13. Model Debugging
  14. 14. Model Debugging
  15. 15. Model Debugging
  16. 16. Model Debugging
  17. 17. Model Debugging
  18. 18. Model Debugging
  19. 19. 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
  20. 20. How To Get Your Own (Domain-Specific) Debugger ?
  21. 21. Gemoc ANR project “A Language Workbench for concurrent execution and simulation of heterogeneous models” http://gemoc.org/ins
  22. 22. Gemoc Initiative http://gemoc.org
  23. 23. Animating Arduino Designer
  24. 24. A simple Eclipse based tooling
  25. 25. Arduino DSL
  26. 26. Demo
  27. 27. Demo … with no cat
  28. 28. Your own debugger recipe 1. Define the interpreter 2. Define the animator
  29. 29. Arduino simulator 2 new plugins: ● fr.obeo.dsl.arduino.simulator ● fr.obeo.dsl.arduino.simulator.design
  30. 30. 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 Framework specific to Arduino Designer existing Eclipse components
  31. 31. Arduino simulator 2 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 ------------------------------------------------------------
  32. 32. Interpreter
  33. 33. Interpreter
  34. 34. Interpreter
  35. 35. Interpreter
  36. 36. Debug Controller
  37. 37. Debug Controller
  38. 38. Debug Controller
  39. 39. Debug Controller
  40. 40. Our debugger
  41. 41. Our debugger
  42. 42. Our debugger
  43. 43. Our debugger
  44. 44. Our debugger
  45. 45. Current instruction
  46. 46. Current instruction
  47. 47. Current instruction
  48. 48. Update variables
  49. 49. Animator simulator.odesign
  50. 50. Animator simulator.odesign customizing arduino.odesign
  51. 51. Animator ● Contributing actions
  52. 52. Animator ● Contributing actions ● Adapting style
  53. 53. That’s all folks!
  54. 54. Leverage the animation framework
  55. 55. Leverage the animation framework ● Encapsulate step over/into/return in transactions
  56. 56. Leverage the animation framework ● Encapsulate step over/into/return in transactions ● Bridge the Eclipse Debug APIs and the EMF APIs
  57. 57. Leverage the animation framework ● Encapsulate step over/into/return in transactions ● Bridge the Eclipse Debug APIs and the EMF APIs ● Transmit events and requests
  58. 58. 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
  59. 59. 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
  60. 60. Ecore model for runtime data
  61. 61. Ecore model for runtime data
  62. 62. Ecore model for runtime data
  63. 63. Ecore model for runtime data
  64. 64. Ecore model for runtime data
  65. 65. Ecore model for runtime data
  66. 66. Ecore model for runtime data
  67. 67. Launch configurations
  68. 68. Leverage the simulation framework
  69. 69. Leverage the simulation framework ● Use Xtend/Kermeta to define the interpreter
  70. 70. Leverage the simulation framework ● Use Xtend/Kermeta to define the interpreter ● A generic execution engine ● A generic control panel and timeline
  71. 71. Aspects
  72. 72. Aspects
  73. 73. Aspects
  74. 74. @Step
  75. 75. 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 Framework specific to Arduino Designer existing Eclipse components
  76. 76. 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 Framework specific to Arduino Designer existing Eclipse components
  77. 77. 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 Framework specific to Arduino Designer existing Eclipse components
  78. 78. Arduino simulator based on simulation framework 2 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 ------------------------------------------------------------
  79. 79. Demo … still with no cat
  80. 80. Leverage the Model Debugging
  81. 81. 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 Framework specific to Arduino Designer existing Eclipse components
  82. 82. 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 manager Timeline Stack frame configuration Variables configuration
  83. 83. Traces
  84. 84. 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
  85. 85. 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
  86. 86. Another example See http://gemoc.org/ttc15 Debugging of Activity Diagrams
  87. 87. In a nutshell 1. Leverage Animation Framework (POJO simulator) ○ Code the interpreter ○ Code the execution engine → Quick results, easy to integrate, minimum execution control
  88. 88. In a nutshell 1. 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...)
  89. 89. In a nutshell 1. 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
  90. 90. Introducing Sirius Lab http://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
  91. 91. 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
  92. 92. http://www.siriuscon.org/
  93. 93. Thanks! Questions? Mélanie Bats @melaniebats Obeo Benoit Combemale @bcombemale INRIA and Univ. Rennes 1 Get the slides : http://fr.slideshare.net/melbats/eclipsecon-eu-2015-breathe-life-into-your-designer

×