SlideShare uma empresa Scribd logo
1 de 60
Michalis Famelis, Rick Salay,
Alessio Di Sandro, Marsha Chechik
University of Toronto
MODELS 2013, Miami Beach, FL
Transformation of Models
Containing Uncertainty
2
This is Natalie.
Natalie is a modeler.
Natalie faces uncertainty in her everyday work.
Alternative Designs
3
Hmm, I don’t
know which
one, yet.
Conflicting Stakeholder Opinions
4
What do I do
until they
decide?
Incomplete Information
5
I don’t know
everything about
this, yet.
Uncertainty in software development
6
Uncertainty about the
content of the model.
Many design alternatives Conflicting stakeholder opinionsIncomplete information
Transformations
7
Like every
good MBE
practitioner,
Natalie uses
a variety of MTs
Transformations
8
The transformations assume
inputs that don’t contain
uncertainty
Like every
good MBE
practitioner,
Natalie uses
a variety of MTs
Transformations
9
But only too often, Natalie’s models contain uncertainty:
The transformations assume
inputs that don’t contain
uncertainty
Like every
good MBE
practitioner,
Natalie uses
a variety of MTs
Transforming Models with Uncertainty
10
Natalie should be able
to use model
transformations
Transforming Models with Uncertainty
11
Natalie should be able
to use model
transformations
Transforming Models with Uncertainty
12
Natalie should be able
to use model
transformations
Existing transformation techniques
do not support this!
To apply MTs, Natalie is forced
to artificially remove uncertainty
Transforming Models with Uncertainty
13
We need to lift Natalie’s transformations so that
they can apply to models with uncertainty
Existing transformation techniques
do not support this!
Natalie should be able
to use model
transformations
Outline
14
Representing Uncertainty
with Partial Models
Transforming
Partial Models
Tool
Support
Empirical
Evaluation
Reminder: Model
Transformations
Model Transformations With Graph
Rewriting
15
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
Negative
Application
Condition
Left
Hand
Side
Right
Hand
Side
EncapsulateVariable refactoring:
Make fields private and add getter methods
unless they belong to some inner class
Example rule:
Example Input Model
16
Solver
SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Example Input Model
17
Solver
SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Match
Example Input Model
18
Solver
SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
NAC also matches! ABORT !
Example Input Model 2
19
SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Example Input Model 2
20
SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Match
Example Input Model 2
21
SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Delete
Example Input Model 2
22
SolverException
effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Example Input Model 2
23
SolverException
- effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Add
Example Input Model 2
24
SolverException
- effect : String
+ getEffect() : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Add
Example Input Model 2
25
SolverException
- effect : String
+ getEffect() : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
No more LHS
matches.
Stop.
Outline
26
Representing Uncertainty
with Partial Models
Representing Uncertainty
Partial Models [ICSE12]
• Points of uncertainty
(“May elements”)
explicated using
syntactic annotations
27
Solver
SolverException
+ effect : String
Unsure if it
should be an
inner class.
Unsure if we
need this field.
Representing Uncertainty
Partial Models [ICSE12]
• Points of uncertainty
(“May elements”)
explicated using
syntactic annotations
Propositional variables:
“the element exists”
28
Solver
SolverException
+ effect : String
X
Y
Representing Uncertainty
29
Solver
SolverException
+ effect : String
X
Y
Solver
SolverException
Solver
SolverException
Solver
SolverException
+ effect : String
Solver
SolverException
+ effect : String
x=F, y=F x=T, y=F
x=F, y=T x=T, y=T
4 concretizations: 4 ways to resolve uncertainty.
Representing Uncertainty
Partial Models [ICSE12]
• Points of uncertainty
(“May elements”)
explicated using
syntactic annotations
• Restrictions to the set
of concretizations can
be captured in the
“May formula”
30
Solver
SolverException
+ effect : String
X
Y
X v Y
Representing Uncertainty
31
Solver
SolverException
+ effect : String
X
Y
Solver
SolverException
Solver
SolverException
Solver
SolverException
+ effect : String
Solver
SolverException
+ effect : String
x=F, y=F x=T, y=F
x=F, y=T x=T, y=T
X v Y
Outline
32
Transforming
Partial Models
Transforming Models With Uncertainty
33
Natalie wants to apply
the rule to an input
with uncertainty
Why Is It Hard?
34
Solver SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
X
Y
X v Y
Why Is It Hard?
35
Solver SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Match???
X
Y
X v Y
Why Is It Hard?
36
Solver SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Match???
X
Y
X v Y
Why Is It Hard?
37
Solver SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Should we delete?
Should
we add?
X
Y
X v Y
Why Is It Hard?
38
Solver SolverException
+ effect : String
class1
+ attribute : type
class1
- attribute : type
+ getAttribute() :type
class1
class2
RHSLHSNAC
Existing transformation
techniques cannot be used.
X
Y
X v Y
Intuition
39
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
X
Y
X v Y
?
(And definition of
correctness)
Intuition
40
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
Solver
SolverException
+ effect : String
Solver
SolverException
?
(And definition of
correctness)
Intuition
41
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
Solver
SolverException
+ effect : String
Solver
SolverException
Solver
SolverException
-effect : String
+getEffect() : String
Solver
SolverException
+ effect : String
Solver
SolverException
(And definition of
correctness)
Intuition
42
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
Solver
SolverException
+ effect : String
Solver
SolverException
( X∧ ¬Y ∧ ¬a ∧ ¬b) v
(¬X∧ Y ∧ ¬a ∧ b) v
( X∧ Y ∧ a ∧ ¬b)
Solver
SolverException
+ - effect : String
+getEffect() : String
X
Ya
b
(And definition of
correctness)
Intuition
43
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
X
Y
X v Y
( X∧ ¬Y ∧ ¬a ∧ ¬b) v
(¬X∧ Y ∧ ¬a ∧ b) v
( X∧ Y ∧ a ∧ ¬b)
Solver
SolverException
+ - effect : String
+getEffect() : String
X
Ya
b
(And definition of
correctness)
Technique
44
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
X
Y
X v Y
Technique
45
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
X
Y
X v Y
(a) Find Match
Step 1:
Determine
applicability
Technique
46
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
X
Y
X v Y
(a) Find Match
(b) Make sure the
rule applies to
at least one
concretization
(requires solving
a SAT problem)
Step 1:
Determine
applicability
Technique
47
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
X
Y
X v Y
Solver
X
Step 1:
Determine
applicability
Step 2:
Transform graph
SolverException
+ effect : String
Y
(a) Copy over unchanged
parts
Technique
48
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
X
Y
X v Y
Solver
SolverException
+ - effect : String
+getEffect() : String
X
Ya
b
Step 1:
Determine
applicability
Step 2:
Transform graph
(a) Copy over unchanged
parts
(b) Perform additions and
deletions
Added and deleted
elements become Maybe
Technique
49
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
X
Y
X v Y
Step 1:
Determine
applicability
Step 2:
Transform graph
Step 3:
Transform formula
( X∧ ¬Y ∧ ¬a ∧ ¬b) v
(¬X∧ Y ∧ ¬a ∧ b) v
( X∧ Y ∧ a ∧ ¬b)
Solver
SolverException
+ - effect : String
+getEffect() : String
X
Ya
b
Constrain Maybe elements
to ensure each that
concretization
is correctly affected.
Overview
50
class1
+ attribute : type
class1
- attribute : type
+ getAttribute():type
class1
class2
RHSLHSNAC
Solver
SolverException
+ effect : String
X
Y
X v Y
( X∧ ¬Y ∧ ¬a ∧ ¬b) v
(¬X∧ Y ∧ ¬a ∧ b) v
( X∧ Y ∧ a ∧ ¬b)
Solver
SolverException
+ - effect : String
+getEffect() : String
X
Ya
b
Step 1:
Determine
applicability
Step 2:
Transform graph
Step 3:
Transform formula
Analysis
In the paper:
• Proof of correctness
• The lifting algorithm implements
our intuition
• Proofs of preservation of properties:
1. Confluence
The result of applying a set of rules to a model is the same regardless of
the order of application or the order of matching sites.
2. Termination
Repeated applications will reach a point where the rule will no longer be
applicable.
51
Outline
52
Tool
Support
Empirical
Evaluation
Tool Support
• Reuse partial model implementation in MMTF
(Eclipse / EMF)
• Algorithm implementation
1. Determine rule applicability
• Henshin and the Z3 SMT solver
2. Transform the graph
• Henshin
3. Transform the formula
• Java (Z3 input strings)
53
MMTF
Case Study
• Object–relational mapping (ORM)
• “Translate a class diagram to a relational database
schema.”
• Classic benchmark for model
transformation research
• Triple graph grammar with 5 layered graph rules [Varro06]
54
(Image from [Varro06])
Case Study
• Input model: the Ecore metamodel
• ORM for Ecore is important: cf. CDO and Teneo
• Manually flattened inheritance hierarchy and adapted to the
metamodel in [Varro06]
• Resulting model had 65 model elements:
• 17 classes, 17 associations, 6 generalization links, 25 attributes
• Manually injected points of uncertainty to create partial models
with increasing numbers of concretizations
55
Setup And Results
• RQ: How does lifting scale with increasing uncertainty?
• Varied: number of concretizations of input
• Measured: time to complete the ORM transformation
• Ran on Intel Core i7-2600 3.40GHz×4core, 8GB RAM, Ubuntu-64 12.10.
• Runtime does not increase dramatically. Approach scales.
56
# concretizations 1 24 48 108 144 192 256
Time (seconds) 32.6 32.8 32.7 32.9 32.6 33.0 48.4
Summary
57
Decision deferral in the
presence of uncertainty
Existing techniques
cannot handle uncertainty
Explicit uncertainty modeling
with Partial Models
Syntactic annotations and
May formula
Transform Partial Models
1. Determine applicability
2. Transform graph
3. Transform formula
Approach scales for
increasing levels of
uncertainty
Tool
Support
Empirical
Evaluation
Case Study:
Object-relational
mapping for the
Ecore metamodel
Next Steps
• Implement lifted semantics as a higher-order
transformation (HOT)
• Given a graph rewrite rule, produce a grammar that
implements the lifted semantics
• Benefit: out of the box reuse of existing graph
transformation tools (Henshin, AGG, etc.)
• Expand lifting for other types of model
uncertainty, based on the rich MAVO framework
[FASE12]
58
Questions?
icons by:
Bibliography
[ICSE12] M. Famelis, M. Chechik, and R. Salay. “Partial Models:
Towards Modeling and Reasoning with Uncertainty”. In Proc. of
ICSE’12, 2012.
[Varro06] D. Varro, S. Varro-Gyapay, H. Ehrig, U. Prange, and G.
Taentzer. “Termination Analysis of Model Transformations by Petri
Nets”. In Proc. of ICGT’06, pages 260–274, 2006.
[FASE12] R. Salay, M. Famelis, and M. Chechik. “Language
Independent Refinement using Partial Modeling”. In Proc. of FASE’12,
2012.
60

Mais conteúdo relacionado

Destaque

The Semantics of Partial Model Transformations
The Semantics of Partial Model TransformationsThe Semantics of Partial Model Transformations
The Semantics of Partial Model TransformationsMichalis Famelis
 
Using Developer Conversations to Resolve Uncertainty in Software Development:...
Using Developer Conversations to Resolve Uncertainty in Software Development:...Using Developer Conversations to Resolve Uncertainty in Software Development:...
Using Developer Conversations to Resolve Uncertainty in Software Development:...Michalis Famelis
 
Partial Models: Towards Modeling and Reasoning with Uncertainty
Partial Models: Towards Modeling and Reasoning with UncertaintyPartial Models: Towards Modeling and Reasoning with Uncertainty
Partial Models: Towards Modeling and Reasoning with UncertaintyMichalis Famelis
 
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...Dimitris Kolovos
 
Uncertainty Management With Partial Models
Uncertainty Management With Partial ModelsUncertainty Management With Partial Models
Uncertainty Management With Partial ModelsMichalis Famelis
 

Destaque (6)

The Semantics of Partial Model Transformations
The Semantics of Partial Model TransformationsThe Semantics of Partial Model Transformations
The Semantics of Partial Model Transformations
 
Using Developer Conversations to Resolve Uncertainty in Software Development:...
Using Developer Conversations to Resolve Uncertainty in Software Development:...Using Developer Conversations to Resolve Uncertainty in Software Development:...
Using Developer Conversations to Resolve Uncertainty in Software Development:...
 
Developing a new Epsilon EMC driver
Developing a new Epsilon EMC driverDeveloping a new Epsilon EMC driver
Developing a new Epsilon EMC driver
 
Partial Models: Towards Modeling and Reasoning with Uncertainty
Partial Models: Towards Modeling and Reasoning with UncertaintyPartial Models: Towards Modeling and Reasoning with Uncertainty
Partial Models: Towards Modeling and Reasoning with Uncertainty
 
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
Developing a new Epsilon Language through Grammar Extension: The Epsilon Dem...
 
Uncertainty Management With Partial Models
Uncertainty Management With Partial ModelsUncertainty Management With Partial Models
Uncertainty Management With Partial Models
 

Semelhante a Transformations of Models Containing Uncertainty

Chapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class ConstructionChapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class ConstructionIt Academy
 
11review(inheritance andpolymorphism)
11review(inheritance andpolymorphism)11review(inheritance andpolymorphism)
11review(inheritance andpolymorphism)IIUM
 
Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Abou Bakr Ashraf
 
Std 12 computer chapter 8 classes and objects in java important MCQs
Std 12 computer chapter 8 classes and objects in java important MCQsStd 12 computer chapter 8 classes and objects in java important MCQs
Std 12 computer chapter 8 classes and objects in java important MCQsNuzhat Memon
 
The Ring programming language version 1.2 book - Part 20 of 84
The Ring programming language version 1.2 book - Part 20 of 84The Ring programming language version 1.2 book - Part 20 of 84
The Ring programming language version 1.2 book - Part 20 of 84Mahmoud Samir Fayed
 
Java language fundamentals
Java language fundamentalsJava language fundamentals
Java language fundamentalsKapish Joshi
 
All based on Zybooks = AP Java with zylabsPlease answer all questi.pdf
All based on Zybooks = AP Java with zylabsPlease answer all questi.pdfAll based on Zybooks = AP Java with zylabsPlease answer all questi.pdf
All based on Zybooks = AP Java with zylabsPlease answer all questi.pdfdeepakarora871
 
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013 The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013 GR8Conf
 
The Ring programming language version 1.8 book - Part 80 of 202
The Ring programming language version 1.8 book - Part 80 of 202The Ring programming language version 1.8 book - Part 80 of 202
The Ring programming language version 1.8 book - Part 80 of 202Mahmoud Samir Fayed
 
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Jordi Cabot
 
Question 1 1 pts Skip to question text.As part of a bank account.docx
Question 1 1 pts Skip to question text.As part of a bank account.docxQuestion 1 1 pts Skip to question text.As part of a bank account.docx
Question 1 1 pts Skip to question text.As part of a bank account.docxamrit47
 
The Ring programming language version 1.4 book - Part 9 of 30
The Ring programming language version 1.4 book - Part 9 of 30The Ring programming language version 1.4 book - Part 9 of 30
The Ring programming language version 1.4 book - Part 9 of 30Mahmoud Samir Fayed
 
20101017 program analysis_for_security_livshits_lecture02_compilers
20101017 program analysis_for_security_livshits_lecture02_compilers20101017 program analysis_for_security_livshits_lecture02_compilers
20101017 program analysis_for_security_livshits_lecture02_compilersComputer Science Club
 
The Ring programming language version 1.5.2 book - Part 70 of 181
The Ring programming language version 1.5.2 book - Part 70 of 181The Ring programming language version 1.5.2 book - Part 70 of 181
The Ring programming language version 1.5.2 book - Part 70 of 181Mahmoud Samir Fayed
 
Python Puzzlers - 2016 Edition
Python Puzzlers - 2016 EditionPython Puzzlers - 2016 Edition
Python Puzzlers - 2016 EditionNandan Sawant
 
Devry CIS 247 Full Course Latest
Devry CIS 247 Full Course LatestDevry CIS 247 Full Course Latest
Devry CIS 247 Full Course LatestAtifkhilji
 

Semelhante a Transformations of Models Containing Uncertainty (20)

Chapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class ConstructionChapter 5:Understanding Variable Scope and Class Construction
Chapter 5:Understanding Variable Scope and Class Construction
 
11review(inheritance andpolymorphism)
11review(inheritance andpolymorphism)11review(inheritance andpolymorphism)
11review(inheritance andpolymorphism)
 
Visula C# Programming Lecture 6
Visula C# Programming Lecture 6Visula C# Programming Lecture 6
Visula C# Programming Lecture 6
 
Std 12 computer chapter 8 classes and objects in java important MCQs
Std 12 computer chapter 8 classes and objects in java important MCQsStd 12 computer chapter 8 classes and objects in java important MCQs
Std 12 computer chapter 8 classes and objects in java important MCQs
 
The Ring programming language version 1.2 book - Part 20 of 84
The Ring programming language version 1.2 book - Part 20 of 84The Ring programming language version 1.2 book - Part 20 of 84
The Ring programming language version 1.2 book - Part 20 of 84
 
Java language fundamentals
Java language fundamentalsJava language fundamentals
Java language fundamentals
 
Boost.Dispatch
Boost.DispatchBoost.Dispatch
Boost.Dispatch
 
All based on Zybooks = AP Java with zylabsPlease answer all questi.pdf
All based on Zybooks = AP Java with zylabsPlease answer all questi.pdfAll based on Zybooks = AP Java with zylabsPlease answer all questi.pdf
All based on Zybooks = AP Java with zylabsPlease answer all questi.pdf
 
ML-MCQ.pdf
ML-MCQ.pdfML-MCQ.pdf
ML-MCQ.pdf
 
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013 The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
The Next Generation MOP, Jochen Theodorou, GR8Conf 2013
 
The Ring programming language version 1.8 book - Part 80 of 202
The Ring programming language version 1.8 book - Part 80 of 202The Ring programming language version 1.8 book - Part 80 of 202
The Ring programming language version 1.8 book - Part 80 of 202
 
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
Explicating and Reasoning with Model Uncertainty by Marsha Chechik (ECMFA'14 ...
 
Question 1 1 pts Skip to question text.As part of a bank account.docx
Question 1 1 pts Skip to question text.As part of a bank account.docxQuestion 1 1 pts Skip to question text.As part of a bank account.docx
Question 1 1 pts Skip to question text.As part of a bank account.docx
 
The Ring programming language version 1.4 book - Part 9 of 30
The Ring programming language version 1.4 book - Part 9 of 30The Ring programming language version 1.4 book - Part 9 of 30
The Ring programming language version 1.4 book - Part 9 of 30
 
20101017 program analysis_for_security_livshits_lecture02_compilers
20101017 program analysis_for_security_livshits_lecture02_compilers20101017 program analysis_for_security_livshits_lecture02_compilers
20101017 program analysis_for_security_livshits_lecture02_compilers
 
mtATL
mtATLmtATL
mtATL
 
The Ring programming language version 1.5.2 book - Part 70 of 181
The Ring programming language version 1.5.2 book - Part 70 of 181The Ring programming language version 1.5.2 book - Part 70 of 181
The Ring programming language version 1.5.2 book - Part 70 of 181
 
Python Puzzlers - 2016 Edition
Python Puzzlers - 2016 EditionPython Puzzlers - 2016 Edition
Python Puzzlers - 2016 Edition
 
Devry CIS 247 Full Course Latest
Devry CIS 247 Full Course LatestDevry CIS 247 Full Course Latest
Devry CIS 247 Full Course Latest
 
L03 Software Design
L03 Software DesignL03 Software Design
L03 Software Design
 

Último

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024The Digital Insurer
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoffsammart93
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobeapidays
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...Zilliz
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Jeffrey Haguewood
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century educationjfdjdjcjdnsjd
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfOverkill Security
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodJuan lago vázquez
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...apidays
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDropbox
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...Martijn de Jong
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingEdi Saputra
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWERMadyBayot
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Angeliki Cooney
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...apidays
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024The Digital Insurer
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...apidays
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProduct Anonymous
 

Último (20)

FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024FWD Group - Insurer Innovation Award 2024
FWD Group - Insurer Innovation Award 2024
 
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
+971581248768>> SAFE AND ORIGINAL ABORTION PILLS FOR SALE IN DUBAI AND ABUDHA...
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, AdobeApidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
Apidays New York 2024 - Scaling API-first by Ian Reasor and Radu Cotescu, Adobe
 
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ..."I see eyes in my soup": How Delivery Hero implemented the safety system for ...
"I see eyes in my soup": How Delivery Hero implemented the safety system for ...
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Cyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdfCyberprint. Dark Pink Apt Group [EN].pdf
Cyberprint. Dark Pink Apt Group [EN].pdf
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
Apidays New York 2024 - APIs in 2030: The Risk of Technological Sleepwalk by ...
 
DBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor PresentationDBX First Quarter 2024 Investor Presentation
DBX First Quarter 2024 Investor Presentation
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost SavingRepurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
Repurposing LNG terminals for Hydrogen Ammonia: Feasibility and Cost Saving
 
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWEREMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
EMPOWERMENT TECHNOLOGY GRADE 11 QUARTER 2 REVIEWER
 
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
Biography Of Angeliki Cooney | Senior Vice President Life Sciences | Albany, ...
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024Manulife - Insurer Transformation Award 2024
Manulife - Insurer Transformation Award 2024
 
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
Apidays New York 2024 - Passkeys: Developing APIs to enable passwordless auth...
 
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemkeProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
ProductAnonymous-April2024-WinProductDiscovery-MelissaKlemke
 

Transformations of Models Containing Uncertainty

  • 1. Michalis Famelis, Rick Salay, Alessio Di Sandro, Marsha Chechik University of Toronto MODELS 2013, Miami Beach, FL Transformation of Models Containing Uncertainty
  • 2. 2 This is Natalie. Natalie is a modeler. Natalie faces uncertainty in her everyday work.
  • 3. Alternative Designs 3 Hmm, I don’t know which one, yet.
  • 4. Conflicting Stakeholder Opinions 4 What do I do until they decide?
  • 5. Incomplete Information 5 I don’t know everything about this, yet.
  • 6. Uncertainty in software development 6 Uncertainty about the content of the model. Many design alternatives Conflicting stakeholder opinionsIncomplete information
  • 8. Transformations 8 The transformations assume inputs that don’t contain uncertainty Like every good MBE practitioner, Natalie uses a variety of MTs
  • 9. Transformations 9 But only too often, Natalie’s models contain uncertainty: The transformations assume inputs that don’t contain uncertainty Like every good MBE practitioner, Natalie uses a variety of MTs
  • 10. Transforming Models with Uncertainty 10 Natalie should be able to use model transformations
  • 11. Transforming Models with Uncertainty 11 Natalie should be able to use model transformations
  • 12. Transforming Models with Uncertainty 12 Natalie should be able to use model transformations Existing transformation techniques do not support this! To apply MTs, Natalie is forced to artificially remove uncertainty
  • 13. Transforming Models with Uncertainty 13 We need to lift Natalie’s transformations so that they can apply to models with uncertainty Existing transformation techniques do not support this! Natalie should be able to use model transformations
  • 14. Outline 14 Representing Uncertainty with Partial Models Transforming Partial Models Tool Support Empirical Evaluation Reminder: Model Transformations
  • 15. Model Transformations With Graph Rewriting 15 class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 Negative Application Condition Left Hand Side Right Hand Side EncapsulateVariable refactoring: Make fields private and add getter methods unless they belong to some inner class Example rule:
  • 16. Example Input Model 16 Solver SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC
  • 17. Example Input Model 17 Solver SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC Match
  • 18. Example Input Model 18 Solver SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC NAC also matches! ABORT !
  • 19. Example Input Model 2 19 SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC
  • 20. Example Input Model 2 20 SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC Match
  • 21. Example Input Model 2 21 SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC Delete
  • 22. Example Input Model 2 22 SolverException effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC
  • 23. Example Input Model 2 23 SolverException - effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC Add
  • 24. Example Input Model 2 24 SolverException - effect : String + getEffect() : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC Add
  • 25. Example Input Model 2 25 SolverException - effect : String + getEffect() : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC No more LHS matches. Stop.
  • 27. Representing Uncertainty Partial Models [ICSE12] • Points of uncertainty (“May elements”) explicated using syntactic annotations 27 Solver SolverException + effect : String Unsure if it should be an inner class. Unsure if we need this field.
  • 28. Representing Uncertainty Partial Models [ICSE12] • Points of uncertainty (“May elements”) explicated using syntactic annotations Propositional variables: “the element exists” 28 Solver SolverException + effect : String X Y
  • 29. Representing Uncertainty 29 Solver SolverException + effect : String X Y Solver SolverException Solver SolverException Solver SolverException + effect : String Solver SolverException + effect : String x=F, y=F x=T, y=F x=F, y=T x=T, y=T 4 concretizations: 4 ways to resolve uncertainty.
  • 30. Representing Uncertainty Partial Models [ICSE12] • Points of uncertainty (“May elements”) explicated using syntactic annotations • Restrictions to the set of concretizations can be captured in the “May formula” 30 Solver SolverException + effect : String X Y X v Y
  • 31. Representing Uncertainty 31 Solver SolverException + effect : String X Y Solver SolverException Solver SolverException Solver SolverException + effect : String Solver SolverException + effect : String x=F, y=F x=T, y=F x=F, y=T x=T, y=T X v Y
  • 33. Transforming Models With Uncertainty 33 Natalie wants to apply the rule to an input with uncertainty
  • 34. Why Is It Hard? 34 Solver SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC X Y X v Y
  • 35. Why Is It Hard? 35 Solver SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC Match??? X Y X v Y
  • 36. Why Is It Hard? 36 Solver SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC Match??? X Y X v Y
  • 37. Why Is It Hard? 37 Solver SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC Should we delete? Should we add? X Y X v Y
  • 38. Why Is It Hard? 38 Solver SolverException + effect : String class1 + attribute : type class1 - attribute : type + getAttribute() :type class1 class2 RHSLHSNAC Existing transformation techniques cannot be used. X Y X v Y
  • 39. Intuition 39 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String X Y X v Y ? (And definition of correctness)
  • 40. Intuition 40 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String Solver SolverException + effect : String Solver SolverException ? (And definition of correctness)
  • 41. Intuition 41 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String Solver SolverException + effect : String Solver SolverException Solver SolverException -effect : String +getEffect() : String Solver SolverException + effect : String Solver SolverException (And definition of correctness)
  • 42. Intuition 42 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String Solver SolverException + effect : String Solver SolverException ( X∧ ¬Y ∧ ¬a ∧ ¬b) v (¬X∧ Y ∧ ¬a ∧ b) v ( X∧ Y ∧ a ∧ ¬b) Solver SolverException + - effect : String +getEffect() : String X Ya b (And definition of correctness)
  • 43. Intuition 43 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String X Y X v Y ( X∧ ¬Y ∧ ¬a ∧ ¬b) v (¬X∧ Y ∧ ¬a ∧ b) v ( X∧ Y ∧ a ∧ ¬b) Solver SolverException + - effect : String +getEffect() : String X Ya b (And definition of correctness)
  • 44. Technique 44 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String X Y X v Y
  • 45. Technique 45 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String X Y X v Y (a) Find Match Step 1: Determine applicability
  • 46. Technique 46 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String X Y X v Y (a) Find Match (b) Make sure the rule applies to at least one concretization (requires solving a SAT problem) Step 1: Determine applicability
  • 47. Technique 47 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String X Y X v Y Solver X Step 1: Determine applicability Step 2: Transform graph SolverException + effect : String Y (a) Copy over unchanged parts
  • 48. Technique 48 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String X Y X v Y Solver SolverException + - effect : String +getEffect() : String X Ya b Step 1: Determine applicability Step 2: Transform graph (a) Copy over unchanged parts (b) Perform additions and deletions Added and deleted elements become Maybe
  • 49. Technique 49 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String X Y X v Y Step 1: Determine applicability Step 2: Transform graph Step 3: Transform formula ( X∧ ¬Y ∧ ¬a ∧ ¬b) v (¬X∧ Y ∧ ¬a ∧ b) v ( X∧ Y ∧ a ∧ ¬b) Solver SolverException + - effect : String +getEffect() : String X Ya b Constrain Maybe elements to ensure each that concretization is correctly affected.
  • 50. Overview 50 class1 + attribute : type class1 - attribute : type + getAttribute():type class1 class2 RHSLHSNAC Solver SolverException + effect : String X Y X v Y ( X∧ ¬Y ∧ ¬a ∧ ¬b) v (¬X∧ Y ∧ ¬a ∧ b) v ( X∧ Y ∧ a ∧ ¬b) Solver SolverException + - effect : String +getEffect() : String X Ya b Step 1: Determine applicability Step 2: Transform graph Step 3: Transform formula
  • 51. Analysis In the paper: • Proof of correctness • The lifting algorithm implements our intuition • Proofs of preservation of properties: 1. Confluence The result of applying a set of rules to a model is the same regardless of the order of application or the order of matching sites. 2. Termination Repeated applications will reach a point where the rule will no longer be applicable. 51
  • 53. Tool Support • Reuse partial model implementation in MMTF (Eclipse / EMF) • Algorithm implementation 1. Determine rule applicability • Henshin and the Z3 SMT solver 2. Transform the graph • Henshin 3. Transform the formula • Java (Z3 input strings) 53 MMTF
  • 54. Case Study • Object–relational mapping (ORM) • “Translate a class diagram to a relational database schema.” • Classic benchmark for model transformation research • Triple graph grammar with 5 layered graph rules [Varro06] 54 (Image from [Varro06])
  • 55. Case Study • Input model: the Ecore metamodel • ORM for Ecore is important: cf. CDO and Teneo • Manually flattened inheritance hierarchy and adapted to the metamodel in [Varro06] • Resulting model had 65 model elements: • 17 classes, 17 associations, 6 generalization links, 25 attributes • Manually injected points of uncertainty to create partial models with increasing numbers of concretizations 55
  • 56. Setup And Results • RQ: How does lifting scale with increasing uncertainty? • Varied: number of concretizations of input • Measured: time to complete the ORM transformation • Ran on Intel Core i7-2600 3.40GHz×4core, 8GB RAM, Ubuntu-64 12.10. • Runtime does not increase dramatically. Approach scales. 56 # concretizations 1 24 48 108 144 192 256 Time (seconds) 32.6 32.8 32.7 32.9 32.6 33.0 48.4
  • 57. Summary 57 Decision deferral in the presence of uncertainty Existing techniques cannot handle uncertainty Explicit uncertainty modeling with Partial Models Syntactic annotations and May formula Transform Partial Models 1. Determine applicability 2. Transform graph 3. Transform formula Approach scales for increasing levels of uncertainty Tool Support Empirical Evaluation Case Study: Object-relational mapping for the Ecore metamodel
  • 58. Next Steps • Implement lifted semantics as a higher-order transformation (HOT) • Given a graph rewrite rule, produce a grammar that implements the lifted semantics • Benefit: out of the box reuse of existing graph transformation tools (Henshin, AGG, etc.) • Expand lifting for other types of model uncertainty, based on the rich MAVO framework [FASE12] 58
  • 60. Bibliography [ICSE12] M. Famelis, M. Chechik, and R. Salay. “Partial Models: Towards Modeling and Reasoning with Uncertainty”. In Proc. of ICSE’12, 2012. [Varro06] D. Varro, S. Varro-Gyapay, H. Ehrig, U. Prange, and G. Taentzer. “Termination Analysis of Model Transformations by Petri Nets”. In Proc. of ICGT’06, pages 260–274, 2006. [FASE12] R. Salay, M. Famelis, and M. Chechik. “Language Independent Refinement using Partial Modeling”. In Proc. of FASE’12, 2012. 60

Notas do Editor

  1. 1)Make a bigger point about the fact that we reuse EXISTING transformations without users needing to change anything“We can use all the nice things that you guys developed”Square to triangle transformation, what if you give it a squiggly squares? You should get squiggly triangles. Or transformation that cuts stuff in half, so squiggly total becomes squiggly halfSquiggly red to squiggly yellow.(think keynote yellow)TALK about “lifting” early: it is preservation of squigglyness
  2. Begin without may formula; add complexityStart with may elementsegattrs is or notBUT this is too general, I need to constraint so bring in the may formula
  3. Begin without may formula; add complexityStart with may elementsegattrs is or notBUT this is too general, I need to constraint so bring in the may formula
  4. Begin without may formula; add complexityStart with may elementsegattrs is or notBUT this is too general, I need to constraint so bring in the may formula
  5. Begin without may formula; add complexityStart with may elementsegattrs is or notBUT this is too general, I need to constraint so bring in the may formula
  6. Begin without may formula; add complexityStart with may elementsegattrs is or notBUT this is too general, I need to constraint so bring in the may formula