ncremental model compiler uml - eclipsecon 2020 · model transformation framework • event-based +...

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

Upload: others

Post on 16-Jul-2020

5 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

INCREMENTAL MODEL COMPILER

FOR EXECUTABLE UML

ÁKOS HORVÁTH, PHD

MANAGING DIRECTOR

Page 2: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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!

Page 6: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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!

Page 7: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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]

Page 8: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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)

Page 9: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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]

Page 10: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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]

Page 11: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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]

Page 12: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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]

Page 13: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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

Page 14: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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

Page 15: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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

Page 16: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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

Page 17: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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

Page 18: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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

Page 19: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

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!

Page 20: NCREMENTAL MODEL COMPILER UML - EclipseCon 2020 · Model transformation framework • Event-based + reactive execution platform • Xtend based API • Scalable M2M & M2T High-level

http://www.eclipse.org/viatra/

http://www.incquerylabs.com/

[email protected]

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