SlideShare a Scribd company logo
1 of 26
Download to read offline
REUSING MODEL
TRANSFORMATIONS THROUGH
TYPING REQUIREMENTS
MODELS
FASE’2017, Uppsala
J. de Lara1, J. Di Rocco2, D. Di Ruscio2, E. Guerra1, L. Iovino3,
A. Pierantonio2, J. S. Cuadrado1
1Universidad Autónoma de Madrid (Spain)
2University of L’Aquila (Italy)
3Gran Sasso Science Institute (Italy)
MOTIVATION &
OVERVIEW
Model driven engineering
• Domain-specific languages
• Proliferation of meta-models
Model to model transformations
• typed w.r.t. source and target
meta-models
• hard to reuse for other, similar
meta-models
2
Msrc Mtar
«conforms to» «conforms to»
Transformation
execution
MMsrc
Transformation
definition
to
MMtar
from
from
to
MOTIVATION &
OVERVIEW
3
Can I use my meta-model(s) with an existing transformation?
Msrc Mtar
«conforms to» «conforms to»
Transformation
execution
MMsrc
Transformation
definition
to
MMtar
from
from
to
Model driven engineering
• Domain-specific languages
• Proliferation of meta-models
Model to model transformations
• typed w.r.t. source and target
meta-models
• hard to reuse for other, similar
meta-models
MM’src
from
MM’tarto
?
MOTIVATION &
OVERVIEW
4
What are the (minimal) requirements for src/tar meta-models
to work with a transformation definition?
Msrc Mtar
«conforms to» «conforms to»
Transformation
execution
tofrom
Model driven engineering
• Domain-specific languages
• Proliferation of meta-models
Model to model transformations
• typed w.r.t. source and target
meta-models
• hard to reuse for other, similar
meta-models
MM’src MMtar
source
MM reqs
target
MM reqs
Transformation
definition
from to
compatibility
«conforms to» «conforms to»«typing reqs»
TRM
AGENDA
Example
Typing requirement models
Extracting typing requirements from ATL trafos
Implementation and validation
Related research
Conclusions and Future work
5
EXAMPLE:
JAVA METHOD CALLS TO TABLE
class Action {
public void do() {
if (this.pre()) this.exec();
}
public boolean pre() {…}
public void exec() {… this.do()…}
}
6
do()
pre()
exec()
do() pre() exec()
0 1 1
0 0 0
1 0 0
Action
Java
Source
NamedElement
name: String
Class
Declaration
Method
Definition
super
class
methods
*class
Method
Invocation
invocations*
method
classes
*
Table
Row
Cell
content: String
rows
cells
1..*
1..*
EXAMPLE (1/2):
JAVA METHOD CALLS TO TABLE
module JavaSource2Table;
create OUT : Table from IN : JavaSource;
rule Class2Table {
from s : JavaSource!ClassDeclaration
to t : Table!Table ( rows <- s.methods )
}
rule Method2Row {
from m : JavaSource!MethodDefinition
to row : Table!Row (
cells <- Sequence{JavaSource!MethodDefinition.allInstances()
->collect(md | thisModule.DataCells(md, m))}
)
}
7
EXAMPLE (2/2):
JAVA METHOD CALLS TO TABLE
lazy rule DataCells {
from md: JavaSource!MethodDefinition,
m: JavaSource!MethodDefinition
to cell: Table!Cell (
content <- m.computeContent(md)
)
}
helper context JavaSource!MethodDefinition def :
computeContent(col : JavaSource!MethodDefinition) : String =
self.invocations->select(i |
i.method.name = col.name
and i.method.class.name = col.class.name)
->size().toString();
8
REUSING THE
TRANSFORMATION
9
?
…
Can we reuse the
transformation
with different
meta-models?
DESCRIBING TYPING
REQUIREMENTS
Domain Typing Requirements (DRMs)
• Models to describe requirements from meta-models
• Characterize sets of meta-models
Classes
• Named and anonymous
• Abstract, concrete or don’t care
• Restrictions regarding inheritance
Features
• Name and optionally a type (reference or attribute)
• More mandatory fields allowed or not
• Several possible target classes for references
• Uncertainty in cardinalities
10
DRM META-MODEL
11
mandatoryAllowed: boolean
subsAllowed: boolean
isAbstract: UBoolean
Feature
name: String[1]*
feats
Reference
Cardinality
Number
value: int
allowLess: boolean
allowMore: booolean
Any
Cardinality
Many
min 1
max 1
Attribute
* targets
DataType
Numeric
Real Integer
StringAny
DataType
Enum Literal
name: String[1]name: String[0..1]
*
literals
dtype1
ancs
*
antiancs *
FeatureType
*
isOrdered: UBoolean
isUnique: UBoolean
<<enum>>
UBoolean
True
False
Any
Anonymous
Class
types
INVARIANTS:
context Feature inv: not self.min.oclIsTypeOf(Many)
Boolean
Class
Named
Class
name: String
SOURCE/TARGET DRMs
12
MethodDefinition
name: AnyDataType
class?..* invocations
method
name: AnyDataType name: AnyDataType
class
Class
Declaration
? methods
1
1
1
Table
Row
Cell
? rows
content: String
?..* cells
name: AnyDataType
C
C
C
AC AC
AC AC
AC AC
C concrete class
AC abstract or concrete class
anonymous class extra mandatory features forbidden
Conformance checking can be
deferred to subclasses
anti ancestor ? rows attribute or reference
Legend
META-MODEL
CONFORMANCE
13
…
CONFORMANCE
EXAMPLES
14
Method
Definition
name:String
NamedElement
Class
Declaration
methods * class1
Method
Invocationinvocations
*
method
1
Method
Definition
name:int
Class
Declaration
methods *
class1
invocations*
method
1
name:String
MethodDefinition
name:AnyDataType
class?..* invocations
method
name:AnyDataType name:AnyDataType
class
Class
Declaration
? methods
1
1
1
name:AnyDataType
AC AC
AC AC
AC AC
CONFORMANCE
EXAMPLES
15
MethodDefinition
name:AnyDataType
class?..* invocations
method
name:AnyDataType name:AnyDataType
class
Class
Declaration
? methods
1
1
1
name:AnyDataType
AC AC
AC AC
AC AC
Nested
Method
Method
Definition
Inner
Method
Public
Method
name:String
Class
Declaration
name:String
class 1
methods
class
methods
*
*
Method
Invocation
method
invocations
1
*
Class
Declaration
methods *
class1
name:String
1
Method
Definition
name:int
invocations*
method
1
COMPATIBILITY
REQUIREMENTS
16
JavaSource2Table
SourceDRM TargetDRM
ClassDeclaration.methods
Reference
Integer Real
Table.rows
ReferenceAttribute
MethodDefinition ClassDeclaration Table Row
Compatibility rules (source choices)
Integer (1) requires Integer (5) or Real (6)
Real (2) requires Real (6)
MethodDefinition (3) requires Row (8)
ClassDeclaration (4) requires Table (7)
Integer Real
1 2 3 4 5 6 7 8
Compatibility rules (target choices)
Integer (5) requires Integer (1)
Real (6) requires Integer (1) or Real (2)
Table (7) requires ClassDeclaration (4)
Row (8) requires MethodDefinition (3)
Attribute
Table
? rows
CClass
Declaration
? methods
AC rule Class2Table {
from s : JavaSource!ClassDeclaration
to t : Table!Table ( rows <- s.methods )
}
EXTRACTING REQUIREMENTS
FROM ATL TRAFOS
ATL attribute grammar
17
EXTRACTING REQUIREMENTS
FROM ATL TRAFOS
ATL attribute grammar
18
IMPLEMENTATION
Eclipse plugin called TOTEM
• http://github.com/totem-mde/totem
19
EVALUATION
Empirical, using mutation-based testing
Four transformations developed by third parties
• Extract TRM
• Generate mutants of original src/tar meta-models
• Check conformance to TRM
• Check well-typedness using anATLyzer1 as oracle
20
M-to-M
transform.
extract
TRM
TRM
MMs MMt mutate MM’s MM’t
«typed by» «conforms»?
M-to-M
transform.
«well typed»?
conf? well
typed?
Y
result
Y TP
Y N FP
N Y FN
N N TN
1 J.S. Cuadrado, E. Guerra, J. de Lara. “Static analysis of model transformations”. IEEE TSE 2017.
EVALUATION
21
FPTP
TP
precision
##
#
+
=
(indication of correctness) (indication of completeness)
FNTP
TP
recall
##
#
+
=
CONCLUSIONS OF THE
EVALUATION
High precision and 100% recall
We could reuse the trafos with around 2.000 meta-models
Some false positives
• Limitation in the extraction process (eg., mandatory
cardinalities relaxed to optional)
Threats to validity
• Low number of transformations
• Still, around 3.300 meta-model mutants
• Completeness of mutation operators?
• anATLyzer as oracle.
22
RELATED WORK
Concepts
• “minimal meta-model”
• binding (adaptation)
Zschaler
• typing requirements using logic
• in-place trafos
Transformation footprints
• slice of the meta-model
Transformation intents
• semantic properties
Model uncertainty
• model annotations
23
Zschaler. Towards constraint-based model
types: A generalised formal foundation for
model genericity. VAO’14,, ACM
Cuadrado, Guerra, de Lara. A component
model for model transformations. IEEE TSE
2014.
Jeanneret, Glinz, Baudry. Estimating
footprints of model operations. ICSE 2011.
Salay, Zschaler, Chechick. Correct reuse of
transformations is hard to guarantee. ICMT
2016.
Famelis, Salay, Chechick. Partial models:
towards modeling and reasoning with
uncertainty. ICSE 2012.
CONCLUSIONS
New approach to model transformation reuse
TRMs, extracted from the transformation
Conformance of MM with respect to TRMs
Prototype tool support (TOTEM)
Evaluation showing good results
24
FUTURE WORK
Add binding to conformance relation
• Resolve heterogeneities (eg., renamings)
Heuristics for MM generation from DRMs
Incorporate semantic notions
• Transformation intents?
Graphical modelling tools for TRMs
Correctness proofs of TRM extraction
25
THANKS!
Juan.deLara@uam.es
26
http://www.miso.es
@miso_uam

More Related Content

What's hot

Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...Raffi Khatchadourian
 
Polymorphism in java, method overloading and method overriding
Polymorphism in java,  method overloading and method overridingPolymorphism in java,  method overloading and method overriding
Polymorphism in java, method overloading and method overridingJavaTportal
 
Polymorphism presentation in java
Polymorphism presentation in javaPolymorphism presentation in java
Polymorphism presentation in javaAhsan Raja
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codelbergmans
 
Complete java&j2ee
Complete java&j2eeComplete java&j2ee
Complete java&j2eeShiva Cse
 
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Coen De Roover
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languagesfranciscoortin
 
GenePattern: Ted Liefeld
GenePattern: Ted LiefeldGenePattern: Ted Liefeld
GenePattern: Ted Liefeldniranabey
 
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Shinpei Hayashi
 
PhD Maintainability of transformations in evolving MDE ecosystems
PhD Maintainability of transformations in evolving MDE ecosystemsPhD Maintainability of transformations in evolving MDE ecosystems
PhD Maintainability of transformations in evolving MDE ecosystemsJokin García Pérez
 
Method Handles in Java
Method Handles in JavaMethod Handles in Java
Method Handles in Javahendersk
 

What's hot (19)

Ppt chapter10
Ppt chapter10Ppt chapter10
Ppt chapter10
 
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
Open Problems in Automatically Refactoring Legacy Java Software to use New Fe...
 
Polymorphism in java, method overloading and method overriding
Polymorphism in java,  method overloading and method overridingPolymorphism in java,  method overloading and method overriding
Polymorphism in java, method overloading and method overriding
 
Javapolymorphism
JavapolymorphismJavapolymorphism
Javapolymorphism
 
Polymorphism presentation in java
Polymorphism presentation in javaPolymorphism presentation in java
Polymorphism presentation in java
 
Close Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet codeClose Encounters in MDD: when models meet code
Close Encounters in MDD: when models meet code
 
Complete java&j2ee
Complete java&j2eeComplete java&j2ee
Complete java&j2ee
 
Polymorphism in java
Polymorphism in javaPolymorphism in java
Polymorphism in java
 
Ppt chapter05
Ppt chapter05Ppt chapter05
Ppt chapter05
 
Ppt chapter12
Ppt chapter12Ppt chapter12
Ppt chapter12
 
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
Multi-dimensional exploration of API usage - ICPC13 - 21-05-13
 
Extending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective LanguagesExtending Rotor with Structural Reflection to support Reflective Languages
Extending Rotor with Structural Reflection to support Reflective Languages
 
Core java questions
Core java questionsCore java questions
Core java questions
 
7494605
74946057494605
7494605
 
C++ Interview Questions
C++ Interview QuestionsC++ Interview Questions
C++ Interview Questions
 
GenePattern: Ted Liefeld
GenePattern: Ted LiefeldGenePattern: Ted Liefeld
GenePattern: Ted Liefeld
 
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
Generating Assertion Code from OCL: A Transformational Approach Based on Simi...
 
PhD Maintainability of transformations in evolving MDE ecosystems
PhD Maintainability of transformations in evolving MDE ecosystemsPhD Maintainability of transformations in evolving MDE ecosystems
PhD Maintainability of transformations in evolving MDE ecosystems
 
Method Handles in Java
Method Handles in JavaMethod Handles in Java
Method Handles in Java
 

Similar to ReusingMT

Testing Model Transformations
Testing Model TransformationsTesting Model Transformations
Testing Model Transformationsmiso_uam
 
Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017Gwendal Daniel
 
SERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_schoolSERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_schoolHenry Muccini
 
SERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the CloudSERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the CloudSERENEWorkshop
 
Compilers Are Databases
Compilers Are DatabasesCompilers Are Databases
Compilers Are DatabasesMartin Odersky
 
Search-Based Robustness Testing of Data Processing Systems
Search-Based Robustness Testing of Data Processing SystemsSearch-Based Robustness Testing of Data Processing Systems
Search-Based Robustness Testing of Data Processing SystemsLionel Briand
 
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...Daniel Varro
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)Jordi Cabot
 
MOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityMOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityJavier Muñoz
 
Scala for Machine Learning
Scala for Machine LearningScala for Machine Learning
Scala for Machine LearningPatrick Nicolas
 
MDE-experiments
MDE-experimentsMDE-experiments
MDE-experimentsmiso_uam
 
A DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsA DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsPablo Gómez Abajo
 
Model Transformation Reuse
Model Transformation ReuseModel Transformation Reuse
Model Transformation Reusemiso_uam
 
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...waqarnabi
 
Driving Moore's Law with Python-Powered Machine Learning: An Insider's Perspe...
Driving Moore's Law with Python-Powered Machine Learning: An Insider's Perspe...Driving Moore's Law with Python-Powered Machine Learning: An Insider's Perspe...
Driving Moore's Law with Python-Powered Machine Learning: An Insider's Perspe...PyData
 
Approaches to Model Transformation Reuse: from Concepts to A-posteriori typing
Approaches to Model Transformation Reuse: from Concepts to A-posteriori typingApproaches to Model Transformation Reuse: from Concepts to A-posteriori typing
Approaches to Model Transformation Reuse: from Concepts to A-posteriori typingmiso_uam
 
Miso-McGill
Miso-McGillMiso-McGill
Miso-McGillmiso_uam
 

Similar to ReusingMT (20)

Testing Model Transformations
Testing Model TransformationsTesting Model Transformations
Testing Model Transformations
 
Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017Thesis Defense (Gwendal DANIEL) - Nov 2017
Thesis Defense (Gwendal DANIEL) - Nov 2017
 
SERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_schoolSERENE 2014 School: Daniel varro serene2014_school
SERENE 2014 School: Daniel varro serene2014_school
 
SERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the CloudSERENE 2014 School: Incremental Model Queries over the Cloud
SERENE 2014 School: Incremental Model Queries over the Cloud
 
Compilers Are Databases
Compilers Are DatabasesCompilers Are Databases
Compilers Are Databases
 
Search-Based Robustness Testing of Data Processing Systems
Search-Based Robustness Testing of Data Processing SystemsSearch-Based Robustness Testing of Data Processing Systems
Search-Based Robustness Testing of Data Processing Systems
 
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
IncQuery-D: Distributed Incremental Model Queries over the Cloud: Engineerin...
 
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)MDE=Model Driven Everything (Spanish Eclipse Day 2009)
MDE=Model Driven Everything (Spanish Eclipse Day 2009)
 
MOSKitt Transformations And Traceability
MOSKitt Transformations And TraceabilityMOSKitt Transformations And Traceability
MOSKitt Transformations And Traceability
 
Scala for Machine Learning
Scala for Machine LearningScala for Machine Learning
Scala for Machine Learning
 
MDE-experiments
MDE-experimentsMDE-experiments
MDE-experiments
 
5
55
5
 
A DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different DomainsA DSL for Model Mutation and its Applications to Different Domains
A DSL for Model Mutation and its Applications to Different Domains
 
Miso
MisoMiso
Miso
 
Model Transformation Reuse
Model Transformation ReuseModel Transformation Reuse
Model Transformation Reuse
 
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
A High-Level Programming Approach for using FPGAs in HPC using Functional Des...
 
Driving Moore's Law with Python-Powered Machine Learning: An Insider's Perspe...
Driving Moore's Law with Python-Powered Machine Learning: An Insider's Perspe...Driving Moore's Law with Python-Powered Machine Learning: An Insider's Perspe...
Driving Moore's Law with Python-Powered Machine Learning: An Insider's Perspe...
 
Approaches to Model Transformation Reuse: from Concepts to A-posteriori typing
Approaches to Model Transformation Reuse: from Concepts to A-posteriori typingApproaches to Model Transformation Reuse: from Concepts to A-posteriori typing
Approaches to Model Transformation Reuse: from Concepts to A-posteriori typing
 
Miso-McGill
Miso-McGillMiso-McGill
Miso-McGill
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 

More from miso_uam

Model-driven engineering for AR
Model-driven engineering for ARModel-driven engineering for AR
Model-driven engineering for ARmiso_uam
 
Capone.pdf
Capone.pdfCapone.pdf
Capone.pdfmiso_uam
 
MLE_keynote.pdf
MLE_keynote.pdfMLE_keynote.pdf
MLE_keynote.pdfmiso_uam
 
Scientific writing
Scientific writingScientific writing
Scientific writingmiso_uam
 
Facets_UCM
Facets_UCMFacets_UCM
Facets_UCMmiso_uam
 
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áticamiso_uam
 
Analysing-MMPLs
Analysing-MMPLsAnalysing-MMPLs
Analysing-MMPLsmiso_uam
 
keynote modelsward 2017
keynote modelsward 2017keynote modelsward 2017
keynote modelsward 2017miso_uam
 
MODELSWARD 2017 Panel
MODELSWARD 2017 PanelMODELSWARD 2017 Panel
MODELSWARD 2017 Panelmiso_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
 
Analysing-MMPLs
Analysing-MMPLsAnalysing-MMPLs
Analysing-MMPLs
 
Facets
FacetsFacets
Facets
 
kite
kitekite
kite
 
MTPLs
MTPLsMTPLs
MTPLs
 
DSLcomet
DSLcometDSLcomet
DSLcomet
 
SICOMORO
SICOMOROSICOMORO
SICOMORO
 
keynote modelsward 2017
keynote modelsward 2017keynote modelsward 2017
keynote modelsward 2017
 
MODELSWARD 2017 Panel
MODELSWARD 2017 PanelMODELSWARD 2017 Panel
MODELSWARD 2017 Panel
 
MetaDepth
MetaDepthMetaDepth
MetaDepth
 
DSL-maps
DSL-mapsDSL-maps
DSL-maps
 

Recently uploaded

%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in sowetomasabamasaba
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyviewmasabamasaba
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...Health
 
%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 Hararemasabamasaba
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Steffen Staab
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnAmarnathKambale
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2
 
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.pdfkalichargn70th171
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park masabamasaba
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisamasabamasaba
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024VictoriaMetrics
 
%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 Bahrainmasabamasaba
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Bert Jan Schrijver
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...Jittipong Loespradit
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplatePresentation.STUDIO
 

Recently uploaded (20)

%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto%in Soweto+277-882-255-28 abortion pills for sale in soweto
%in Soweto+277-882-255-28 abortion pills for sale in soweto
 
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
%in Hazyview+277-882-255-28 abortion pills for sale in Hazyview
 
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
+971565801893>>SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHAB...
 
%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
 
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
Shapes for Sharing between Graph Data Spaces - and Epistemic Querying of RDF-...
 
VTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learnVTU technical seminar 8Th Sem on Scikit-learn
VTU technical seminar 8Th Sem on Scikit-learn
 
WSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go PlatformlessWSO2CON2024 - It's time to go Platformless
WSO2CON2024 - It's time to go Platformless
 
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
WSO2CON 2024 - Cloud Native Middleware: Domain-Driven Design, Cell-Based Arch...
 
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
 
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park %in ivory park+277-882-255-28 abortion pills for sale in ivory park
%in ivory park+277-882-255-28 abortion pills for sale in ivory park
 
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With SimplicityWSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
WSO2Con2024 - Enabling Transactional System's Exponential Growth With Simplicity
 
WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?WSO2CON 2024 - Does Open Source Still Matter?
WSO2CON 2024 - Does Open Source Still Matter?
 
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa%in tembisa+277-882-255-28 abortion pills for sale in tembisa
%in tembisa+277-882-255-28 abortion pills for sale in tembisa
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
Large-scale Logging Made Easy: Meetup at Deutsche Bank 2024
 
%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
 
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
Devoxx UK 2024 - Going serverless with Quarkus, GraalVM native images and AWS...
 
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
MarTech Trend 2024 Book : Marketing Technology Trends (2024 Edition) How Data...
 
AI & Machine Learning Presentation Template
AI & Machine Learning Presentation TemplateAI & Machine Learning Presentation Template
AI & Machine Learning Presentation Template
 

ReusingMT

  • 1. REUSING MODEL TRANSFORMATIONS THROUGH TYPING REQUIREMENTS MODELS FASE’2017, Uppsala J. de Lara1, J. Di Rocco2, D. Di Ruscio2, E. Guerra1, L. Iovino3, A. Pierantonio2, J. S. Cuadrado1 1Universidad Autónoma de Madrid (Spain) 2University of L’Aquila (Italy) 3Gran Sasso Science Institute (Italy)
  • 2. MOTIVATION & OVERVIEW Model driven engineering • Domain-specific languages • Proliferation of meta-models Model to model transformations • typed w.r.t. source and target meta-models • hard to reuse for other, similar meta-models 2 Msrc Mtar «conforms to» «conforms to» Transformation execution MMsrc Transformation definition to MMtar from from to
  • 3. MOTIVATION & OVERVIEW 3 Can I use my meta-model(s) with an existing transformation? Msrc Mtar «conforms to» «conforms to» Transformation execution MMsrc Transformation definition to MMtar from from to Model driven engineering • Domain-specific languages • Proliferation of meta-models Model to model transformations • typed w.r.t. source and target meta-models • hard to reuse for other, similar meta-models MM’src from MM’tarto ?
  • 4. MOTIVATION & OVERVIEW 4 What are the (minimal) requirements for src/tar meta-models to work with a transformation definition? Msrc Mtar «conforms to» «conforms to» Transformation execution tofrom Model driven engineering • Domain-specific languages • Proliferation of meta-models Model to model transformations • typed w.r.t. source and target meta-models • hard to reuse for other, similar meta-models MM’src MMtar source MM reqs target MM reqs Transformation definition from to compatibility «conforms to» «conforms to»«typing reqs» TRM
  • 5. AGENDA Example Typing requirement models Extracting typing requirements from ATL trafos Implementation and validation Related research Conclusions and Future work 5
  • 6. EXAMPLE: JAVA METHOD CALLS TO TABLE class Action { public void do() { if (this.pre()) this.exec(); } public boolean pre() {…} public void exec() {… this.do()…} } 6 do() pre() exec() do() pre() exec() 0 1 1 0 0 0 1 0 0 Action Java Source NamedElement name: String Class Declaration Method Definition super class methods *class Method Invocation invocations* method classes * Table Row Cell content: String rows cells 1..* 1..*
  • 7. EXAMPLE (1/2): JAVA METHOD CALLS TO TABLE module JavaSource2Table; create OUT : Table from IN : JavaSource; rule Class2Table { from s : JavaSource!ClassDeclaration to t : Table!Table ( rows <- s.methods ) } rule Method2Row { from m : JavaSource!MethodDefinition to row : Table!Row ( cells <- Sequence{JavaSource!MethodDefinition.allInstances() ->collect(md | thisModule.DataCells(md, m))} ) } 7
  • 8. EXAMPLE (2/2): JAVA METHOD CALLS TO TABLE lazy rule DataCells { from md: JavaSource!MethodDefinition, m: JavaSource!MethodDefinition to cell: Table!Cell ( content <- m.computeContent(md) ) } helper context JavaSource!MethodDefinition def : computeContent(col : JavaSource!MethodDefinition) : String = self.invocations->select(i | i.method.name = col.name and i.method.class.name = col.class.name) ->size().toString(); 8
  • 9. REUSING THE TRANSFORMATION 9 ? … Can we reuse the transformation with different meta-models?
  • 10. DESCRIBING TYPING REQUIREMENTS Domain Typing Requirements (DRMs) • Models to describe requirements from meta-models • Characterize sets of meta-models Classes • Named and anonymous • Abstract, concrete or don’t care • Restrictions regarding inheritance Features • Name and optionally a type (reference or attribute) • More mandatory fields allowed or not • Several possible target classes for references • Uncertainty in cardinalities 10
  • 11. DRM META-MODEL 11 mandatoryAllowed: boolean subsAllowed: boolean isAbstract: UBoolean Feature name: String[1]* feats Reference Cardinality Number value: int allowLess: boolean allowMore: booolean Any Cardinality Many min 1 max 1 Attribute * targets DataType Numeric Real Integer StringAny DataType Enum Literal name: String[1]name: String[0..1] * literals dtype1 ancs * antiancs * FeatureType * isOrdered: UBoolean isUnique: UBoolean <<enum>> UBoolean True False Any Anonymous Class types INVARIANTS: context Feature inv: not self.min.oclIsTypeOf(Many) Boolean Class Named Class name: String
  • 12. SOURCE/TARGET DRMs 12 MethodDefinition name: AnyDataType class?..* invocations method name: AnyDataType name: AnyDataType class Class Declaration ? methods 1 1 1 Table Row Cell ? rows content: String ?..* cells name: AnyDataType C C C AC AC AC AC AC AC C concrete class AC abstract or concrete class anonymous class extra mandatory features forbidden Conformance checking can be deferred to subclasses anti ancestor ? rows attribute or reference Legend
  • 14. CONFORMANCE EXAMPLES 14 Method Definition name:String NamedElement Class Declaration methods * class1 Method Invocationinvocations * method 1 Method Definition name:int Class Declaration methods * class1 invocations* method 1 name:String MethodDefinition name:AnyDataType class?..* invocations method name:AnyDataType name:AnyDataType class Class Declaration ? methods 1 1 1 name:AnyDataType AC AC AC AC AC AC
  • 15. CONFORMANCE EXAMPLES 15 MethodDefinition name:AnyDataType class?..* invocations method name:AnyDataType name:AnyDataType class Class Declaration ? methods 1 1 1 name:AnyDataType AC AC AC AC AC AC Nested Method Method Definition Inner Method Public Method name:String Class Declaration name:String class 1 methods class methods * * Method Invocation method invocations 1 * Class Declaration methods * class1 name:String 1 Method Definition name:int invocations* method 1
  • 16. COMPATIBILITY REQUIREMENTS 16 JavaSource2Table SourceDRM TargetDRM ClassDeclaration.methods Reference Integer Real Table.rows ReferenceAttribute MethodDefinition ClassDeclaration Table Row Compatibility rules (source choices) Integer (1) requires Integer (5) or Real (6) Real (2) requires Real (6) MethodDefinition (3) requires Row (8) ClassDeclaration (4) requires Table (7) Integer Real 1 2 3 4 5 6 7 8 Compatibility rules (target choices) Integer (5) requires Integer (1) Real (6) requires Integer (1) or Real (2) Table (7) requires ClassDeclaration (4) Row (8) requires MethodDefinition (3) Attribute Table ? rows CClass Declaration ? methods AC rule Class2Table { from s : JavaSource!ClassDeclaration to t : Table!Table ( rows <- s.methods ) }
  • 17. EXTRACTING REQUIREMENTS FROM ATL TRAFOS ATL attribute grammar 17
  • 18. EXTRACTING REQUIREMENTS FROM ATL TRAFOS ATL attribute grammar 18
  • 19. IMPLEMENTATION Eclipse plugin called TOTEM • http://github.com/totem-mde/totem 19
  • 20. EVALUATION Empirical, using mutation-based testing Four transformations developed by third parties • Extract TRM • Generate mutants of original src/tar meta-models • Check conformance to TRM • Check well-typedness using anATLyzer1 as oracle 20 M-to-M transform. extract TRM TRM MMs MMt mutate MM’s MM’t «typed by» «conforms»? M-to-M transform. «well typed»? conf? well typed? Y result Y TP Y N FP N Y FN N N TN 1 J.S. Cuadrado, E. Guerra, J. de Lara. “Static analysis of model transformations”. IEEE TSE 2017.
  • 21. EVALUATION 21 FPTP TP precision ## # + = (indication of correctness) (indication of completeness) FNTP TP recall ## # + =
  • 22. CONCLUSIONS OF THE EVALUATION High precision and 100% recall We could reuse the trafos with around 2.000 meta-models Some false positives • Limitation in the extraction process (eg., mandatory cardinalities relaxed to optional) Threats to validity • Low number of transformations • Still, around 3.300 meta-model mutants • Completeness of mutation operators? • anATLyzer as oracle. 22
  • 23. RELATED WORK Concepts • “minimal meta-model” • binding (adaptation) Zschaler • typing requirements using logic • in-place trafos Transformation footprints • slice of the meta-model Transformation intents • semantic properties Model uncertainty • model annotations 23 Zschaler. Towards constraint-based model types: A generalised formal foundation for model genericity. VAO’14,, ACM Cuadrado, Guerra, de Lara. A component model for model transformations. IEEE TSE 2014. Jeanneret, Glinz, Baudry. Estimating footprints of model operations. ICSE 2011. Salay, Zschaler, Chechick. Correct reuse of transformations is hard to guarantee. ICMT 2016. Famelis, Salay, Chechick. Partial models: towards modeling and reasoning with uncertainty. ICSE 2012.
  • 24. CONCLUSIONS New approach to model transformation reuse TRMs, extracted from the transformation Conformance of MM with respect to TRMs Prototype tool support (TOTEM) Evaluation showing good results 24
  • 25. FUTURE WORK Add binding to conformance relation • Resolve heterogeneities (eg., renamings) Heuristics for MM generation from DRMs Incorporate semantic notions • Transformation intents? Graphical modelling tools for TRMs Correctness proofs of TRM extraction 25