ncremental model compiler uml - eclipsecon 2020 · model transformation framework • event-based +...
TRANSCRIPT
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 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!
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
• Simulatorhttp://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/
Tel: +36 70 633 3973
Email: [email protected]
@IncQueryLabs
https://www.facebook.com/incquerylabs/
https://www.linkedin.com/company/incquery-labs-ltd-
https://github.com/IncQueryLabs/EMDW-MC