INCREMENTAL MODEL COMPILER
FOR EXECUTABLE UML
ÁKOS HORVÁTH, PHD
MANAGING DIRECTOR
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!
??
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)
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)
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!
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!
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]
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)
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]
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]
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]
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]
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
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
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
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
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
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
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!
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

Incremental model compiler for executable UML

  • 1.
    INCREMENTAL MODEL COMPILER FOREXECUTABLE UML ÁKOS HORVÁTH, PHD MANAGING DIRECTOR
  • 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.
    Executable UML Modelingapproaches 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.
    Executable UML Modelingapproaches 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.
    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.
    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.
    xUML-RT Model Compiler xUML-RT Incrementalcode-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.
    xUML-RT Model Compiler xUML-RT Incrementalcode-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.
    xUML-RT Model Compiler xUML-RT Incrementalcode-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.
    xUML-RT Model Compiler xUML-RT Incrementalcode-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.
    xUML-RT Model Compiler xUML-RT Incremenetalcode-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.
    xUML-RT Model Compiler xUML-RT Incremenetalcode-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.
    xUML-RT Model Compiler xUML-RT Incremenetalcode-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.
    xUML-RT Model Compiler xUML-RT Incremenetalcode-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.
    Incremental query engine forEMF • 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.
    Incremental query engine forEMF • 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.
    Incremental query engine forEMF • 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.
    Incremental query engine forEMF • 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.
    Conclusions Initial version isout • 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.
    http://www.eclipse.org/viatra/ http://www.incquerylabs.com/ info@incquerylabs.com Tel: +36 70633 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