Multilevel Behavioural Metamodelling Fernando Mac as Adrian Rutle - - PowerPoint PPT Presentation

multilevel behavioural metamodelling
SMART_READER_LITE
LIVE PREVIEW

Multilevel Behavioural Metamodelling Fernando Mac as Adrian Rutle - - PowerPoint PPT Presentation

Multilevel Behavioural Metamodelling Fernando Mac as Adrian Rutle Volker Stolz November 2, 2016 Fernando Mac as , Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling Why Modelling? Happy zone of What software What


slide-1
SLIDE 1

Multilevel Behavioural Metamodelling

Fernando Mac´ ıas Adrian Rutle Volker Stolz November 2, 2016

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-2
SLIDE 2

Why Modelling?

What software engineers understand Technical Language What computers understand Formal Language What domain experts understand Domain Natural Language Happy zone of understanding Domain Specific Modelling Language (DSML)

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-3
SLIDE 3

MOF-based approaches

Pros High reliability Mature (meta)modelling ecosystems Good tool coverage

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-4
SLIDE 4

MOF-based approaches

Pros High reliability Mature (meta)modelling ecosystems Good tool coverage Cons × Mixed abstraction levels × Synthetic typing relation × Convoluted

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-5
SLIDE 5

PLS example with two-level approach

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-6
SLIDE 6

PLS example with two-level approach

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-7
SLIDE 7

Multilevel approaches

Pros Unbounded number of levels Deep hierarchies (potency) Linguistic extensions

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-8
SLIDE 8

Multilevel approaches

Pros Unbounded number of levels Deep hierarchies (potency) Linguistic extensions Cons × Lack of clear consensus on the foundations × No common focus in current multilevel tools × Technology lock-in

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-9
SLIDE 9

Multilevel approaches

Pros Unbounded number of levels Deep hierarchies (potency) Linguistic extensions Cons × Lack of clear consensus on the foundations × No common focus in current multilevel tools × Technology lock-in “There is still no clear consensus on what the paradigm actually entails and how it should be applied” MULTI 2016 CfP

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-10
SLIDE 10

Multilevel approaches

Pros Unbounded number of levels Deep hierarchies (potency) Linguistic extensions Cons × Lack of clear consensus on the foundations × No common focus in current multilevel tools × Technology lock-in “There is still no clear consensus on what the paradigm actually entails and how it should be applied” MULTI 2016 CfP

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-11
SLIDE 11

PLS example with multilevel approach

Machine

EClass

1-1 Container

EClass

1-1 Part

EClass

1-1

contains@1-2 EReference

  • ut@1-2

EReference in@1-2 EReference creates@1-1 EReference

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-12
SLIDE 12

PLS example with multilevel approach

GenHandle

Machine

1-1 GenHead

Machine

1-1 Conveyor

Container

1-1 Tray

Container

1-1 Handle

Part

1-1 Head

Part

1-1 Hammer

Part

1-1 Assembler

Machine

1-1 creates@1-1 creates creates@1-1 creates cout@1-1 EReference@2 has@1-1 EReference@2 has@1-1 EReference@2

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-13
SLIDE 13

PLS example with multilevel approach

ghead

GenHead

1-1 ghandle

GenHandle

1-1 c1

Conveyor

1-1 c2

Conveyor

1-1 c3

Conveyor

1-1 t1

Tray

1-1 t2

Tray

1-1 assembler

Assembler

1-1 cout@1-1 cout cout@1-1 cout cout@1-1 cout in@1-1 in@2

  • ut@1-1
  • ut@2
  • ut@1-1
  • ut@2
  • ut@1-1
  • ut@2

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-14
SLIDE 14

PLS example with multilevel approach

Machine

EClass

1-1 Container

EClass

1-1 Part

EClass

1-1 contains@1-2 EReference

  • ut@1-2

EReference in@1-2 EReference creates@1-1 EReference

(a) generic_plant

GenHandle

Machine

1-1 GenHead

Machine

1-1 Conveyor

Container

1-1 Tray

Container

1-1 Handle

Part

1-1 Head

Part

1-1 Hammer

Part

1-1 Assembler

Machine

1-1 creates@1-1 creates creates@1-1 creates cout@1-1 EReference@2 has@1-1 EReference@2 has@1-1 EReference@2

(b) hammer_plant

ghead

GenHead

1-1 ghandle

GenHandle

1-1 c1

Conveyor

1-1 c2

Conveyor

1-1 c3

Conveyor

1-1 t1

Tray

1-1 t2

Tray

1-1 assembler

Assembler

1-1 cout@1-1 cout cout@1-1 cout cout@1-1 cout in@1-1 in@2

  • ut@1-1
  • ut@2
  • ut@1-1
  • ut@2
  • ut@1-1
  • ut@2

(d) hammer_config_1

1..1 1..1

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-15
SLIDE 15

PLS example with multilevel approach

GenLeg

Machine

1-1 Leg

Part

1-1 GenSeat

Machine

1-1 Seat

Part

1-1 Box

Container

1-1 Gluer

Machine

1-1 Stool

Part

1-1 creates@1-1 creates creates@1-1 creates has@1-1 EReference@2 has@1-1 EReference@2

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-16
SLIDE 16

PLS example with multilevel approach

gleg

GenLeg

1-1 gseat

GenSeat

1-1 b1

Box

1-1 b2

Box

1-1 b3

Box

1-1 gluer

Gluer

1-1

  • ut@1-1
  • ut@2
  • ut@1-1
  • ut@2
  • ut@1-1 out@2

in@1-1 in@2 in@1-1 in@2

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-17
SLIDE 17

PLS example with multilevel approach

Machine

EClass

1-1 Container

EClass

1-1 Part

EClass

1-1 contains@1-2 EReference

  • ut@1-2

EReference in@1-2 EReference creates@1-1 EReference

(a) generic_plant

ghead

GenHead

1-1 ghandle

GenHandle

1-1 c1

Conveyor

1-1 c2

Conveyor

1-1 c3

Conveyor

1-1 t1

Tray

1-1 t2

Tray

1-1 assembler

Assembler

1-1 cout@1-1 cout cout@1-1 cout cout@1-1 cout in@1-1 in@2

  • ut@1-1
  • ut@2
  • ut@1-1
  • ut@2
  • ut@1-1
  • ut@2

(d) hammer_config_1

gleg

GenLeg

1-1 gseat

GenSeat

1-1 b1

Box

1-1 b2

Box

1-1 b3

Box

1-1 gluer

Gluer

1-1

  • ut@1-1
  • ut@2
  • ut@1-1
  • ut@2
  • ut@1-1 out@2

in@1-1 in@2 in@1-1 in@2

(e) stool_config_1

GenLeg

Machine

1-1 Leg

Part

1-1 GenSeat

Machine

1-1 Seat

Part

1-1 Box

Container

1-1 Gluer

Machine

1-1 Stool

Part

1-1 creates@1-1 creates creates@1-1 creates has@1-1 EReference@2 has@1-1 EReference@2

(c) stool_plant

1..1 3..3 GenHandle

Machine

1-1 GenHead

Machine

1-1 Conveyor

Container

1-1 Tray

Container

1-1 Handle

Part

1-1 Head

Part

1-1 Hammer

Part

1-1 Assembler

Machine

1-1 creates@1-1 creates creates@1-1 creates cout@1-1 EReference@2 has@1-1 EReference@2 has@1-1 EReference@2

(b) hammer_plant

1..1 1..1

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-18
SLIDE 18

Common realization of MLM: Clabject

Adapted from: Melanee Project – https://melanee2.informatik.uni-mannheim.de/confluence/ Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-19
SLIDE 19

Common realization of MLM: Clabject

Adapted from: Melanee Project – https://melanee2.informatik.uni-mannheim.de/confluence/

Issues × Requires a linguistic metamodel × Every element needs a linguistic type × Synthetic typing and flattening of the ontological stack × Custom tools and representations

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-20
SLIDE 20

Our realization of MLM: MultEcore

Ontological stack Does not require linguistic metamodels, synthetic typing relations or flattening Linguistic metamodels Multiple and independent metamodels

  • rthogonal to the ontological stack

Linguistic typing Less strict. An element may have none, one or several linguistic types

Mn (instance) Mn-1 M0 (fixed) M1 ...

  • ntologically typed
  • ntologically typed
  • ntologically typed
  • ntologically typed

linguistically typed LM 1 LM 2

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-21
SLIDE 21

Our realization of MLM: MultEcore

Ontological stack Does not require linguistic metamodels, synthetic typing relations or flattening Linguistic metamodels Multiple and independent metamodels

  • rthogonal to the ontological stack

Linguistic typing Less strict. An element may have none, one or several linguistic types

Mn (instance) Mn-1 M0 (fixed) M1 ...

  • ntologically typed
  • ntologically typed
  • ntologically typed
  • ntologically typed

linguistically typed LM 1 LM 2

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-22
SLIDE 22

Our realization of MLM: MultEcore

Ontological stack Does not require linguistic metamodels, synthetic typing relations or flattening Linguistic metamodels Multiple and independent metamodels

  • rthogonal to the ontological stack

Linguistic typing Less strict. An element may have none, one or several linguistic types

Mn (instance) Mn-1 M0 (fixed) M1 ...

  • ntologically typed
  • ntologically typed
  • ntologically typed
  • ntologically typed

linguistically typed LM 1 LM 2

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-23
SLIDE 23

Our realization of MLM: MultEcore

Ontological stack Does not require linguistic metamodels, synthetic typing relations or flattening Linguistic metamodels Multiple and independent metamodels

  • rthogonal to the ontological stack

Linguistic typing Less strict. An element may have none, one or several linguistic types

Mn (instance) Mn-1 M0 (fixed) M1 ...

  • ntologically typed
  • ntologically typed
  • ntologically typed
  • ntologically typed

linguistically typed LM 1 LM 2

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-24
SLIDE 24

MultEcore tool

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-25
SLIDE 25

Applications – Behavioural metamodelling

P1

Part

M1

Machine

cr:creates m1

M1

p1

P1

m1

M1

cr:cr META FROM TO

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-26
SLIDE 26

Applications – Runtime Verification

Macias et al. Integration of Runtime Verification into Metamodeling for Simulation and Code Generation. RV 2016 Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-27
SLIDE 27

Applications – Runtime Verification

Macias et al. Integration of Runtime Verification into Metamodeling for Simulation and Code Generation. RV 2016 Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-28
SLIDE 28

Formalisation

Metamodelling hierarchy is based on typed graphs and graph homomorphisms. Potencies for deep characterization supported by allowing the typing relation to “jump” over levels. For j ≥ k > i ≥ 0 Typing morphism from graph Gk at k to graph Gi at i is defined as Tk,i : D(Tk,i) → Gi Direct mappings x ∈ Gk → ty(x) ∈ Gk−df (x) → ty2(x) ∈ Gk−df 2(x)

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-29
SLIDE 29

Conclusions

MultEcore, an alternative framework for multilevel modelling Applied to behavioural metamodelling and RV Tool as an Eclipse plugin, bypassing EMF’s two-level limitation Small learning curve Mature ecosystem and toolset Future Work New multilevel functionalities: navigation of typing relations Creation of a hierarchy of behavioural models Multilevel Coupled Model Transformations (Stay tuned!)

http://prosjekt.hib.no/ict/multecore/

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-30
SLIDE 30

Extra slides

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-31
SLIDE 31

Sliding window for EMF

Ecore.ecore Editor configures Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-32
SLIDE 32

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures creates Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-33
SLIDE 33

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures typed by creates Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-34
SLIDE 34

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures typed by creates configures Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-35
SLIDE 35

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures typed by creates configures creates m2.m1 Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-36
SLIDE 36

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures typed by creates configures typed by creates m2.m1 Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-37
SLIDE 37

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures typed by creates configures typed by creates m2.m1 m2.ecore Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-38
SLIDE 38

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures typed by creates configures typed by creates configures m2.m1 m2.ecore Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-39
SLIDE 39

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures typed by creates configures typed by creates configures typed by creates configures m2.m1 m2.ecore m3.m2 m3.ecore Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-40
SLIDE 40

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures typed by creates configures typed by creates configures typed by creates configures m2.m1 m2.ecore m3.m2 m3.ecore Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-41
SLIDE 41

Sliding window for EMF

Ecore.ecore Editor m1.ecore configures typed by creates configures typed by creates configures typed by creates configures m2.m1 m2.ecore m3.m2 m3.ecore Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-42
SLIDE 42

MEF representation for EMF

mi.mi-1 mi.ecore Editor mi+1.mi configures typed by creates mi.mef xmi2mef mef2xmi mef2ecore ecore2mef Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling

slide-43
SLIDE 43

Formalisation

For j ≥ k > i ≥ 0 Typing morphism from graph Gk at k to graph Gi at i is defined as Tk,i : D(Tk,i) → Gi Direct mappings x ∈ Gk → ty(x) ∈ Gk−df (x) → ty2(x) ∈ Gk−df 2(x) The type of x ∈ Gk is ty(x) = t ∈ Gk−df (x) where df (x) is the difference in ”abstraction” levels between t and x, given by the potency on t. ty2(x) = ty(ty(x)), ty3(x) = ty(ty2(x)) = ty(ty(ty(x))), ... df 2(x) = df (x) + df (ty(x)), df 3(x) = df 2(x) + df (ty2(x)), ...

Fernando Mac´ ıas, Adrian Rutle, Volker Stolz Multilevel Behavioural Metamodelling