A tool for the convergence of multilevel modelling approaches - - PowerPoint PPT Presentation
A tool for the convergence of multilevel modelling approaches - - PowerPoint PPT Presentation
A tool for the convergence of multilevel modelling approaches Fernando Mac as Adrian Rutle Volker Stolz fernandomacias.es Copenhagen, Denmark October 16, 2018 This work [0..1] potency [1..1] potency Root [0..*] models [0..*]
This work
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinality
Tool-agnostic metamodel
This work
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinality
Tool-agnostic metamodel
Flat metamodel Annotator Smell detection Heuristics Annotated flat metamodel Transformer Annotation-based transformation Transformations Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools Recommender Feature- and support-based recommendation Tool support MLM concepts Importer Tool-dependent transformation Registered tools
Tooling
This work
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinality
Tool-agnostic metamodel
Flat metamodel Annotator Smell detection Heuristics Annotated flat metamodel Transformer Annotation-based transformation Transformations Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools Recommender Feature- and support-based recommendation Tool support MLM concepts Importer Tool-dependent transformation Registered tools
Tooling
configuration bicycle racing_bike
EClass 1-1-2 EClass 1-1-2 EClass 1-1-2 subc@1-1-2 EReference Component 1-1-1 BasicPart 1-1-1 frame@1-1-1 subc Frame 0-0-0 Bicycle 0-0-0 rframe@0-0-0 frameExperiments and results
Tool-agnostic metamodel
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinality
Fernando Mac´ ıas, Esther Guerra, and Juan de Lara. “Towards rearchitecting meta-models into multi-level models”. In: International Conference on Conceptual Modeling. Springer. 2017, pp. 59–68
Tooling
Flat metamodel Annotator Smell detection Annotated flat metamodel
Tooling
Flat metamodel Annotator Smell detection Heuristics Annotated flat metamodel
Tooling
Annotated flat metamodel Transformer Annotation-based transformation Multilevel hierarchy (tool-independent)
Tooling
Annotated flat metamodel Transformer Annotation-based transformation Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to
Tooling
Annotated flat metamodel Transformer Annotation-based transformation Transformations Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to
Tooling
Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation
Tooling
Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools
Tooling
Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools Recommender Feature- and support-based recommendation
Tooling
Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools Recommender Feature- and support-based recommendation Tool support
Tooling
Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools Recommender Feature- and support-based recommendation Tool support MLM concepts
Tooling
Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Importer Tool-dependent transformation
Tooling
Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Importer Tool-dependent transformation Registered tools
Tooling
Flat metamodel Annotator Smell detection Heuristics Annotated flat metamodel Transformer Annotation-based transformation Transformations Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools Recommender Feature- and support-based recommendation Tool support MLM concepts Importer Tool-dependent transformation Registered tools
Tooling
Flat metamodel Annotator Smell detection Heuristics Annotated flat metamodel Transformer Annotation-based transformation Transformations Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools Recommender Feature- and support-based recommendation Tool support MLM concepts Importer Tool-dependent transformation Registered tools
Extensible by Java interfaces
Experiment 1: Recommender score
Size (Multilevel) Melanee MetaDepth MultEcore #M #C #R #A 1 4 5 4 31 29 10 1 64 118 81 398 518 279 1 15 17 26 111 120 64 1 21 40 44 188 214 112 1 41 15 72 256 284 156
Experiment 1: Recommender score
Size (Multilevel) Melanee MetaDepth MultEcore #M #C #R #A 1 4 5 4 31 29 10 32 1 64 118 81 398 518 279 518 1 15 17 26 111 120 64 120 1 21 40 44 188 214 112 214 1 41 15 72 256 284 156 284
Experiment 2: Case study validation
Size (Multilevel) Melanee MetaDepth MultEcore #M #C #R #A 6 32 17 17 125 119 140 3 21 27 96 96 96 5 59 35 4 196 196 196 4 20 21 3 85 82 94 5 32 25 105 105 114 7 69 78 1 215 214 296
Experiment 3: MultEcore ⇒ MetaDepth
configuration bicycle racing_bike
EClass
1-1-2
EClass
1-1-2
EClass
1-1-2 subc@1-1-2 EReference
Component
1-1-1
BasicPart
1-1-1 frame@1-1-1 subc
Frame
0-0-0
Bicycle
0-0-0 rframe@0-0-0 frame
MultEcore Tool-agnostic
ext Model configuration@2 { ext abstract Node Composite@2 {} ext Node BasicPart@2 : Composite {color@2:String [0..1];} ext Node Component@2 : Composite {subc@2:Composite [*]; weight@2:double [0..1];} } ext configuration bicycle{ ext BasicPart Frame {} ext Component Bicycle { purchasePrice@1 :double [0..1]; frame@1:Frame {subc };} } ext bicycle racing_bike { ext Frame RacingFrame {} ext Bicycle RacingBike {frame= RacingFrame ;} }
MetaDepth
Experiment 4: MultEcore ⇒ MultEcore
configuration bicycle racing_bike
EClass
1-1-2
EClass
1-1-2
EClass
1-1-2 subc@1-1-2 EReference
Component
1-1-1
BasicPart
1-1-1 frame@1-1-1 subc
Frame
0-0-0
Bicycle
0-0-0 rframe@0-0-0 frame
MultEcore Tool-agnostic
configuration bicycle racing_bike
EClass
1-1-2
EClass
1-1-2
EClass
1-1-2 subc@1-1-2 EReference
Component
1-1-1
BasicPart
1-1-1 frame@1-1-1 subc
Frame
0-0-0
Bicycle
0-0-0 rframe@0-0-0 frame
MultEcore
Conclusions and future (community?) work
Tool-supported common representation → Exchange format
Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Importer Tool-dependent transformation Registered tools
Conclusions and future (community?) work
Tool-supported common representation → Exchange format Foster discussion towards the convergence of MLM principles
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinality
Conclusions and future (community?) work
Tool-supported common representation → Exchange format Foster discussion towards the convergence of MLM principles Formal definition of the semantics for the tool-agnostic metamodel
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinality
Conclusions and future (community?) work
Tool-supported common representation → Exchange format Foster discussion towards the convergence of MLM principles Formal definition of the semantics for the tool-agnostic metamodel Identify key features and improve MLM tools
configuration bicycle racing_bike
EClass
1-1-2
EClass
1-1-2
EClass
1-1-2 subc@1-1-2 EReference
Component
1-1-1
BasicPart
1-1-1 frame@1-1-1 subc
Frame
0-0-0
Bicycle
0-0-0 rframe@0-0-0 frame
Conclusions and future (community?) work
Tool-supported common representation → Exchange format Foster discussion towards the convergence of MLM principles Formal definition of the semantics for the tool-agnostic metamodel Identify key features and improve MLM tools Invite contributions to the tool and the metamodel
Thank you for your attention!
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinality
Flat metamodel Annotator Smell detection Heuristics Annotated flat metamodel Transformer Annotation-based transformation Transformations Multilevel hierarchy (tool-independent)
Root [0..*] models [0..*] elements [0..1] level [1..1] target [0..1] potency [0..*] features [0..*] subTypes [0..*] superTypes [0..*] instances [0..*] types [0..*] children [0..1] parent [1..1] potency [0..*] cardinalityMultilevel hierarchy metamodel conforms to Multilevel hierarchy (tool-dependent) Exporter Tool-dependent transformation Registered tools Recommender Feature- and support-based recommendation Tool support MLM concepts Importer Tool-dependent transformation Registered tools configuration bicycle racing_bike
EClass 1-1-2 EClass 1-1-2 EClass 1-1-2 subc@1-1-2 EReference Component 1-1-1 BasicPart 1-1-1 frame@1-1-1 subc Frame 0-0-0 Bicycle 0-0-0 rframe@0-0-0 frame