Top Banner
INCREMENTAL MODEL COMPILER FOR EXECUTABLE UML ÁKOS HORVÁTH, PHD MANAGING DIRECTOR
20

Incremental model compiler for executable UML

Feb 15, 2017

Download

Software

Ákos Horváth
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Incremental model compiler for executable UML

INCREMENTAL MODEL COMPILERFOR EXECUTABLE UML

ÁKOS HORVÁTH, PHDMANAGING DIRECTOR

Page 2: Incremental model compiler for executable UML

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!

??

Page 3: Incremental model compiler for executable UML

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)

Page 4: Incremental model compiler for executable UML

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)

Page 5: Incremental model compiler for executable UML

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!

Page 6: Incremental model compiler for executable UML

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

Page 7: Incremental model compiler for executable UML

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]

Page 8: Incremental model compiler for executable UML

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)

Page 9: Incremental model compiler for executable UML

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]

Page 10: Incremental model compiler for executable UML

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]

Page 11: Incremental model compiler for executable UML

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]

Page 12: Incremental model compiler for executable UML

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]

Page 13: Incremental model compiler for executable UML

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

Page 14: Incremental model compiler for executable UML

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

Page 15: Incremental model compiler for executable UML

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

Page 16: Incremental model compiler for executable UML

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

Page 17: Incremental model compiler for executable UML

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

Page 18: Incremental model compiler for executable UML

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

Page 19: Incremental model compiler for executable UML

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!

Page 20: Incremental model compiler for executable UML

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