Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Incremental model compiler for executable UML

315 views

Published on

EclipseCon France 2016

Published in: Software
  • Be the first to comment

  • Be the first to like this

Incremental model compiler for executable UML

  1. 1. INCREMENTAL MODEL COMPILER FOR EXECUTABLE UML ÁKOS HORVÁTH, PHD MANAGING DIRECTOR
  2. 2. Executable Modeling – the birth of xUML-RT We are proud user of executable modeling! At an undisclosed Nordic telecommunication company Which standard are you using? UML-RT of course! xtUML of course! ?? We are proud user of UML executable modeling! ??
  3. 3. Executable UML Modeling approaches UML-RT • UML for Real Time • Capsule o For defining structure and behaviour • Capsule + Class + hierarchical state machines • Own state machine execution semantics • Supported by Papyrus- RT xtUML • Successor of Shlaer– Mellor method • Domain + Class + simple State machines • Special generalization semantics • Own state machine execution semantics • Supported by BridgePoint and (Papyrus-xtUML)
  4. 4. Executable UML Modeling approaches UML-RT • UML for Real Time • Capsule o For defining structure and behaviour • Capsule + Class + hierarchical state machines • Own state machine execution semantics • Supported by Papyrus- RT xtUML • Successor of Shlaer– Mellor method • Domain + Class + simple State machines • Special generalization semantics • Own state machine execution semantics • Supported by BridgePoint and (Papyrus-xtUML)
  5. 5. Executable Modeling – the birth of xUML-RT We are proud user of executable modeling! At an undisclosed Nordic telecommunication company I did not know that we’re using similar standards! We are proud user of executable modeling! Lets try to create a novel language that combines the two approaches! We are proud user of executable modeling! Lets call it xUML-RT!
  6. 6. Executable Modeling – the birth of xUML-RT We are proud user of executable modeling! At an undisclosed Nordic telecommunication company I did not know that you we’re using similar standards! We are proud user of executable modeling! Lets try to create a novel language that combines the two approaches We are proud user of executable modeling! Lets call it xUML-RT!
  7. 7. xUML-RT Model Compiler xUML-RT Incremental code-generation for xUML-RT End-to-end • Traceability support on model level • Incremental code generation Faster turn-around time (modify, generate, build) • For large systems 8h+ • Initial measurement  one order of magnitude faster for code generation Workflow based execution using (MWE2) Cpp Papyrus EMF-UML [EMF] Structure [EMF] Cpp structure [EMF] Behaviour [Xtext] C++ [source] Editor Platform configuration [source, XML] Compiler Platform [EMF]
  8. 8. xUML-RT Model Compiler xUML-RT Incremental code-generation for xUML-RT Cpp Papyrus EMF-UML [EMF] Structure [EMF] Cpp structure [EMF] Behaviour [Xtext] C++ [source] Editor Platform configuration [source, XML] Compiler Platform [EMF] End-to-end • Traceability support on model level • Incremental code generation Faster turn-around time (modify, generate, build) • For large systems 8h+ • Initial measurement  one order of magnitude faster for code generation Workflow based execution using (MWE2)
  9. 9. xUML-RT Model Compiler xUML-RT Incremental code-generation for xUML-RT Front-end agnostic model storage and processing On-the fly synchronization between EMF-UML and xUML-RT using VIATRA • Transaction aware synchronization points • Advanced EMF-UML support o Incremental evaluation of UML derived features o Querying UML profiles o https://wiki.eclipse.org/VIATRA/Integration/UMLSupport Cpp Papyrus EMF-UML [EMF] Structure [EMF] Cpp structure [EMF] Behaviour [Xtext] C++ [source] Editor Platform configuration [source, XML] Compiler Platform [EMF]
  10. 10. xUML-RT Model Compiler xUML-RT Incremental code-generation for xUML-RT Front-end agnostic model storage and processing On-the fly synchronization between EMF-UML and xUML-RT using VIATRA • Transaction aware synchronization points • Advanced EMF-UML support o Incremental evaluation of UML derived features o Querying UML profiles o https://wiki.eclipse.org/VIATRA/Integration/UMLSupport Cpp Papyrus EMF-UML [EMF] Structure [EMF] Cpp structure [EMF] Behaviour [Xtext] C++ [source] Editor Platform configuration [source, XML] Compiler Platform [EMF]
  11. 11. xUML-RT Model Compiler xUML-RT Incremenetal code-generation for xUML-RT Platform level optimizations • External library configuration • Template definition on model level o Platform specific data structures and libraries Reusability • Same xUML-RT model with multiple Platform instances • Easy extension due to MWE2 Cpp Papyrus EMF-UML [EMF] Structure [EMF] Cpp structure [EMF] Behaviour [Xtext] C++ [source] Editor Platform configuration [source, XML] Compiler Platform [EMF]
  12. 12. xUML-RT Model Compiler xUML-RT Incremenetal code-generation for xUML-RT Platform level optimizations • External library configuration • Template definition on model level o Platform specific data structures and libraries Reusability • Same xUML-RT model with multiple Platform instances • Easy extension due to MWE2 Cpp Papyrus EMF-UML [EMF] Structure [EMF] Cpp structure [EMF] Behaviour [Xtext] C++ [source] Editor Platform configuration [source, XML] Compiler Platform [EMF]
  13. 13. xUML-RT Model Compiler xUML-RT Incremenetal code-generation for xUML-RT Cpp Papyrus EMF-UML [EMF] Structure [EMF] Cpp structure [EMF] Behaviour [Xtext] C++ [source] Editor Platform configuration [source, XML] Compiler Platform [EMF] C++ source code • Support for query execution • Optimized container usage • Unity build Platform configuration • Execution environment • Interfaces with hand-coded components
  14. 14. xUML-RT Model Compiler xUML-RT Incremenetal code-generation for xUML-RT Cpp Papyrus EMF-UML [EMF] Structure [EMF] Cpp structure [EMF] Behaviour [Xtext] C++ [source] Editor Platform configuration [source, XML] Compiler Platform [EMF] C++ source code • Support for query execution • Optimized container usage • Unity build Platform configuration • Execution environment • Interfaces with hand-coded components
  15. 15. Incremental query engine for EMF • Declarative language • Incremental, live queries • Highly scalable Advanced support for • On-the-fly validation • Custom views • Traceability • Derived features Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level features • Complex event processing • Design space exploration • Incremental transform. Based on the VIATRA query and transformation framework Transformatio n Official Eclipse member 4 Project co-leads 14 Eclipse committers Tool integration with: Papyrus UML, Sirius, RMF, Capella, ARTOP, mbeddr Query
  16. 16. Incremental query engine for EMF • Declarative language • Incremental, live queries • Highly scalable Advanced support for • On-the-fly validation • Custom views • Traceability • Derived features Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level features • Complex event processing • Design space exploration • Incremental transform. Based on the VIATRA query and transformation framework Transformatio n Tool integration with: Papyrus UML, Sirius, RMF, Capella, ARTOP, mbeddr Query Official Eclipse member 4 Project co-leads 14 Eclipse committers
  17. 17. Incremental query engine for EMF • Declarative language • Incremental, live queries • Highly scalable Advanced support for • On-the-fly validation • Custom views • Traceability • Derived features Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level features • Complex event processing • Design space exploration • Incremental transform. Based on the VIATRA query and transformation framework Transformatio n Tool integration with: Papyrus UML, Sirius, RMF, Capella, ARTOP, mbeddr Query Official Eclipse member 4 Project co-leads 14 Eclipse committers
  18. 18. Incremental query engine for EMF • Declarative language • Incremental, live queries • Highly scalable Advanced support for • On-the-fly validation • Custom views • Traceability • Derived features Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level features • Complex event processing • Design space exploration • Incremental transform. Based on the VIATRA query and transformation framework Transformatio n Query Official Eclipse member 4 Project co-leads 14 Eclipse committers Tool integration with: Papyrus UML, Sirius, RMF, Capella, ARTOP, mbeddr
  19. 19. Conclusions Initial version is out • Model compiler https://github.com/IncQueryLabs/EMDW-MC o Out of the box compatibility with CDT • Simulator http://modelexecution.eltesoft.hu/ Model Compiler frontend integrated into Papyrus Built on VIATRA Your contributions (feedback, forum posts, ideas, bugzillas, patches) are very welcome!
  20. 20. http://www.eclipse.org/viatra/ http://www.incquerylabs.com/ info@incquerylabs.com Tel: +36 70 633 3973 Email: akos.horvath@incquerylabs.com @IncQueryLabs https://www.facebook.com/incquerylabs / https://www.linkedin.com/company/incquery-labs- ltd- https://github.com/IncQueryLabs/EMDW- MC

×