SlideShare a Scribd company logo
1 of 34
Download to read offline
Analysing Meta-Model Product Lines
Esther Guerra, Juan de Lara
Universidad Aut´onoma de Madrid (Spain)
Marsha Chechik, Rick Salay
University of Toronto (Canada)
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 1 / 27
Motivation
Meta-model variants
Meta-models are used to define modelling languages
Different variants of a modelling language depending on scenario,
project, goal...
Having a meta-model for each variant is challenging to construct,
analyse and maintain
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 2 / 27
Motivation
Example: variants of Petri nets
Different
realizations
posTokens inv: self.itokens >= 0
Place
itokens: int
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
tokens as attributes
Place
in
Transition
out
*
*
Token
tokens*
1
places
1
trans*
1
PetriNet
*
tokens as objects
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 3 / 27
Motivation
Example: variants of Petri nets
Different
realizations
posTokens inv: self.itokens >= 0
Place
itokens: int
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
tokens as attributes
Place
in
Transition
out
*
*
Token
tokens*
1
places
1
trans*
1
PetriNet
*
tokens as objects
Different
features
Place
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
Token
tokens
*
1 isHierarchical inv:
(self.places→size()> 0 or
self.trans→size()> 0)
implies (self.in→size() +
self.out→size() = 0)
hierarchical nets
Place
itokens: int
in
Transition
out
1
1
posTokens inv: self.itokens >= 0
places
1
trans
1
PetriNet
**
state-machine nets
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 3 / 27
Motivation
Example: variants of Petri nets
Different
realizations
posTokens inv: self.itokens >= 0
Place
itokens: int
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
tokens as attributes
Place
in
Transition
out
*
*
Token
tokens*
1
places
1
trans*
1
PetriNet
*
tokens as objects
Different
features
Place
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
Token
tokens
*
1 isHierarchical inv:
(self.places→size()> 0 or
self.trans→size()> 0)
implies (self.in→size() +
self.out→size() = 0)
hierarchical nets
Place
itokens: int
in
Transition
out
1
1
posTokens inv: self.itokens >= 0
places
1
trans
1
PetriNet
**
state-machine nets
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 3 / 27
8 possible meta-models
Motivation
Meta-model product lines (MMPLs)
Meta-model product line:
compact representation of all meta-model variants
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
Motivation
Meta-model product lines (MMPLs)
Meta-model product line:
compact representation of all meta-model variants
Feature Model
PetriNets
Tokens
Simple Object
Hierarchical
triNets, Tokens, Simple, Object, StateMachine, Hierarchical },
iNets  Tokens  ((Simple  ꞀObject)  (ꞀSimple  Object))
StateMachine
Valid feature configurations:
Simple xor Object
StateMachine is optional
Hierarchical is optional
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
Motivation
Meta-model product lines (MMPLs)
Meta-model product line:
compact representation of all meta-model variants
150-Meta-Model
in
posTokens inv:
self.itokens >= 0
Place
itokens: int
PetriNet
Transition
out
places
Simple
1
* trans*
1
Token
tokens *
1
Object
Object isHierarchical inv:
(self.places→size() > 0 or
self.trans→size() > 0)
implies (self.in→size() +
self.out→size() = 0)
Simple
StateMachine
[min=1, max=1]
StateMachine
[min=1, max=1]
*
*
net net
not Hierarchical
[del]
Presence conditions
Cardinality modifiers
min
max
Inheritance modifiers
add
del
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
Motivation
Meta-model product lines (MMPLs)
Meta-model product line:
compact representation of all meta-model variants
Feature Configuration
<Object, Hierarchical>
Meta-Model Derivation
Place
in
Transition
out
*
*
places
1
* trans*
1
PetriNet
Token
tokens
*
1 isHierarchical inv:
(self.places→size()> 0 or
self.trans→size()> 0)
implies (self.in→size() +
self.out→size() = 0)
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
Motivation
Correctness of MMPLs
How to ensure a MMPL is correct?
1 ensure each meta-model is syntactically correct
e.g., the target class of each meta-model reference belongs to the meta-model
2 ensure desirable properties in meta-model instances
e.g., instantiability
There are well-known techniques to analyse this for a single meta-model.
However, generating and analysing each meta-model in the MMPL
separately is time-consuming...
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 5 / 27
Contribution
We lift meta-model analysis techniques to the product line level:
syntactic analysis of meta-models
satisfiability checking of meta-model properties
in order to improve performance
Based on a declarative notion of MMPL
considers OCL well-formedness constraints
amenable to automated analysis
Tool support
Evaluation of effectiveness of lifted analyses
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 6 / 27
Ensuring Well-formedness
of
Meta-Model Product Lines
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 7 / 27
Ensuring MMPL well-formedness
Lifted analysis of well-formed structure
Every field is owned by one class
How: PC of field =⇒ PC of its owner-class
Every reference points to a class
How: PC of reference =⇒ PC of its target-class
Cardinality and inheritance are uniquely determined
How: PC of mini ∧ PC of minj is unsat (similar for max, inheritance)
There are no inheritance cyles
How (roughly): given a cycle in the 150MM, the conjunction of the
PC of each inheritance relation is unsat
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 8 / 27
Ensuring MMPL well-formedness
Lifted syntactic analysis of invariants
If an invariant is present, the accessed elements are also present
How: PC of invariant =⇒ PC of accessed fields + owner classes
Example:
PC of self.itokens >= 0 =⇒ PC of itokens and PC of Place
Simple =⇒ Simple ∧ true
Operators are applied on fields with appropriate cardinality
How: if a collection operator is applied on a field, the PC of invariant
∧ PC of any max=1 is unsat
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 9 / 27
Analysing Properties
of
Meta-Model Instances
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 10 / 27
Analysing instance properties
Meta-model validation by model finding
Is the set of models accepted by a meta-model the one intended?
MM property P
m1
m1 P
MM
L(MM) L(M
(a)
In the simplest case, if P is empty, this method permits assessing whether
a meta-model has instances.
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 11 / 27
Analysing instance properties
MMPL validation
Is the set of models accepted by each meta-model the one intended?
MM property P
m1
m1 P
MM1
property PMMPL
MMi
Prod(MMPL)
… MMn
…
L(MM) L(MM1) L(MMn)L(MMi)
(a) (b)
m1
m1 P
In the simplest case, if P is empty, this method permits assessing whether
some meta-model in the MMPL has instances.
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 12 / 27
Analysing instance properties
Classification of property types
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 13 / 27
Analysing instance properties
Classification of property types
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 13 / 27
Analysing instance properties
Classification of property types
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Property
specification
structural mixed
Solutions
Result
model configone all
Search strategy
Property
satisfiability
Search
scope
existsm forAllm
Config
scope
Feature
exercising
totalpartial
notExistsm
Artefact
Decision
condition
existsMM forAllMM
notExistsMM
Type
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 13 / 27
Analysing instance properties
Property types
Some analyses of interest (8 more in the paper):
MMPL instantiability: configuration that yields an instantiable MM
Configuration: < one, config, total, existsm >
Global invariant: is a property satisfied by every model of every MM?
Example: all Petri nets have at least one place
Configuration: < forAllMM , forAllm, ... >
Property: Place.all()→notEmpty()
Safety property: is a property satisfied by no model?
Example: no model has isolated transitions
Configuration: < forAllMM , notExistsm, ... >
Property: Transition.all()→exists(in→isEmpty() and out→isEmpty())
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 14 / 27
Analysing instance properties
Property types
We also consider mixed properties
Example: Are transitions with one input only possible on state machines?
Configuration: < mixed, ... >
Property: Transition.all()→forAll(in→size() = 1) implies StateMachine
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 15 / 27
Lifted analysis of meta-model instances
(1) Encoding of MMPL as a regular meta-model
Feature-explicit meta-model
in
posTokens inv:
fm.Simple implies self.itokens >= 0
wc-tokens inv:
if not fm.Object
then self.tokens→size() = 0
else self.tokens→size() >= 0
endif
wc-itokens inv:
if not fm.Simple
then self.itokens.oclIsUndefined()
else not self.itokens.oclIsUndefined()
endif
wc-net inv:
not fm.Hierarchical implies
not self.net.oclIsKindOf(Transition)
Place
itokens[0..1]: int
PetriNet
Transition
out
places
1
* trans*
1
Token
tokens *
1
*
*
BC
1
fm
isHierarchical inv:
fm.Hierarchical implies
((self.places→size() > 0 or self.trans→size() > 0)
implies (self.in→size() + self.out→size() = 0))
wc-in inv:
fm.StateMachine implies self.in→size() = 1
wc-out inv:
fm.StateMachine implies self.out→size() = 1
wc-del-inh inv:
not fm.Hierarchical implies
(self.places→size() = 0 and self.trans→size() = 0)
wc-net inv:
not fm.Hierarchical implies
not self.net.oclIsKindOf(Transition)
FMC
Simple: boolean
Tokens: boolean
Hierarchical: boolean
Object: boolean
StateMachine: boolean
PetriNet: boolean
ΦMMPL inv:
PetriNets and Tokens and
((Simple and not Object) or
(not Simple and Object))
wc-Token inv:
not Object implies
Token.allInstances()→size() = 0
net net
150MM
Feature model is class FMC,
where features are booleans
PCs and modifiers are invariants
Property to check is invariant
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 16 / 27
Lifted analysis of meta-model instances
(2) Analysing feature-explicit meta-model
Look for an instance of the FEMM using a model finder
MMPL instantiability, weak properties (MMs where some model
satisfies P): finding a solution implies satisfaction
:PetriNet
:Place
:Token
:FMC
Simple=false
Object=true
Tokens=true
Hierarchical=false
StateMachine=false
PetriNet=true
feature-explicit model :PetriNet
:Place
:Token
model configuration
+
extract
Safety properties (MMs where no model satisfies P): find all configs
where some model satisfies P, and then return the rest
Global invariants (MMs where all models satisfy P): find all configs
where some model satisfies not P, and then return the rest
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 17 / 27
Tooling
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 18 / 27
Eclipse plugin: http://miso.es/tools/merlin
Feature model specified with FeatureIDE
150MM specified as an Ecore meta-model with annotations
Static analysis of OCL uses Eclipse OCL project and Sat4J
USE Validator model finder
Merlin
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 19 / 27
Evaluation
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 20 / 27
Evaluation
Efficiency of syntactic analysis
Enumerative approach vs Lifted analysis
Name #Feats #MMs
#classes/#invs
/#PCs/#modifs
Lifted
time
Enum
time
Running example 6 8 4/2/5/2 0,039s 0,19s
Relational DDBB 10 24 7/0/17/0 0,094s 0,45s
Graphs [29] 16 256 5/6/14/3 0,103s 22,36s
Automata 20 2.016 6/5/18/0 0,135s 102,9s
Role modelling [27] 48 >2.395.000 40/0/32/9 0,735s >1h
=⇒ Lifted analysis was much faster
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 21 / 27
Evaluation
Efficiency of instance property analysis
Enumerative approach vs Lifted analysis
MMPL instantiability (finding an instantiable meta-model)
Enumerative approach:
1 generate product meta-model
2 check meta-model instantiability by model finding
3 if the meta-model has instances, conclude
4 else, go to 1
22 variants of the Automata MMPL, each with a different percentage
of instantiable meta-models
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 22 / 27
Evaluation
Efficiency of instance property analysis
1
10
100
1000
10000
100000
0 20 40 60 80 100
TIME (MS)
% INSTANTIABLE META-MODELS
Lifted average
Enum. average
Enum. best
Enum. worst
Lifted analysis is (up to 1.000x) faster if <85% instantiable MMs
In the rest of cases, lifted analysis is slightly slower (120 vs 100 ms)
Rationale: 1 more complex search (lift.) vs many simpler searches (enum.)
=⇒ The fewer MMs satisfy a property, the faster lifted analysis is
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 23 / 27
Conclusions
and
Future Work
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 24 / 27
Summary
MMPLS: Declarative specification of meta-model variants
Lifting of existing meta-model analysis techniques to the PL level
syntactic correctness of meta-models
checking properties on meta-model instances
Initial implementation and evaluation
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 25 / 27
Current and next steps
Transformation product lines, coupled to MMPLs
Model transformation product lines. Juan de Lara, Esther Guerra, Marsha Chechik, Rick
Salay. Proc. of ACM/IEEE MoDELS’18. pp. 67-77. ACM.
Extend definition of MMPL with type modifiers for references
Expand analyses, e.g., to discover subsumption of MM variants
Extend the evaluation for other kinds of properties
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 26 / 27
Analysing Meta-Model Product Lines
Esther Guerra, Juan de Lara
Universidad Aut´onoma de Madrid (Spain)
Marsha Chechik, Rick Salay
University of Toronto (Canada)
esther.guerra@uam.es
http://miso.es/tools/merlin
Questions?
Esther Guerra Analysing Meta-Model Product Lines SLE 2018 27 / 27

More Related Content

What's hot

Ap Power Point Chpt8
Ap Power Point Chpt8Ap Power Point Chpt8
Ap Power Point Chpt8
dplunkett
 
Irt 1 pl, 2pl, 3pl.pdf
Irt 1 pl, 2pl, 3pl.pdfIrt 1 pl, 2pl, 3pl.pdf
Irt 1 pl, 2pl, 3pl.pdf
Carlo Magno
 
Ap Power Point Chpt5
Ap Power Point Chpt5Ap Power Point Chpt5
Ap Power Point Chpt5
dplunkett
 
Ap Power Point Chpt3 B
Ap Power Point Chpt3 BAp Power Point Chpt3 B
Ap Power Point Chpt3 B
dplunkett
 
The application of irt using the rasch model presnetation1
The application of irt using the rasch model presnetation1The application of irt using the rasch model presnetation1
The application of irt using the rasch model presnetation1
Carlo Magno
 
Ap Power Point Chpt3
Ap Power Point Chpt3Ap Power Point Chpt3
Ap Power Point Chpt3
dplunkett
 

What's hot (20)

Effective Java - Methods Common to All Objects
Effective Java - Methods Common to All ObjectsEffective Java - Methods Common to All Objects
Effective Java - Methods Common to All Objects
 
Ap Power Point Chpt8
Ap Power Point Chpt8Ap Power Point Chpt8
Ap Power Point Chpt8
 
Software Engineering - Module 3: Lesson7
Software Engineering - Module 3: Lesson7Software Engineering - Module 3: Lesson7
Software Engineering - Module 3: Lesson7
 
Implementing Item Response Theory
Implementing Item Response TheoryImplementing Item Response Theory
Implementing Item Response Theory
 
Irt 1 pl, 2pl, 3pl.pdf
Irt 1 pl, 2pl, 3pl.pdfIrt 1 pl, 2pl, 3pl.pdf
Irt 1 pl, 2pl, 3pl.pdf
 
OCA Java SE 8 Exam Chapter 2 Operators & Statements
OCA Java SE 8 Exam Chapter 2 Operators & StatementsOCA Java SE 8 Exam Chapter 2 Operators & Statements
OCA Java SE 8 Exam Chapter 2 Operators & Statements
 
Generic Programming in java
Generic Programming in javaGeneric Programming in java
Generic Programming in java
 
Ap Power Point Chpt5
Ap Power Point Chpt5Ap Power Point Chpt5
Ap Power Point Chpt5
 
Classical Test Theory and Item Response Theory
Classical Test Theory and Item Response TheoryClassical Test Theory and Item Response Theory
Classical Test Theory and Item Response Theory
 
Item Response Theory (IRT)
Item Response Theory (IRT)Item Response Theory (IRT)
Item Response Theory (IRT)
 
Item Response Theory
Item Response TheoryItem Response Theory
Item Response Theory
 
Item Response Theory in Constructing Measures
Item Response Theory in Constructing MeasuresItem Response Theory in Constructing Measures
Item Response Theory in Constructing Measures
 
Classical Test Theory (CTT)- By Dr. Jai Singh
Classical Test Theory (CTT)- By Dr. Jai SinghClassical Test Theory (CTT)- By Dr. Jai Singh
Classical Test Theory (CTT)- By Dr. Jai Singh
 
Ap Power Point Chpt3 B
Ap Power Point Chpt3 BAp Power Point Chpt3 B
Ap Power Point Chpt3 B
 
Introduction to unidimensional item response model
Introduction to unidimensional item response modelIntroduction to unidimensional item response model
Introduction to unidimensional item response model
 
Operators in java
Operators in javaOperators in java
Operators in java
 
Irt assessment
Irt assessmentIrt assessment
Irt assessment
 
Using Item Response Theory to Improve Assessment
Using Item Response Theory to Improve AssessmentUsing Item Response Theory to Improve Assessment
Using Item Response Theory to Improve Assessment
 
The application of irt using the rasch model presnetation1
The application of irt using the rasch model presnetation1The application of irt using the rasch model presnetation1
The application of irt using the rasch model presnetation1
 
Ap Power Point Chpt3
Ap Power Point Chpt3Ap Power Point Chpt3
Ap Power Point Chpt3
 

Similar to Analysing-MMPLs

SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
Edson Oliveira Junior
 
1212 regular meeting
1212 regular meeting1212 regular meeting
1212 regular meeting
marxliouville
 
(Py)testing the Limits of Machine Learning
(Py)testing the Limits of Machine Learning(Py)testing the Limits of Machine Learning
(Py)testing the Limits of Machine Learning
Rebecca Bilbro
 

Similar to Analysing-MMPLs (20)

ITU - MDD - XText
ITU - MDD - XTextITU - MDD - XText
ITU - MDD - XText
 
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
SMartyParser: an XMI Parser for UML-based Software Product Line Variability M...
 
Visual Basic User Interface -IV
Visual Basic User Interface -IVVisual Basic User Interface -IV
Visual Basic User Interface -IV
 
ITU - MDD - EMF
ITU - MDD - EMFITU - MDD - EMF
ITU - MDD - EMF
 
A recommender system for generalizing and refining code templates
A recommender system for generalizing and refining code templatesA recommender system for generalizing and refining code templates
A recommender system for generalizing and refining code templates
 
Chapter _4_Semantic Analysis .pptx
Chapter _4_Semantic Analysis .pptxChapter _4_Semantic Analysis .pptx
Chapter _4_Semantic Analysis .pptx
 
ifip2008albashiri.pdf
ifip2008albashiri.pdfifip2008albashiri.pdf
ifip2008albashiri.pdf
 
PhD Thesis Presentation
PhD Thesis PresentationPhD Thesis Presentation
PhD Thesis Presentation
 
Meta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applicationsMeta-modeling: concepts, tools and applications
Meta-modeling: concepts, tools and applications
 
FivaTech
FivaTechFivaTech
FivaTech
 
1212 regular meeting
1212 regular meeting1212 regular meeting
1212 regular meeting
 
20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_orm20160523 hibernate persistence_framework_and_orm
20160523 hibernate persistence_framework_and_orm
 
Experiments on Design Pattern Discovery
Experiments on Design Pattern DiscoveryExperiments on Design Pattern Discovery
Experiments on Design Pattern Discovery
 
Generation of Random EMF Models for Benchmarks
Generation of Random EMF Models for BenchmarksGeneration of Random EMF Models for Benchmarks
Generation of Random EMF Models for Benchmarks
 
(Py)testing the Limits of Machine Learning
(Py)testing the Limits of Machine Learning(Py)testing the Limits of Machine Learning
(Py)testing the Limits of Machine Learning
 
Interm codegen
Interm codegenInterm codegen
Interm codegen
 
RapidMiner: Data Mining And Rapid Miner
RapidMiner:  Data Mining And Rapid MinerRapidMiner:  Data Mining And Rapid Miner
RapidMiner: Data Mining And Rapid Miner
 
RapidMiner: Data Mining And Rapid Miner
RapidMiner: Data Mining And Rapid MinerRapidMiner: Data Mining And Rapid Miner
RapidMiner: Data Mining And Rapid Miner
 
Eclipse meets e4
Eclipse meets e4Eclipse meets e4
Eclipse meets e4
 
Explainability for Learning to Rank
Explainability for Learning to RankExplainability for Learning to Rank
Explainability for Learning to Rank
 

More from miso_uam

More from miso_uam (20)

Model-driven engineering for AR
Model-driven engineering for ARModel-driven engineering for AR
Model-driven engineering for AR
 
Capone.pdf
Capone.pdfCapone.pdf
Capone.pdf
 
MLE_keynote.pdf
MLE_keynote.pdfMLE_keynote.pdf
MLE_keynote.pdf
 
Multi21
Multi21Multi21
Multi21
 
MLMPLs
MLMPLsMLMPLs
MLMPLs
 
Scientific writing
Scientific writingScientific writing
Scientific writing
 
Facets_UCM
Facets_UCMFacets_UCM
Facets_UCM
 
SLE_MIP08
SLE_MIP08SLE_MIP08
SLE_MIP08
 
mtATL
mtATLmtATL
mtATL
 
Máster en Métodos Formales en Ingeniería Informática
Máster en Métodos Formales en Ingeniería InformáticaMáster en Métodos Formales en Ingeniería Informática
Máster en Métodos Formales en Ingeniería Informática
 
Facets
FacetsFacets
Facets
 
kite
kitekite
kite
 
MTPLs
MTPLsMTPLs
MTPLs
 
Miso-McGill
Miso-McGillMiso-McGill
Miso-McGill
 
Model Transformation Reuse
Model Transformation ReuseModel Transformation Reuse
Model Transformation Reuse
 
Miso
MisoMiso
Miso
 
DSLcomet
DSLcometDSLcomet
DSLcomet
 
SICOMORO
SICOMOROSICOMORO
SICOMORO
 
ReusingMT
ReusingMTReusingMT
ReusingMT
 
MDE-experiments
MDE-experimentsMDE-experiments
MDE-experiments
 

Recently uploaded

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
VictorSzoltysek
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
masabamasaba
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
9953056974 Low Rate Call Girls In Saket, Delhi NCR
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
masabamasaba
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
mohitmore19
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
masabamasaba
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
masabamasaba
 

Recently uploaded (20)

AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM TechniquesAI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
AI Mastery 201: Elevating Your Workflow with Advanced LLM Techniques
 
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
%+27788225528 love spells in Boston Psychic Readings, Attraction spells,Bring...
 
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICECHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
CHEAP Call Girls in Pushp Vihar (-DELHI )🔝 9953056974🔝(=)/CALL GIRLS SERVICE
 
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
%+27788225528 love spells in new york Psychic Readings, Attraction spells,Bri...
 
Define the academic and professional writing..pdf
Define the academic and professional writing..pdfDefine the academic and professional writing..pdf
Define the academic and professional writing..pdf
 
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
%in Bahrain+277-882-255-28 abortion pills for sale in Bahrain
 
TECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service providerTECUNIQUE: Success Stories: IT Service provider
TECUNIQUE: Success Stories: IT Service provider
 
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
%+27788225528 love spells in Colorado Springs Psychic Readings, Attraction sp...
 
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdfPayment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
Payment Gateway Testing Simplified_ A Step-by-Step Guide for Beginners.pdf
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 
10 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 202410 Trends Likely to Shape Enterprise Technology in 2024
10 Trends Likely to Shape Enterprise Technology in 2024
 
Exploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdfExploring the Best Video Editing App.pdf
Exploring the Best Video Editing App.pdf
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare%in Harare+277-882-255-28 abortion pills for sale in Harare
%in Harare+277-882-255-28 abortion pills for sale in Harare
 
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
%+27788225528 love spells in Vancouver Psychic Readings, Attraction spells,Br...
 
%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand%in Midrand+277-882-255-28 abortion pills for sale in midrand
%in Midrand+277-882-255-28 abortion pills for sale in midrand
 
Generic or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisionsGeneric or specific? Making sensible software design decisions
Generic or specific? Making sensible software design decisions
 
Architecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the pastArchitecture decision records - How not to get lost in the past
Architecture decision records - How not to get lost in the past
 
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdfThe Top App Development Trends Shaping the Industry in 2024-25 .pdf
The Top App Development Trends Shaping the Industry in 2024-25 .pdf
 
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
%+27788225528 love spells in Atlanta Psychic Readings, Attraction spells,Brin...
 

Analysing-MMPLs

  • 1. Analysing Meta-Model Product Lines Esther Guerra, Juan de Lara Universidad Aut´onoma de Madrid (Spain) Marsha Chechik, Rick Salay University of Toronto (Canada) Esther Guerra Analysing Meta-Model Product Lines SLE 2018 1 / 27
  • 2. Motivation Meta-model variants Meta-models are used to define modelling languages Different variants of a modelling language depending on scenario, project, goal... Having a meta-model for each variant is challenging to construct, analyse and maintain Esther Guerra Analysing Meta-Model Product Lines SLE 2018 2 / 27
  • 3. Motivation Example: variants of Petri nets Different realizations posTokens inv: self.itokens >= 0 Place itokens: int in Transition out * * places 1 * trans* 1 PetriNet tokens as attributes Place in Transition out * * Token tokens* 1 places 1 trans* 1 PetriNet * tokens as objects Esther Guerra Analysing Meta-Model Product Lines SLE 2018 3 / 27
  • 4. Motivation Example: variants of Petri nets Different realizations posTokens inv: self.itokens >= 0 Place itokens: int in Transition out * * places 1 * trans* 1 PetriNet tokens as attributes Place in Transition out * * Token tokens* 1 places 1 trans* 1 PetriNet * tokens as objects Different features Place in Transition out * * places 1 * trans* 1 PetriNet Token tokens * 1 isHierarchical inv: (self.places→size()> 0 or self.trans→size()> 0) implies (self.in→size() + self.out→size() = 0) hierarchical nets Place itokens: int in Transition out 1 1 posTokens inv: self.itokens >= 0 places 1 trans 1 PetriNet ** state-machine nets Esther Guerra Analysing Meta-Model Product Lines SLE 2018 3 / 27
  • 5. Motivation Example: variants of Petri nets Different realizations posTokens inv: self.itokens >= 0 Place itokens: int in Transition out * * places 1 * trans* 1 PetriNet tokens as attributes Place in Transition out * * Token tokens* 1 places 1 trans* 1 PetriNet * tokens as objects Different features Place in Transition out * * places 1 * trans* 1 PetriNet Token tokens * 1 isHierarchical inv: (self.places→size()> 0 or self.trans→size()> 0) implies (self.in→size() + self.out→size() = 0) hierarchical nets Place itokens: int in Transition out 1 1 posTokens inv: self.itokens >= 0 places 1 trans 1 PetriNet ** state-machine nets Esther Guerra Analysing Meta-Model Product Lines SLE 2018 3 / 27 8 possible meta-models
  • 6. Motivation Meta-model product lines (MMPLs) Meta-model product line: compact representation of all meta-model variants Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
  • 7. Motivation Meta-model product lines (MMPLs) Meta-model product line: compact representation of all meta-model variants Feature Model PetriNets Tokens Simple Object Hierarchical triNets, Tokens, Simple, Object, StateMachine, Hierarchical }, iNets  Tokens  ((Simple  ꞀObject)  (ꞀSimple  Object)) StateMachine Valid feature configurations: Simple xor Object StateMachine is optional Hierarchical is optional Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
  • 8. Motivation Meta-model product lines (MMPLs) Meta-model product line: compact representation of all meta-model variants 150-Meta-Model in posTokens inv: self.itokens >= 0 Place itokens: int PetriNet Transition out places Simple 1 * trans* 1 Token tokens * 1 Object Object isHierarchical inv: (self.places→size() > 0 or self.trans→size() > 0) implies (self.in→size() + self.out→size() = 0) Simple StateMachine [min=1, max=1] StateMachine [min=1, max=1] * * net net not Hierarchical [del] Presence conditions Cardinality modifiers min max Inheritance modifiers add del Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
  • 9. Motivation Meta-model product lines (MMPLs) Meta-model product line: compact representation of all meta-model variants Feature Configuration <Object, Hierarchical> Meta-Model Derivation Place in Transition out * * places 1 * trans* 1 PetriNet Token tokens * 1 isHierarchical inv: (self.places→size()> 0 or self.trans→size()> 0) implies (self.in→size() + self.out→size() = 0) Esther Guerra Analysing Meta-Model Product Lines SLE 2018 4 / 27
  • 10. Motivation Correctness of MMPLs How to ensure a MMPL is correct? 1 ensure each meta-model is syntactically correct e.g., the target class of each meta-model reference belongs to the meta-model 2 ensure desirable properties in meta-model instances e.g., instantiability There are well-known techniques to analyse this for a single meta-model. However, generating and analysing each meta-model in the MMPL separately is time-consuming... Esther Guerra Analysing Meta-Model Product Lines SLE 2018 5 / 27
  • 11. Contribution We lift meta-model analysis techniques to the product line level: syntactic analysis of meta-models satisfiability checking of meta-model properties in order to improve performance Based on a declarative notion of MMPL considers OCL well-formedness constraints amenable to automated analysis Tool support Evaluation of effectiveness of lifted analyses Esther Guerra Analysing Meta-Model Product Lines SLE 2018 6 / 27
  • 12. Ensuring Well-formedness of Meta-Model Product Lines Esther Guerra Analysing Meta-Model Product Lines SLE 2018 7 / 27
  • 13. Ensuring MMPL well-formedness Lifted analysis of well-formed structure Every field is owned by one class How: PC of field =⇒ PC of its owner-class Every reference points to a class How: PC of reference =⇒ PC of its target-class Cardinality and inheritance are uniquely determined How: PC of mini ∧ PC of minj is unsat (similar for max, inheritance) There are no inheritance cyles How (roughly): given a cycle in the 150MM, the conjunction of the PC of each inheritance relation is unsat Esther Guerra Analysing Meta-Model Product Lines SLE 2018 8 / 27
  • 14. Ensuring MMPL well-formedness Lifted syntactic analysis of invariants If an invariant is present, the accessed elements are also present How: PC of invariant =⇒ PC of accessed fields + owner classes Example: PC of self.itokens >= 0 =⇒ PC of itokens and PC of Place Simple =⇒ Simple ∧ true Operators are applied on fields with appropriate cardinality How: if a collection operator is applied on a field, the PC of invariant ∧ PC of any max=1 is unsat Esther Guerra Analysing Meta-Model Product Lines SLE 2018 9 / 27
  • 15. Analysing Properties of Meta-Model Instances Esther Guerra Analysing Meta-Model Product Lines SLE 2018 10 / 27
  • 16. Analysing instance properties Meta-model validation by model finding Is the set of models accepted by a meta-model the one intended? MM property P m1 m1 P MM L(MM) L(M (a) In the simplest case, if P is empty, this method permits assessing whether a meta-model has instances. Esther Guerra Analysing Meta-Model Product Lines SLE 2018 11 / 27
  • 17. Analysing instance properties MMPL validation Is the set of models accepted by each meta-model the one intended? MM property P m1 m1 P MM1 property PMMPL MMi Prod(MMPL) … MMn … L(MM) L(MM1) L(MMn)L(MMi) (a) (b) m1 m1 P In the simplest case, if P is empty, this method permits assessing whether some meta-model in the MMPL has instances. Esther Guerra Analysing Meta-Model Product Lines SLE 2018 12 / 27
  • 18. Analysing instance properties Classification of property types Property specification structural mixed Solutions Result model configone all Search strategy Property satisfiability Search scope existsm forAllm Config scope Feature exercising totalpartial notExistsm Artefact Decision condition existsMM forAllMM notExistsMM Type Esther Guerra Analysing Meta-Model Product Lines SLE 2018 13 / 27
  • 19. Analysing instance properties Classification of property types Property specification structural mixed Solutions Result model configone all Search strategy Property satisfiability Search scope existsm forAllm Config scope Feature exercising totalpartial notExistsm Artefact Decision condition existsMM forAllMM notExistsMM Type Property specification structural mixed Solutions Result model configone all Search strategy Property satisfiability Search scope existsm forAllm Config scope Feature exercising totalpartial notExistsm Artefact Decision condition existsMM forAllMM notExistsMM Type Esther Guerra Analysing Meta-Model Product Lines SLE 2018 13 / 27
  • 20. Analysing instance properties Classification of property types Property specification structural mixed Solutions Result model configone all Search strategy Property satisfiability Search scope existsm forAllm Config scope Feature exercising totalpartial notExistsm Artefact Decision condition existsMM forAllMM notExistsMM Type Property specification structural mixed Solutions Result model configone all Search strategy Property satisfiability Search scope existsm forAllm Config scope Feature exercising totalpartial notExistsm Artefact Decision condition existsMM forAllMM notExistsMM Type Property specification structural mixed Solutions Result model configone all Search strategy Property satisfiability Search scope existsm forAllm Config scope Feature exercising totalpartial notExistsm Artefact Decision condition existsMM forAllMM notExistsMM Type Esther Guerra Analysing Meta-Model Product Lines SLE 2018 13 / 27
  • 21. Analysing instance properties Property types Some analyses of interest (8 more in the paper): MMPL instantiability: configuration that yields an instantiable MM Configuration: < one, config, total, existsm > Global invariant: is a property satisfied by every model of every MM? Example: all Petri nets have at least one place Configuration: < forAllMM , forAllm, ... > Property: Place.all()→notEmpty() Safety property: is a property satisfied by no model? Example: no model has isolated transitions Configuration: < forAllMM , notExistsm, ... > Property: Transition.all()→exists(in→isEmpty() and out→isEmpty()) Esther Guerra Analysing Meta-Model Product Lines SLE 2018 14 / 27
  • 22. Analysing instance properties Property types We also consider mixed properties Example: Are transitions with one input only possible on state machines? Configuration: < mixed, ... > Property: Transition.all()→forAll(in→size() = 1) implies StateMachine Esther Guerra Analysing Meta-Model Product Lines SLE 2018 15 / 27
  • 23. Lifted analysis of meta-model instances (1) Encoding of MMPL as a regular meta-model Feature-explicit meta-model in posTokens inv: fm.Simple implies self.itokens >= 0 wc-tokens inv: if not fm.Object then self.tokens→size() = 0 else self.tokens→size() >= 0 endif wc-itokens inv: if not fm.Simple then self.itokens.oclIsUndefined() else not self.itokens.oclIsUndefined() endif wc-net inv: not fm.Hierarchical implies not self.net.oclIsKindOf(Transition) Place itokens[0..1]: int PetriNet Transition out places 1 * trans* 1 Token tokens * 1 * * BC 1 fm isHierarchical inv: fm.Hierarchical implies ((self.places→size() > 0 or self.trans→size() > 0) implies (self.in→size() + self.out→size() = 0)) wc-in inv: fm.StateMachine implies self.in→size() = 1 wc-out inv: fm.StateMachine implies self.out→size() = 1 wc-del-inh inv: not fm.Hierarchical implies (self.places→size() = 0 and self.trans→size() = 0) wc-net inv: not fm.Hierarchical implies not self.net.oclIsKindOf(Transition) FMC Simple: boolean Tokens: boolean Hierarchical: boolean Object: boolean StateMachine: boolean PetriNet: boolean ΦMMPL inv: PetriNets and Tokens and ((Simple and not Object) or (not Simple and Object)) wc-Token inv: not Object implies Token.allInstances()→size() = 0 net net 150MM Feature model is class FMC, where features are booleans PCs and modifiers are invariants Property to check is invariant Esther Guerra Analysing Meta-Model Product Lines SLE 2018 16 / 27
  • 24. Lifted analysis of meta-model instances (2) Analysing feature-explicit meta-model Look for an instance of the FEMM using a model finder MMPL instantiability, weak properties (MMs where some model satisfies P): finding a solution implies satisfaction :PetriNet :Place :Token :FMC Simple=false Object=true Tokens=true Hierarchical=false StateMachine=false PetriNet=true feature-explicit model :PetriNet :Place :Token model configuration + extract Safety properties (MMs where no model satisfies P): find all configs where some model satisfies P, and then return the rest Global invariants (MMs where all models satisfy P): find all configs where some model satisfies not P, and then return the rest Esther Guerra Analysing Meta-Model Product Lines SLE 2018 17 / 27
  • 25. Tooling Esther Guerra Analysing Meta-Model Product Lines SLE 2018 18 / 27
  • 26. Eclipse plugin: http://miso.es/tools/merlin Feature model specified with FeatureIDE 150MM specified as an Ecore meta-model with annotations Static analysis of OCL uses Eclipse OCL project and Sat4J USE Validator model finder Merlin Esther Guerra Analysing Meta-Model Product Lines SLE 2018 19 / 27
  • 27. Evaluation Esther Guerra Analysing Meta-Model Product Lines SLE 2018 20 / 27
  • 28. Evaluation Efficiency of syntactic analysis Enumerative approach vs Lifted analysis Name #Feats #MMs #classes/#invs /#PCs/#modifs Lifted time Enum time Running example 6 8 4/2/5/2 0,039s 0,19s Relational DDBB 10 24 7/0/17/0 0,094s 0,45s Graphs [29] 16 256 5/6/14/3 0,103s 22,36s Automata 20 2.016 6/5/18/0 0,135s 102,9s Role modelling [27] 48 >2.395.000 40/0/32/9 0,735s >1h =⇒ Lifted analysis was much faster Esther Guerra Analysing Meta-Model Product Lines SLE 2018 21 / 27
  • 29. Evaluation Efficiency of instance property analysis Enumerative approach vs Lifted analysis MMPL instantiability (finding an instantiable meta-model) Enumerative approach: 1 generate product meta-model 2 check meta-model instantiability by model finding 3 if the meta-model has instances, conclude 4 else, go to 1 22 variants of the Automata MMPL, each with a different percentage of instantiable meta-models Esther Guerra Analysing Meta-Model Product Lines SLE 2018 22 / 27
  • 30. Evaluation Efficiency of instance property analysis 1 10 100 1000 10000 100000 0 20 40 60 80 100 TIME (MS) % INSTANTIABLE META-MODELS Lifted average Enum. average Enum. best Enum. worst Lifted analysis is (up to 1.000x) faster if <85% instantiable MMs In the rest of cases, lifted analysis is slightly slower (120 vs 100 ms) Rationale: 1 more complex search (lift.) vs many simpler searches (enum.) =⇒ The fewer MMs satisfy a property, the faster lifted analysis is Esther Guerra Analysing Meta-Model Product Lines SLE 2018 23 / 27
  • 31. Conclusions and Future Work Esther Guerra Analysing Meta-Model Product Lines SLE 2018 24 / 27
  • 32. Summary MMPLS: Declarative specification of meta-model variants Lifting of existing meta-model analysis techniques to the PL level syntactic correctness of meta-models checking properties on meta-model instances Initial implementation and evaluation Esther Guerra Analysing Meta-Model Product Lines SLE 2018 25 / 27
  • 33. Current and next steps Transformation product lines, coupled to MMPLs Model transformation product lines. Juan de Lara, Esther Guerra, Marsha Chechik, Rick Salay. Proc. of ACM/IEEE MoDELS’18. pp. 67-77. ACM. Extend definition of MMPL with type modifiers for references Expand analyses, e.g., to discover subsumption of MM variants Extend the evaluation for other kinds of properties Esther Guerra Analysing Meta-Model Product Lines SLE 2018 26 / 27
  • 34. Analysing Meta-Model Product Lines Esther Guerra, Juan de Lara Universidad Aut´onoma de Madrid (Spain) Marsha Chechik, Rick Salay University of Toronto (Canada) esther.guerra@uam.es http://miso.es/tools/merlin Questions? Esther Guerra Analysing Meta-Model Product Lines SLE 2018 27 / 27