Upload
akos-horvath
View
154
Download
1
Embed Size (px)
Citation preview
INCREMENTAL MODEL COMPILERFOR EXECUTABLE UML
ÁKOS HORVÁTH, PHDMANAGING 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
• Revisited versio
n of UML based
executable modeling
• (Currently under development)
• Final goal is to become an OMG
standard
xUML-RT Model CompilerxUML-RT
Incremental code-generation for xUML-RT
End-to-end • Traceability support on model level• Incremental code generationFaster 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
PapyrusEMF-UML
[EMF]Structure
[EMF] Cpp structure
[EMF] Behaviour[Xtext]
C++ [source]
EditorPlatform
configuration[source, XML]
Compiler
Platform[EMF]
xUML-RT Model CompilerxUML-RT
Incremental code-generation for xUML-RT
Cpp
PapyrusEMF-UML
[EMF]Structure
[EMF] Cpp structure
[EMF] Behaviour[Xtext]
C++ [source]
EditorPlatform
configuration[source, XML]
Compiler
Platform[EMF]
End-to-end • Traceability support on model level• Incremental code generationFaster 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 CompilerxUML-RT
Incremental code-generation for xUML-RT
Front-end agnostic model storage and processingOn-the fly synchronization betweenEMF-UML and xUML-RT using VIATRA• Transaction aware synchronization points• Advanced EMF-UML support
o Incremental evaluation of UML derived featureso Querying UML profileso https://wiki.eclipse.org/VIATRA/Integration/UMLSupport
Cpp
PapyrusEMF-UML
[EMF]Structure
[EMF] Cpp structure
[EMF] Behaviour[Xtext]
C++ [source]
EditorPlatform
configuration[source, XML]
Compiler
Platform[EMF]
xUML-RT Model CompilerxUML-RT
Incremental code-generation for xUML-RT
Front-end agnostic model storage and processingOn-the fly synchronization betweenEMF-UML and xUML-RT using VIATRA• Transaction aware synchronization points• Advanced EMF-UML support
o Incremental evaluation of UML derived featureso Querying UML profileso https://wiki.eclipse.org/VIATRA/Integration/UMLSupport
Cpp
PapyrusEMF-UML
[EMF]Structure
[EMF] Cpp structure
[EMF] Behaviour[Xtext]
C++ [source]
EditorPlatform
configuration[source, XML]
Compiler
Platform[EMF]
xUML-RT Model CompilerxUML-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
PapyrusEMF-UML
[EMF]Structure
[EMF] Cpp structure
[EMF] Behaviour[Xtext]
C++ [source]
EditorPlatform
configuration[source, XML]
Compiler
Platform[EMF]
xUML-RT Model CompilerxUML-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
PapyrusEMF-UML
[EMF]Structure
[EMF] Cpp structure
[EMF] Behaviour[Xtext]
C++ [source]
EditorPlatform
configuration[source, XML]
Compiler
Platform[EMF]
xUML-RT Model CompilerxUML-RT
Incremenetal code-generation for xUML-RT
Cpp
PapyrusEMF-UML
[EMF]Structure
[EMF] Cpp structure
[EMF] Behaviour[Xtext]
C++ [source]
EditorPlatform
configuration[source, XML]
Compiler
Platform[EMF]
C++ source code• Support for query execution• Optimized container usage• Unity buildPlatform configuration• Execution environment• Interfaces with hand-coded components
xUML-RT Model CompilerxUML-RT
Incremenetal code-generation for xUML-RT
Cpp
PapyrusEMF-UML
[EMF]Structure
[EMF] Cpp structure
[EMF] Behaviour[Xtext]
C++ [source]
EditorPlatform
configuration[source, XML]
Compiler
Platform[EMF]
C++ source code• Support for query execution• Optimized container usage• Unity buildPlatform configuration• Execution environment• Interfaces with hand-coded components
Incremental query engine for EMF• Declarative language• Incremental, live
queries• Highly scalableAdvanced support for• On-the-fly validation• Custom views• Traceability• Derived features
Model transformation framework• Event-based + reactive
execution platform• Xtend based API• Scalable M2M & M2THigh-level features• Complex event
processing• Design space
exploration• Incremental transform.
Based on the VIATRA query and transformation framework
Transformation
Official Eclipse member4 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 scalableAdvanced support for• On-the-fly validation• Custom views• Traceability• Derived features
Model transformation framework• Event-based + reactive
execution platform• Xtend based API• Scalable M2M & M2THigh-level features• Complex event
processing• Design space
exploration• Incremental transform.
Based on the VIATRA query and transformation framework
Transformation
Tool integration with: Papyrus UML, Sirius, RMF, Capella, ARTOP, mbeddr
Query
Official Eclipse member4 Project co-leads 14 Eclipse committers
Incremental query engine for EMF• Declarative language• Incremental, live
queries• Highly scalableAdvanced support for• On-the-fly validation• Custom views• Traceability• Derived features
Model transformation framework• Event-based + reactive
execution platform• Xtend based API• Scalable M2M & M2THigh-level features• Complex event
processing• Design space
exploration• Incremental transform.
Based on the VIATRA query and transformation framework
Transformation
Tool integration with: Papyrus UML, Sirius, RMF, Capella, ARTOP, mbeddr
Query
Official Eclipse member4 Project co-leads 14 Eclipse committers
Incremental query engine for EMF• Declarative language• Incremental, live
queries• Highly scalableAdvanced support for• On-the-fly validation• Custom views• Traceability• Derived features
Model transformation framework• Event-based + reactive
execution platform• Xtend based API• Scalable M2M & M2THigh-level features• Complex event
processing• Design space
exploration• Incremental transform.
Based on the VIATRA query and transformation framework
Transformation
Query
Official Eclipse member4 Project co-leads 14 Eclipse committers
bye bye EMF-IncQuery
and welcome
Viatra query language – V
PQL
Tool integration with: Papyrus UML, Sirius, RMF, Capella, ARTOP, mbeddr
ConclusionsInitial 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 PapyrusBuilt on VIATRA
Your contributions (feedback, forum posts, ideas, bugzillas, patches) are very welcome!
http://www.eclipse.org/viatra/
http://www.incquerylabs.com/[email protected] Tel: +36 70 633 3973Email: [email protected]
@IncQueryLabs
https://www.facebook.com/incquerylabs/https://www.linkedin.com/company/incquery-labs-ltd-
https://github.com/IncQueryLabs/EMDW-MC