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

Incremental model compiler for executable UML

Embed Size (px)

Citation preview

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