SlideShare a Scribd company logo
Generic and Meta-Transformations 
for Model Transformation Engineering 
Dániel Varró, András Pataricza 
Budapest University of Technology and Economics 
Most Influential Paper Presentation@MODELS 2014 
Valencia, Spain, October 2nd, 2014 
Budapest University of Technology and Economics 
Department of Measurement and Information Systems
Contributions of our UML 2004 paper 
Generic&Meta 
40% 
VIATRA 
27% 
MT Engineering 
10% 
Other 
6% 
None 
9% 
Self 
8% 
Citations 
 Novel MT Concepts 
o Generic and 
o Meta-Transformations 
 Highlight the software 
engineering aspects of MT 
o Reusability 
o Maintainability 
o Performance 
o Compactness 
 1st prototype of VIATRA2 
transformation framework 
 Impact (Citation) Analysis 
o Total: 137 (Google Scholar) 
2
Overview 
UML 2004 talk 
Outlook on Generic and Meta-Transformations 
VIATRA History 
3
(Slides with this design are taken from my UML 2004 talk) 
Generic and 
Meta-Transformations for 
Model Transformation Engineering 
Dániel Varró 
András Pataricza 
Budapest Univ. of Technology and Economics 
Dept. of Measurement and Information Systems
The Model Transformation Problem 
UML DB 
Language A Language B 
Metamodel A 
How to specify? 
conforms to conforms to 
How to execute? 
October 14th, 2004 UML 2004 
Metamodel B 
Model a Model b 
Platform Indep. Trans. (PIT) 
J. Bézivin, N. Farcet, J.-M. Jézéquel, B. Langlois, and D. Pollet. 
Reflective model driven engineering. In Proc. UML 2003: 
6th Int. Conf. on the Unified Modeling Language, LNCS 2863, 
pp. 175–189. Springer, San Francisco, CA, USA, 2003
Solution 1: Manually written PSTs 
UML DB 
Language A Language B 
Metamodel A 
Metamodel B 
conforms to conforms to 
Model a Model b 
Platform Indep. Trans. (PIT) 
Platform Spec. Trans. (PST) 
XSLT spec. XT 
Schema SA Schema SA 
conforms to conforms to 
Document da Document db 
XSLT exec. xt
Solution 1: Manually written PSTs 
UML DB 
Language A Language B 
Advantages: 
+ standard model format (XMI) and transform. language (XSLT) 
Metamodel A 
Metamodel B 
+ extensive tool support (XSLT engines) 
conforms to conforms to 
Disadvantages: 
– knowledge is required Model a in another technological space Model (XSLT) 
b 
– hard to debug/maintain/understand complex XSLT scripts 
– XSLT performance problems (for graph-like structures, e.g. XMI) 
MOF technological space 
Platform Spec. Trans. (PST) 
XSLT spec. XT 
Schema SA Schema SA 
conforms to conforms to 
Document da Document db 
XSLT exec. xt
Solution 2: PIT Specification 
UML DB 
Language A Language B 
Metamodel A 
Transf. Spec. T 
conforms to conforms to 
October 14th, 2004 UML 2004 
Metamodel B 
QVT 
Model a Model b
Solution 2: PIT specification + engine 
UML DB 
Language A Language B 
Metamodel A 
Transf. Spec. T 
conforms to conforms to 
October 14th, 2004 UML 2004 
Metamodel B 
Model a Model b 
Transf. Exec. t
QVT example 
QVT rule Relation 
C:Class 
:attrs 
Pattern 
October 14th, 2004 UML 2004 
:columns 
A:Attribute 
name=NM 
type=TP 
B:Column 
name=NM 
type=TP 
Cls2Tbl(C,T) 
T:Table 
Attr2Col(A,B) 
Attr2ColumnR 
when 
Condition 
Variable
Graph transformation example 
LHS 
C:Class 
:attrs 
A:Attribute 
name=NM 
type=TP 
T:Table 
Cls2Tbl(C,T) 
:attrs 
October 14th, 2004 UML 2004 
C:Class 
T:Table 
Cls2Tbl(C,T) 
:columns 
A:Attribute 
name=NM 
type=TP 
B:Column 
name=NM 
type=TP 
RHS 
Att2Col(A,B)
Solution 2: PIT specification + engine 
UML DB 
Language A Language B 
Metamodel A 
Transf. Spec. T 
conforms to conforms to 
October 14th, 2004 UML 2004 
Metamodel B 
Model a Model b 
Transf. Exec. t 
Advantages: 
+ pattern-based transformation specification in UML/MOF 
(upcoming QVT standard) 
+ increased performance for complex graph models 
Disadvantages: 
– lack of (industrial) model transformation tools
Solution 3: Model-driven transformation of 
PSMs 
UML DB 
Language A Language B 
Metamodel A 
Transf. Spec. T 
conforms to conforms to 
Transf. Exec. t 
conforms to conforms to 
October 14th, 2004 UML 2004 
Metamodel B 
Model a Model b 
Schema SA Schema SA 
Document da Document db
Solution 3: Model-driven transformation of 
PSMs 
UML DB 
Language A Language B 
Metamodel A 
Transf. Spec. T 
conforms to conforms to 
Transf. Exec. t 
Advantages: (as before) 
+ pattern-based transformation XSLT spec. specification XT 
in UML/MOF 
(upcoming QVT standard) 
+ increased performance for complex graph conforms models to 
(vs. XSLT) 
conforms to Disadvantages: 
– HOW TO INTEGRATE INTO EXISTING TOOLS? 
October 14th, 2004 UML 2004 
Metamodel B 
Model a Model b 
Schema SA Schema SA 
Document da Document db 
XSLT exec. xt
Solution 4: Automatically generated PST 
UML DB 
Language A Language B 
Metamodel A 
Metamodel B 
Transf. Spec. T 
conforms to conforms to 
Model a Model b 
Meta-transformation 
XSLT spec. XT 
Schema SA Schema SA 
conforms to conforms to 
Document da Document db 
XSLT exec. xt
Solution 4: Automatically generated TST 
UML DB 
Language A Language B 
Advantages: 
Transf. Spec. T 
+ transformation specification in QVT/MOF/UML 
Metamodel A 
Metamodel B 
+ automatically generated XSLT scripts 
+ platform specific transformers 
(integrated into the target technological space) 
Disadvantages: 
– PIT2PST is a complex meta-transformation (e.g. QVT2XSLT) 
– we have to do it ONCE / we HAVE TO do it once 
conforms to conforms to 
Model a Model b 
XSLT spec. XT 
Schema SA Schema SA 
conforms to conforms to 
Document da Document db 
XSLT exec. xt
Transformation engineering in MDA 
 Transformation design will be an 
engineering principle (if MDA succeeds) 
 Questions to answer: 
– How to specify and execute MTs? 
– Compactness / Intuitiveness of MT Specs? 
– Automation? - Performance? 
– Analysis? - Correctness of transformations? 
– Reusability? - Maintainability? 
October 14th, 2004 UML 2004
Objectives 
 How to tackle (some) transware problems? 
– By storing/handling transformations 
as models 
 Generic (higher-order) transformations: 
– Type / class variables in rules 
 Meta transformations: 
– Consumes (produces) transformation rules as 
input (output) 
October 14th, 2004 UML 2004 
Higher-Order 
Transformations
Example: XMI export 
 Problem: 
– generate XMI documents 
– from MOF-based models 
– when the metamodel is 
a parameter 
n1 : Node 
name = First 
isStart = true 
n2 : Node 
name = Second 
isStart = false 
outgoing 
e1 : Edge 
weight = 1 
incoming 
October 14th, 2004 UML 2004 
Node 
subnodes 
name : String 
isStart : Boolean 
Edge 
outgoing 
weight : Integer 
incoming 
Graph 
<Node xmi.id = "n1"> 
<Node.name>FirstNode</Node.name> 
<Node.isStart xmi.value="true" /> 
<Node.outgoing> 
<Edge xmi.idref = "e1"/> 
</Node.outgoing> 
<Node.subnodes> 
<Node xmi.id = "n2"> ... </Node> 
</Node.subnodes> 
</Node>
Overview of 
generic transformations 
 Advantages 
– General + Powerful 
– Succinct 
Generic 
rules 
 Disadvantages 
October 14th, 2004 UML 2004 
– Performance? 
– Implementation 
as PSTs? 
Metamodel 
(Graphs) 
Graph 
model 
Generic 
Trans. Eng. 
XMI 
document 
Generic transformation = Rules with type variables
Example: A generic rule 
x:Class 
name = n 
o:x 
identifier = id 
October 14th, 2004 UML 2004 
e:XMLElem 
name = n 
:attributes 
a:XMLAttr 
name = "xmi.id" 
value = id 
Obj2Elem(o,e) 
{new} 
{new} 
{new} 
{new} 
Obj2ElemR 
Type 
parameter
Overview of 
meta-transformations 
 Advantage: 
Meta 
rules 
October 14th, 2004 UML 2004 
– Executed by traditional 
transformation engines 
 Prerequisite: 
– Rules stored as models 
Metamodel 
(Graphs) 
Graph 
model 
“Ordinary” 
Trans. Eng. 
XMI 
document 
“Ordinary” 
rules 
“Ordinary” 
Trans. Eng. 
Meta-Transformation = Rules that consume/generate rules 
Transformation 
Models
Example: A meta rule 
x:Class 
name = cl 
as:attributes 
att:Attribute 
name = at 
:type 
y:Class 
isEnum = "true" 
EnumAttr2ElemR(x,att) 
o:x 
a:att 
value = v 
:as 
October 14th, 2004 UML 2004 
e1:XMLElem 
{new} :contains 
{new} 
e2:XMLElem 
name = cl+"."+at 
:attributes 
a2:XMLAttr 
name = "xmi.value" 
value = v 
Obj2Elem(o,e1) 
Attr2Elem(a,e2) 
{new} 
{new} 
{new} 
Attr2Rule 
Attr2RuleR 
Type variables are data in the RHS resolved prior to main transformation
Result of applying a meta rule 
EnumAttr2ElemR(“Edge”,”weight”) 
o:Edge 
:as 
a:weight 
value = v 
Obj2Elem(o,e1) 
October 14th, 2004 UML 2004 
e1:XMLElem 
{new} :contains 
{new} 
e2:XMLElem 
name = "Edge.weight" 
{new} :attributes 
{new} 
a2:XMLAttr 
name = "xmi.value" 
value = v 
Attr2Elem(a,e2) 
{new} 
Ordinary (first order) transformation rule without type variables
Generic rules for model maintenance 
a:att:Attribute 
e1:XMLElem 
e2.XMLElem 
:attributes 
a1:XMLAttr 
October 14th, 2004 UML 2004 
:contains 
name = n 
name = "xmi.value" 
value = v 
Attr2Elem(a,e2) 
{delete} 
:contains 
a2:XMLAttr 
name = n 
value = v 
Attr2Attr(a,a2) 
{new} 
{delete} 
{delete} 
{delete} 
{delete} 
{new} 
{new} 
ChangeXMIAttributesR 
Migration from XMI 1.0 to XMI 1.1
Another scenario of 
generic and meta-transformations 
 Advantage: 
uniform management of 
– models 
– transformations 
“Ordinary” 
rules 
Graph 
model 
Generic & 
Meta rules 
Generic 
Trans. Eng. 
October 14th, 2004 UML 2004 
XMI 
document 
“Ordinary” 
rules 
“Ordinary” 
Trans. Eng. 
Meta-Transformation = Rules that consume/generate rules 
Generic Transformation = Rules with type variables
The VIATRA2 Approach 
 Model management: 
o Model space: Unified, global view of 
models, metamodels and transformations 
• Hierarchical graph model 
• Complex type hierarchy 
• Multilevel metamodeling 
 Model manipulation and transformations: 
integration of two mathematically precise, 
rule and pattern-based formalisms 
o Graph patterns (GP): structural conditions 
o Graph transformation (GT): elementary transformation steps 
o Abstract state machines (ASM): complex transformation programs 
 Code generation: 
o Special model transformations with 
o Code templates and code formatters
Generic GT rules in VIATRA 
precondition pattern lhs(Par,Child,P1,ClsE,ParR,AncR) = 
{ 
entity(ClsE); 
relation(ParR,ClsE,ClsE); 
relation(AncR,ClsE,ClsE); 
entity(Par); 
entity(Child); 
relation (P1, Child,Par); 
instanceOf(Par, ClsE); 
instanceOf(Child, ClsE); 
instanceOf(P1, ParR); 
} … 
 Explicit (dynamic) 
instanceOf relations 
 Variables matched 
to metamodel 
elements (types) 
gtrule parentIsAncR(Par,Child,ClsE,ParR,AncR) 
precondition lhs(Par, Child, P1 
ClsE,ParR,AncR) 
Par:entity 
ClsE:entity 
P1:relation 
AncR: 
relation 
Child:entity 
ParR: 
relation 
postcondition rhs(Par, Child, P1 
ClsE,ParR,AncR) 
Par:entity 
ClsE:entity 
P1:relation 
AncR: 
relation 
Child:entity 
ParR: 
relation 
E:relation
Meta-transformations in VIATRA 
 Main ideas: 
o Transformations stored as 
models 
o Processed by an interpreter 
(GT + ASM) 
o Executed over models 
stored in the model space 
 Unusual consequences: 
o Self-modifying meta-transformations 
o Pattern elements appearing 
in match sets 
Scopes of MT rules required 
EMF transformation model 
 Quiz: Sample model space 
o Graph pattern: chase 
o Instance model 
How many matches does pattern 
chase have in the model space? 6 
29
Higher-Order Transformation 
Approaches in Tools: An Outlook 
With direct contributions from M. Tisi, C. Krause, E. Syriani, 
H. Vangheluwe, D. Kolovos
Our Influencers (in 2004) 
• Introduced for the definition of 
context-sensitive language grammars 
Two-level 
graph 
grammars 
• Meta-theoretical foundations in Maude 
• Arbitrary models can be transformed 
into their meta-representation 
Rewriting 
logics 
• Reflective OO programming (Smalltalk) 
• Functional programming 
Programming 
languages 
31
Categorization of HOTs 
MT analysis 
• Process transformations to 
extract meaningful data 
MT synthesis 
• Create new transformations from 
data modeled in other forms 
MT modification 
• Manipulate the logic of an input 
transformation 
MT (de)composition 
• Merge /split other MTs according 
to a (de)composition criterion 
M. Tisi, F. Jouault, P. Fraternali, S. Ceri, and J. Bézivin. On the Use of Higher-Order Model 
Transformations. In Proc. of the 5thEuropean Conference on Model-Driven Architecture 
Foundations and Applications (ECMDA2009), pp 18–32 
33. Springer, 2009
ATL 
Transformation 
injection 
• Textual 
transformation is 
translated into a 
transformation 
model 
Higher-order 
transformation 
• Transformation 
models for 
• Input+output+HOT 
Transformation 
extraction 
• Output model is 
serialized into a 
textual 
transformation 
33
Henshin 
 Generic, dynamically typed MT 
o Transform metamodels and 
instance models 
at the same time 
o Use special wrapper objects 
 Meta/Higher-order MT 
o Henshin allows to mix 
normal and HO 
transformations 
o E.g. Ecore2GenModel 
(customization) 
C. Krause, J. Dyck, H. Giese: Metamodel-Specific Coupled Evolution Based on Dynamically Typed 
Graph Transformations. In Proc. of the 6th Int. Conf. on Theory and Practice of Model 
Transformations (ICMT2013), pp 79–91. Springer, 34 
2013 
https://www.eclipse.org/henshin/examples.php
Transformation models in 
 Ongoing work on 
o parsing Epsilon programs 
o into abstract syntax models 
o that conform to Ecore metamodels 
o All task-specific language metamodels extend the core 
(EOL) language metamodel 
 Abstract syntax models used to perform 
o static type checking, 
o dependency analysis, 
o sub-optimal code detection 
Ran Wei, Dimitris S. Kolovos: Automated Analysis, Validation and Suboptimal Code Detection in 
Model Management Programs. In Proc. of the 2nd BigMDE Workshop, York, UK. 2014 
35
Ramification in TCore 
 Goal: Customize generic 
pattern languages to 
domain-specific use 
o Generate modeling 
environment 
quasi-automatically 
o Implemented by HOT 
o Relax – Augment - Modify 
 Usage: embedding MTs 
into COTS tools 
o MetaEdit+ 
o Matlab Simulink 
36 
Kühne, T.; Mezei, G.; Syriani, E.; Vangheluwe, 
H. & Wimmer, M. Systematic Transformation 
Development. Journal of the ECEASST: 21, 
Multi-Paradigm Modeling, Denver (2009). 
Input Meta-Model Output Meta-Model 
Relax Augment Modify 
Customized Pattern Meta-Model
MOFLON 
 Generic rewrite rules 
o via JMI model repository 
o Example: Generic checks 
• attribute to be checked 
passed as argument 
• names of classes to be 
checked 
 Reflective rewrite rules 
o Examine metamodel first 
and extract properties 
o Instantiate generic rules on 
the instance level 
 Application: 
o Checking modeling 
guidelines for Simulink 
Carsten Amelunxen, Elodie Legros, Andy Schürr: Generic and reflective graph transformations 
for the checking and enforcement of modeling guidelines. 37 
VL/HCC 2008: pp. 211-218
Further approaches for HOT 
MOTMOT (2006- ) 
 Add language constructs 
to Story Diagrams 
 Main Usage Scenario 
o Copying + Adaptation 
o Business Process Modeling 
Medini QVT 
 Generate copy rules from 
Ecore metamodels 
 Refinement 
transformations 
o Generic copy rules 
o Exception rules 
38 
Pieter Van Gorp, H. Schippers, D. Janssens 
Copying Subgraphs within Model Repositories. 
5th Int. Workshop on Graph Transformation 
and Visual Modeling Techniques, ENTCS, pp. 
127-139, Vienna, Austria, 1 April 2006. Elsevier. 
Thomas Goldschmidt, Guido Wachsmuth: 
Refinement Transformation Support for QVT 
Relational Transformations. 3rd Workshop on 
Model Driven Software Engineering (MDSE 
2008)
VIATRA Retrospective
Evolution of the VIATRA Tool Family 
VIATRA VIATRA2 
VIATRA2 
R3.2 
„VIATRA3” 
IncQuery 
EMF-IncQuery 
IncQuery-D 
http://www.eclipse.org/incquery/ 
40 
http://www.eclipse.org/viatra2/
VIATRA 
 Main facts & features: 
o Written in Prolog 
o XMI import/export for 
arbitrary metamodels 
o UML as rule language 
o Auto-generated Prolog code 
 Main applications: 
o SC2Promela: model checking 
UML statecharts 
o UML2DF: fault propagation 
analysis 
o SC2SPN: reliability analysis 
 Major projects: 
o HIDE + National 
 Main publications: 
o ASE 2002, SCP 2002 
• XMI export/import 
• Metamodel 
Start: 
Sep 2000 
• Auto-generated MT 
code from UML rules 
• First complex MT 
M1: 
Summer 
2001 
• UML2DF transformation 
• SC2SPN transformation 
M2: 
Summer 
2002 
• Development of new 
Java/Eclipse version 
End: 
Early 
2004 
41
VIATRA2 
 Main Features 
o Unified storage of 
• Models + Metamodels + 
Transformations 
o Language: 
• Graph transformation (GT) 
• Abstract state machines (ASM) 
o Hybrid pattern matching 
• Local search + Incremental 
o Live MT 
• Event-driven 
o VIATRA DSM support 
o Design-space exploration 
 Main Projects: 
o DECOS, SENSORIA, DIANA, 
MOGENTES 
 Main Publications: 
o SCP 2007, ICMT 08-09, MODELS09, 
ASE2011, 3xSOSYM, STTT, AUSE 
• Initial prototype: Spring 2004 
• Eclipse start: @ GMT Sept 1st, 2005 
Initial prototype: 
Summer 2004 
•Model space + GT + ASM 
• 1 PhD + 3 MSc students 
R1: 
Oct 21, 2005 
• GUI improvements & documentation 
• 2 PhD student + 8 MSc students 
R2: 
Oct. 10, 2006 
• EMF-based MT model 
• 3 PhD students + 1 developer + *MSc 
R3: 
June 2, 2008 
• Incremental & live MT, MT workflow 
• 5 PhD students + * MSc 
M3.1: 
March 23, 2010 
• EMF support + Visualization 
• UML2, BPMN, BPEL importers 
M3.2: 
April 11, 2011 
• Design-space exploration 
• Incremental transitive closure 
M3.3: 
August, 2013 
• Event-driven execution platform 
• Complex Event Processing 
VIATRA3 
Video: http://vimeo.com/741248271
Selected Applications of VIATRA2 
Toolchain for critical embedded systems 
• Model-based tool integration 
• Workflow-driven interactive design tools 
• Ontology based consistency checks 
• Model-driven test generation 
Service-oriented applications 
• Formal analysis and back-annotation of BPEL processes 
• Model based performability analysis 
• Model-based service deployment 
• Incremental generation of service configurations 
GRaTS 
• with R. Heckel (Leicester) and P. Torrini 
• Stochastic simulator for graph transformation systems 
43
EMF-IncQuery 
 Main features: 
o Define model queries 
declaratively (with Xtext editors) 
o Execute queries efficiently and 
incrementally for EMF models 
o Integrate queries into EMF apps 
with no coding (validations, 
viewers, derived features) 
 Contributors 
o BME 
o IncQuery Labs (Support) 
o Itemis 
 Main publications: 
o MODELS10, ICMT11, MODELS12, 
ECMFA12, SOSYM14, SCP2014 
o Demos at MODELS, ASE, ECMFA, 
TOOLS, EclipseCon, … 
• Initial version detached from VIATRA 
• First performance benchmark 
• 1.5 million model elements 
1st internal 
release: Spring 
2010 
• Project lead: István Ráth 
• Team: Z. Ujhely, Á. Horváth, Á. Hegedüs, 
G. Bergmann, T. Szabó, (D. Varró) 
Eclipse start: 
April 4, 2011 
• IncQuery base: Efficient EMF navigation 
• Inverse, allInstances, trans. closure 
• Incremental 
V0.4.0: 
Nov 2011 
• Xtext based query editor 
• Derived features 
• Validation framework 
V0.6.5: 
Oct 2012 
• Event-driven VM 
• Core viewers 
• Xbase 
V0.7.0: 
July, 2013 
• Query libraries + Xcore 
• IQ Viewers 
• IQ Debugger 
V0.8.0: 
July, 2014 
44 
CERTIMOT
Selected Applications (EMF-IncQuery) 
• Complex traceability 
• Query driven views 
• Abstract models by 
derived objects 
Toolchain for 
IMA configs 
• Connect to Matlab 
Simulink model 
• Export: Matlab2EMF 
• Change model in EMF 
• Re-import: 
EMF2Matlab 
MATLAB-EMF 
Bridge 
• Live models 
(refreshed 25 
frame/s) 
• Complex event 
processing 
Gesture 
recognition 
• Experiments on open 
source Java projects 
• Local search vs. 
Incremental vs. 
Native Java code 
Detection of 
bad code smells 
• Rules for operations 
• Complex structural 
constraints (as GP) 
• Hints and guidance 
• Potentially infinite 
state space 
Design Space 
Exploration 
• Itemis (developer) 
• Embraer 
• Thales 
• ThyssenKrupp 
• CERN 
Known Users
IncQuery-D 
 Main features: 
o Distributed 
• Storages 
• Indexers 
• Incremental Queries 
o Deployed over cloud 
infrastructure 
o Goal: Scalability along 
• # of machines 
• Memory/CPU 
• #of concurrent users 
 Contributors 
o BME + IncQuery Labs 
 Main publications: 
o Friday@MODELS 2014 
o Invited talks at CloudMDE14, 
GT-VMT14 
• Proof of concept 
• Initial architecture 
• First performance 
benchmark 
V0.1 
April 2013 
• Multiple storage back-ends 
• Manual performance 
optimizations 
V0.2 
December 
2013 
• RDF-IncQuery language 
• Monitoring + 
Optimized allocation 
• First external users 
(students) 
V0.3 
September 
2014 
46
Acknowledgements 
 Current Contributors 
o István Ráth, PhD 
o Ákos Horváth, PhD 
o Gábor Bergmann, PhD 
o Ábel Hegedüs, PhD candidate, 
(IncQuery Labs) 
o Zoltán Ujhelyi, PhD candidate 
o Dénes Harmath (IncQuery Labs) 
o Tamás Szabó (Itemis) 
o Benedek Izsó 
o Gábor Szárnyas 
o Oszkár Semeráth 
o Csaba Debreceni 
o István Dávid (Uni-Antwerp) 
o András Szabolcs Nagy 
o Márton Búr 
o József Makai 
o Dániel Stein 
 Past Contributors 
o Prof. András Pataricza 
o Gergely Varró, PhD 
(TU Darmstadt) 
o András Balogh, PhD 
(ThyssenKruppPresta) 
o András Schmidt (QGears) 
o Dávid Vágó (Google) 
o Balázs Grill (ThyssenKruppPresta) 
o Zoltán Balogh 
o András Ökrös 
o Balázs Polgár, PhD 
o Márk Czotter 
o Dániel Tóth (NSN) 
o Péter Pásztor 
o Gergely Nyilas (Lufthansa Systems) 
o Zsolt Sándor (Siemens PSE) 
http://www.eclipse.org/viatra2/ 4h7ttp://www.eclipse.org/incquery/
Summary 
Metamodel 
(Graphs) 
Graph 
model 
Meta 
rules 
Generic 
rules 
“Ordinary” 
Trans. Eng. 
Generic Transformations 
Meta/Higher-Order Transformations 
XMI 
document 
“Ordinary” 
rules 
“Ordinary” 
Trans. Eng. 
Metamodel 
(Graphs) 
Graph 
model 
Generic 
Trans. Eng. 
XMI 
document

More Related Content

What's hot

Matlab Introduction
Matlab IntroductionMatlab Introduction
Matlab Introduction
ideas2ignite
 
Matlab introduction
Matlab introductionMatlab introduction
Matlab introduction
Vikash Jakhar
 
Introduction to MATLAB
Introduction to MATLABIntroduction to MATLAB
Introduction to MATLAB
Ashish Meshram
 
Matlab 1 level_1
Matlab 1 level_1Matlab 1 level_1
Matlab 1 level_1
Ahmed Farouk
 
OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsOODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objects
Shanmuganathan C
 
An Introduction to the SOLID Principles
An Introduction to the SOLID PrinciplesAn Introduction to the SOLID Principles
An Introduction to the SOLID Principles
Attila Bertók
 
Matlab day 1: Introduction to MATLAB
Matlab day 1: Introduction to MATLABMatlab day 1: Introduction to MATLAB
Matlab day 1: Introduction to MATLAB
reddyprasad reddyvari
 
Matlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processingMatlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processing
Dr. Manjunatha. P
 
Dsp file
Dsp fileDsp file
Introduction to Matlab
Introduction to MatlabIntroduction to Matlab
Introduction to Matlab
Amr Rashed
 
How to work on Matlab.......
How to work on Matlab.......How to work on Matlab.......
How to work on Matlab.......biinoida
 
PEEC based electromagnetic simulator
PEEC based electromagnetic simulator PEEC based electromagnetic simulator
PEEC based electromagnetic simulator
Swapnil Gaul
 
Advanced MATLAB Tutorial for Engineers & Scientists
Advanced MATLAB Tutorial for Engineers & ScientistsAdvanced MATLAB Tutorial for Engineers & Scientists
Advanced MATLAB Tutorial for Engineers & Scientists
Ray Phan
 
Matlab for Electrical Engineers
Matlab for Electrical EngineersMatlab for Electrical Engineers
Matlab for Electrical Engineers
Manish Joshi
 
Matlab from Beginner to Expert
Matlab from Beginner to ExpertMatlab from Beginner to Expert
Matlab from Beginner to Expert
smart-ideas
 
BASIC CONCEPTS OF C++ CLASS 12
BASIC CONCEPTS OF C++ CLASS 12BASIC CONCEPTS OF C++ CLASS 12
BASIC CONCEPTS OF C++ CLASS 12
Dev Chauhan
 
Introduction to MATLAB
Introduction to MATLABIntroduction to MATLAB
Introduction to MATLAB
Dun Automation Academy
 
Summer training matlab
Summer training matlab Summer training matlab
Summer training matlab
Arshit Rai
 

What's hot (20)

Matlab Introduction
Matlab IntroductionMatlab Introduction
Matlab Introduction
 
Matlab introduction
Matlab introductionMatlab introduction
Matlab introduction
 
Introduction to MATLAB
Introduction to MATLABIntroduction to MATLAB
Introduction to MATLAB
 
Matlab 1 level_1
Matlab 1 level_1Matlab 1 level_1
Matlab 1 level_1
 
OODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objectsOODP Unit 1 OOPs classes and objects
OODP Unit 1 OOPs classes and objects
 
An Introduction to the SOLID Principles
An Introduction to the SOLID PrinciplesAn Introduction to the SOLID Principles
An Introduction to the SOLID Principles
 
Matlab project
Matlab projectMatlab project
Matlab project
 
Matlab day 1: Introduction to MATLAB
Matlab day 1: Introduction to MATLABMatlab day 1: Introduction to MATLAB
Matlab day 1: Introduction to MATLAB
 
Matlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processingMatlab for beginners, Introduction, signal processing
Matlab for beginners, Introduction, signal processing
 
Dsp file
Dsp fileDsp file
Dsp file
 
Introduction to Matlab
Introduction to MatlabIntroduction to Matlab
Introduction to Matlab
 
How to work on Matlab.......
How to work on Matlab.......How to work on Matlab.......
How to work on Matlab.......
 
PEEC based electromagnetic simulator
PEEC based electromagnetic simulator PEEC based electromagnetic simulator
PEEC based electromagnetic simulator
 
Advanced MATLAB Tutorial for Engineers & Scientists
Advanced MATLAB Tutorial for Engineers & ScientistsAdvanced MATLAB Tutorial for Engineers & Scientists
Advanced MATLAB Tutorial for Engineers & Scientists
 
APSEC04.ppt
APSEC04.pptAPSEC04.ppt
APSEC04.ppt
 
Matlab for Electrical Engineers
Matlab for Electrical EngineersMatlab for Electrical Engineers
Matlab for Electrical Engineers
 
Matlab from Beginner to Expert
Matlab from Beginner to ExpertMatlab from Beginner to Expert
Matlab from Beginner to Expert
 
BASIC CONCEPTS OF C++ CLASS 12
BASIC CONCEPTS OF C++ CLASS 12BASIC CONCEPTS OF C++ CLASS 12
BASIC CONCEPTS OF C++ CLASS 12
 
Introduction to MATLAB
Introduction to MATLABIntroduction to MATLAB
Introduction to MATLAB
 
Summer training matlab
Summer training matlab Summer training matlab
Summer training matlab
 

Similar to Generic and Meta-Transformations for Model Transformation Engineering

ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
Tonny Madsen
 
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
 
Data Exchange Standards & STEP, EXPRESS & EXPRESS-G
Data Exchange Standards & STEP, EXPRESS & EXPRESS-GData Exchange Standards & STEP, EXPRESS & EXPRESS-G
Data Exchange Standards & STEP, EXPRESS & EXPRESS-Gmetalalp
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
Edward Willink
 
7358 mathcad chart ts_en
7358 mathcad chart ts_en7358 mathcad chart ts_en
7358 mathcad chart ts_en
Nithyanadham KV
 
A Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse EngineeringA Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse Engineering
Hironori Washizaki
 
Automatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsAutomatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodels
Ivano Malavolta
 
Model Transformation Reuse
Model Transformation ReuseModel Transformation Reuse
Model Transformation Reuse
miso_uam
 
Designing Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoDesigning Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.Proto
Joel Falcou
 
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling FrameworkEclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
Dave Steinberg
 
OODPunit1.pdf
OODPunit1.pdfOODPunit1.pdf
OODPunit1.pdf
KrishMehta47
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
Abdalmassih Yakeen
 
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
franciscoortin
 
The future of DSLs - functions and formal methods
The future of DSLs - functions and formal methodsThe future of DSLs - functions and formal methods
The future of DSLs - functions and formal methods
Markus Voelter
 
Epsilon
EpsilonEpsilon
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
ssuser2ef938
 
Graphical Model Transformation Framework
Graphical Model Transformation FrameworkGraphical Model Transformation Framework
Graphical Model Transformation Framework
Kaniska Mandal
 
Uml introduction
Uml introductionUml introduction
Uml introduction
bdemchak
 
Archi Modelling
Archi ModellingArchi Modelling
Archi Modellingdilane007
 

Similar to Generic and Meta-Transformations for Model Transformation Engineering (20)

ITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model TransformationsITU - MDD – Model-to-Model Transformations
ITU - MDD – Model-to-Model Transformations
 
ALT
ALTALT
ALT
 
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)
 
Data Exchange Standards & STEP, EXPRESS & EXPRESS-G
Data Exchange Standards & STEP, EXPRESS & EXPRESS-GData Exchange Standards & STEP, EXPRESS & EXPRESS-G
Data Exchange Standards & STEP, EXPRESS & EXPRESS-G
 
UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
7358 mathcad chart ts_en
7358 mathcad chart ts_en7358 mathcad chart ts_en
7358 mathcad chart ts_en
 
A Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse EngineeringA Taxonomy for Program Metamodels in Program Reverse Engineering
A Taxonomy for Program Metamodels in Program Reverse Engineering
 
Automatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodelsAutomatically bridging UML profiles into MOF metamodels
Automatically bridging UML profiles into MOF metamodels
 
Model Transformation Reuse
Model Transformation ReuseModel Transformation Reuse
Model Transformation Reuse
 
Designing Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.ProtoDesigning Architecture-aware Library using Boost.Proto
Designing Architecture-aware Library using Boost.Proto
 
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling FrameworkEclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
EclipseCon 2008: Fundamentals of the Eclipse Modeling Framework
 
OODPunit1.pdf
OODPunit1.pdfOODPunit1.pdf
OODPunit1.pdf
 
MDE in Practice
MDE in PracticeMDE in Practice
MDE in Practice
 
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
 
The future of DSLs - functions and formal methods
The future of DSLs - functions and formal methodsThe future of DSLs - functions and formal methods
The future of DSLs - functions and formal methods
 
Epsilon
EpsilonEpsilon
Epsilon
 
xUMLFinalPresentation.ppt
xUMLFinalPresentation.pptxUMLFinalPresentation.ppt
xUMLFinalPresentation.ppt
 
Graphical Model Transformation Framework
Graphical Model Transformation FrameworkGraphical Model Transformation Framework
Graphical Model Transformation Framework
 
Uml introduction
Uml introductionUml introduction
Uml introduction
 
Archi Modelling
Archi ModellingArchi Modelling
Archi Modelling
 

Recently uploaded

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
WSO2
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
NYGGS Automation Suite
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
Paco van Beckhoven
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Natan Silnitsky
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
Donna Lenk
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
wottaspaceseo
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
Ortus Solutions, Corp
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Globus
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
e20449
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
Srikant77
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
Fermin Galan
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
vrstrong314
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
abdulrafaychaudhry
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
Globus
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Jay Das
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
rickgrimesss22
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
Globus
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
Juraj Vysvader
 

Recently uploaded (20)

Accelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with PlatformlessAccelerate Enterprise Software Engineering with Platformless
Accelerate Enterprise Software Engineering with Platformless
 
Enterprise Resource Planning System in Telangana
Enterprise Resource Planning System in TelanganaEnterprise Resource Planning System in Telangana
Enterprise Resource Planning System in Telangana
 
Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024Globus Connect Server Deep Dive - GlobusWorld 2024
Globus Connect Server Deep Dive - GlobusWorld 2024
 
Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024Cracking the code review at SpringIO 2024
Cracking the code review at SpringIO 2024
 
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.ILBeyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
Beyond Event Sourcing - Embracing CRUD for Wix Platform - Java.IL
 
Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"Navigating the Metaverse: A Journey into Virtual Evolution"
Navigating the Metaverse: A Journey into Virtual Evolution"
 
How Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptxHow Recreation Management Software Can Streamline Your Operations.pptx
How Recreation Management Software Can Streamline Your Operations.pptx
 
Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024Globus Compute wth IRI Workflows - GlobusWorld 2024
Globus Compute wth IRI Workflows - GlobusWorld 2024
 
Into the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdfInto the Box 2024 - Keynote Day 2 Slides.pdf
Into the Box 2024 - Keynote Day 2 Slides.pdf
 
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data AnalysisProviding Globus Services to Users of JASMIN for Environmental Data Analysis
Providing Globus Services to Users of JASMIN for Environmental Data Analysis
 
Graphic Design Crash Course for beginners
Graphic Design Crash Course for beginnersGraphic Design Crash Course for beginners
Graphic Design Crash Course for beginners
 
RISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent EnterpriseRISE with SAP and Journey to the Intelligent Enterprise
RISE with SAP and Journey to the Intelligent Enterprise
 
Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604Orion Context Broker introduction 20240604
Orion Context Broker introduction 20240604
 
top nidhi software solution freedownload
top nidhi software solution freedownloadtop nidhi software solution freedownload
top nidhi software solution freedownload
 
Lecture 1 Introduction to games development
Lecture 1 Introduction to games developmentLecture 1 Introduction to games development
Lecture 1 Introduction to games development
 
First Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User EndpointsFirst Steps with Globus Compute Multi-User Endpoints
First Steps with Globus Compute Multi-User Endpoints
 
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdfEnhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
Enhancing Project Management Efficiency_ Leveraging AI Tools like ChatGPT.pdf
 
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptxTop Features to Include in Your Winzo Clone App for Business Growth (4).pptx
Top Features to Include in Your Winzo Clone App for Business Growth (4).pptx
 
Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024Globus Compute Introduction - GlobusWorld 2024
Globus Compute Introduction - GlobusWorld 2024
 
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
In 2015, I used to write extensions for Joomla, WordPress, phpBB3, etc and I ...
 

Generic and Meta-Transformations for Model Transformation Engineering

  • 1. Generic and Meta-Transformations for Model Transformation Engineering Dániel Varró, András Pataricza Budapest University of Technology and Economics Most Influential Paper Presentation@MODELS 2014 Valencia, Spain, October 2nd, 2014 Budapest University of Technology and Economics Department of Measurement and Information Systems
  • 2. Contributions of our UML 2004 paper Generic&Meta 40% VIATRA 27% MT Engineering 10% Other 6% None 9% Self 8% Citations  Novel MT Concepts o Generic and o Meta-Transformations  Highlight the software engineering aspects of MT o Reusability o Maintainability o Performance o Compactness  1st prototype of VIATRA2 transformation framework  Impact (Citation) Analysis o Total: 137 (Google Scholar) 2
  • 3. Overview UML 2004 talk Outlook on Generic and Meta-Transformations VIATRA History 3
  • 4. (Slides with this design are taken from my UML 2004 talk) Generic and Meta-Transformations for Model Transformation Engineering Dániel Varró András Pataricza Budapest Univ. of Technology and Economics Dept. of Measurement and Information Systems
  • 5. The Model Transformation Problem UML DB Language A Language B Metamodel A How to specify? conforms to conforms to How to execute? October 14th, 2004 UML 2004 Metamodel B Model a Model b Platform Indep. Trans. (PIT) J. Bézivin, N. Farcet, J.-M. Jézéquel, B. Langlois, and D. Pollet. Reflective model driven engineering. In Proc. UML 2003: 6th Int. Conf. on the Unified Modeling Language, LNCS 2863, pp. 175–189. Springer, San Francisco, CA, USA, 2003
  • 6. Solution 1: Manually written PSTs UML DB Language A Language B Metamodel A Metamodel B conforms to conforms to Model a Model b Platform Indep. Trans. (PIT) Platform Spec. Trans. (PST) XSLT spec. XT Schema SA Schema SA conforms to conforms to Document da Document db XSLT exec. xt
  • 7. Solution 1: Manually written PSTs UML DB Language A Language B Advantages: + standard model format (XMI) and transform. language (XSLT) Metamodel A Metamodel B + extensive tool support (XSLT engines) conforms to conforms to Disadvantages: – knowledge is required Model a in another technological space Model (XSLT) b – hard to debug/maintain/understand complex XSLT scripts – XSLT performance problems (for graph-like structures, e.g. XMI) MOF technological space Platform Spec. Trans. (PST) XSLT spec. XT Schema SA Schema SA conforms to conforms to Document da Document db XSLT exec. xt
  • 8. Solution 2: PIT Specification UML DB Language A Language B Metamodel A Transf. Spec. T conforms to conforms to October 14th, 2004 UML 2004 Metamodel B QVT Model a Model b
  • 9. Solution 2: PIT specification + engine UML DB Language A Language B Metamodel A Transf. Spec. T conforms to conforms to October 14th, 2004 UML 2004 Metamodel B Model a Model b Transf. Exec. t
  • 10. QVT example QVT rule Relation C:Class :attrs Pattern October 14th, 2004 UML 2004 :columns A:Attribute name=NM type=TP B:Column name=NM type=TP Cls2Tbl(C,T) T:Table Attr2Col(A,B) Attr2ColumnR when Condition Variable
  • 11. Graph transformation example LHS C:Class :attrs A:Attribute name=NM type=TP T:Table Cls2Tbl(C,T) :attrs October 14th, 2004 UML 2004 C:Class T:Table Cls2Tbl(C,T) :columns A:Attribute name=NM type=TP B:Column name=NM type=TP RHS Att2Col(A,B)
  • 12. Solution 2: PIT specification + engine UML DB Language A Language B Metamodel A Transf. Spec. T conforms to conforms to October 14th, 2004 UML 2004 Metamodel B Model a Model b Transf. Exec. t Advantages: + pattern-based transformation specification in UML/MOF (upcoming QVT standard) + increased performance for complex graph models Disadvantages: – lack of (industrial) model transformation tools
  • 13. Solution 3: Model-driven transformation of PSMs UML DB Language A Language B Metamodel A Transf. Spec. T conforms to conforms to Transf. Exec. t conforms to conforms to October 14th, 2004 UML 2004 Metamodel B Model a Model b Schema SA Schema SA Document da Document db
  • 14. Solution 3: Model-driven transformation of PSMs UML DB Language A Language B Metamodel A Transf. Spec. T conforms to conforms to Transf. Exec. t Advantages: (as before) + pattern-based transformation XSLT spec. specification XT in UML/MOF (upcoming QVT standard) + increased performance for complex graph conforms models to (vs. XSLT) conforms to Disadvantages: – HOW TO INTEGRATE INTO EXISTING TOOLS? October 14th, 2004 UML 2004 Metamodel B Model a Model b Schema SA Schema SA Document da Document db XSLT exec. xt
  • 15. Solution 4: Automatically generated PST UML DB Language A Language B Metamodel A Metamodel B Transf. Spec. T conforms to conforms to Model a Model b Meta-transformation XSLT spec. XT Schema SA Schema SA conforms to conforms to Document da Document db XSLT exec. xt
  • 16. Solution 4: Automatically generated TST UML DB Language A Language B Advantages: Transf. Spec. T + transformation specification in QVT/MOF/UML Metamodel A Metamodel B + automatically generated XSLT scripts + platform specific transformers (integrated into the target technological space) Disadvantages: – PIT2PST is a complex meta-transformation (e.g. QVT2XSLT) – we have to do it ONCE / we HAVE TO do it once conforms to conforms to Model a Model b XSLT spec. XT Schema SA Schema SA conforms to conforms to Document da Document db XSLT exec. xt
  • 17. Transformation engineering in MDA  Transformation design will be an engineering principle (if MDA succeeds)  Questions to answer: – How to specify and execute MTs? – Compactness / Intuitiveness of MT Specs? – Automation? - Performance? – Analysis? - Correctness of transformations? – Reusability? - Maintainability? October 14th, 2004 UML 2004
  • 18. Objectives  How to tackle (some) transware problems? – By storing/handling transformations as models  Generic (higher-order) transformations: – Type / class variables in rules  Meta transformations: – Consumes (produces) transformation rules as input (output) October 14th, 2004 UML 2004 Higher-Order Transformations
  • 19. Example: XMI export  Problem: – generate XMI documents – from MOF-based models – when the metamodel is a parameter n1 : Node name = First isStart = true n2 : Node name = Second isStart = false outgoing e1 : Edge weight = 1 incoming October 14th, 2004 UML 2004 Node subnodes name : String isStart : Boolean Edge outgoing weight : Integer incoming Graph <Node xmi.id = "n1"> <Node.name>FirstNode</Node.name> <Node.isStart xmi.value="true" /> <Node.outgoing> <Edge xmi.idref = "e1"/> </Node.outgoing> <Node.subnodes> <Node xmi.id = "n2"> ... </Node> </Node.subnodes> </Node>
  • 20. Overview of generic transformations  Advantages – General + Powerful – Succinct Generic rules  Disadvantages October 14th, 2004 UML 2004 – Performance? – Implementation as PSTs? Metamodel (Graphs) Graph model Generic Trans. Eng. XMI document Generic transformation = Rules with type variables
  • 21. Example: A generic rule x:Class name = n o:x identifier = id October 14th, 2004 UML 2004 e:XMLElem name = n :attributes a:XMLAttr name = "xmi.id" value = id Obj2Elem(o,e) {new} {new} {new} {new} Obj2ElemR Type parameter
  • 22. Overview of meta-transformations  Advantage: Meta rules October 14th, 2004 UML 2004 – Executed by traditional transformation engines  Prerequisite: – Rules stored as models Metamodel (Graphs) Graph model “Ordinary” Trans. Eng. XMI document “Ordinary” rules “Ordinary” Trans. Eng. Meta-Transformation = Rules that consume/generate rules Transformation Models
  • 23. Example: A meta rule x:Class name = cl as:attributes att:Attribute name = at :type y:Class isEnum = "true" EnumAttr2ElemR(x,att) o:x a:att value = v :as October 14th, 2004 UML 2004 e1:XMLElem {new} :contains {new} e2:XMLElem name = cl+"."+at :attributes a2:XMLAttr name = "xmi.value" value = v Obj2Elem(o,e1) Attr2Elem(a,e2) {new} {new} {new} Attr2Rule Attr2RuleR Type variables are data in the RHS resolved prior to main transformation
  • 24. Result of applying a meta rule EnumAttr2ElemR(“Edge”,”weight”) o:Edge :as a:weight value = v Obj2Elem(o,e1) October 14th, 2004 UML 2004 e1:XMLElem {new} :contains {new} e2:XMLElem name = "Edge.weight" {new} :attributes {new} a2:XMLAttr name = "xmi.value" value = v Attr2Elem(a,e2) {new} Ordinary (first order) transformation rule without type variables
  • 25. Generic rules for model maintenance a:att:Attribute e1:XMLElem e2.XMLElem :attributes a1:XMLAttr October 14th, 2004 UML 2004 :contains name = n name = "xmi.value" value = v Attr2Elem(a,e2) {delete} :contains a2:XMLAttr name = n value = v Attr2Attr(a,a2) {new} {delete} {delete} {delete} {delete} {new} {new} ChangeXMIAttributesR Migration from XMI 1.0 to XMI 1.1
  • 26. Another scenario of generic and meta-transformations  Advantage: uniform management of – models – transformations “Ordinary” rules Graph model Generic & Meta rules Generic Trans. Eng. October 14th, 2004 UML 2004 XMI document “Ordinary” rules “Ordinary” Trans. Eng. Meta-Transformation = Rules that consume/generate rules Generic Transformation = Rules with type variables
  • 27. The VIATRA2 Approach  Model management: o Model space: Unified, global view of models, metamodels and transformations • Hierarchical graph model • Complex type hierarchy • Multilevel metamodeling  Model manipulation and transformations: integration of two mathematically precise, rule and pattern-based formalisms o Graph patterns (GP): structural conditions o Graph transformation (GT): elementary transformation steps o Abstract state machines (ASM): complex transformation programs  Code generation: o Special model transformations with o Code templates and code formatters
  • 28. Generic GT rules in VIATRA precondition pattern lhs(Par,Child,P1,ClsE,ParR,AncR) = { entity(ClsE); relation(ParR,ClsE,ClsE); relation(AncR,ClsE,ClsE); entity(Par); entity(Child); relation (P1, Child,Par); instanceOf(Par, ClsE); instanceOf(Child, ClsE); instanceOf(P1, ParR); } …  Explicit (dynamic) instanceOf relations  Variables matched to metamodel elements (types) gtrule parentIsAncR(Par,Child,ClsE,ParR,AncR) precondition lhs(Par, Child, P1 ClsE,ParR,AncR) Par:entity ClsE:entity P1:relation AncR: relation Child:entity ParR: relation postcondition rhs(Par, Child, P1 ClsE,ParR,AncR) Par:entity ClsE:entity P1:relation AncR: relation Child:entity ParR: relation E:relation
  • 29. Meta-transformations in VIATRA  Main ideas: o Transformations stored as models o Processed by an interpreter (GT + ASM) o Executed over models stored in the model space  Unusual consequences: o Self-modifying meta-transformations o Pattern elements appearing in match sets Scopes of MT rules required EMF transformation model  Quiz: Sample model space o Graph pattern: chase o Instance model How many matches does pattern chase have in the model space? 6 29
  • 30. Higher-Order Transformation Approaches in Tools: An Outlook With direct contributions from M. Tisi, C. Krause, E. Syriani, H. Vangheluwe, D. Kolovos
  • 31. Our Influencers (in 2004) • Introduced for the definition of context-sensitive language grammars Two-level graph grammars • Meta-theoretical foundations in Maude • Arbitrary models can be transformed into their meta-representation Rewriting logics • Reflective OO programming (Smalltalk) • Functional programming Programming languages 31
  • 32. Categorization of HOTs MT analysis • Process transformations to extract meaningful data MT synthesis • Create new transformations from data modeled in other forms MT modification • Manipulate the logic of an input transformation MT (de)composition • Merge /split other MTs according to a (de)composition criterion M. Tisi, F. Jouault, P. Fraternali, S. Ceri, and J. Bézivin. On the Use of Higher-Order Model Transformations. In Proc. of the 5thEuropean Conference on Model-Driven Architecture Foundations and Applications (ECMDA2009), pp 18–32 33. Springer, 2009
  • 33. ATL Transformation injection • Textual transformation is translated into a transformation model Higher-order transformation • Transformation models for • Input+output+HOT Transformation extraction • Output model is serialized into a textual transformation 33
  • 34. Henshin  Generic, dynamically typed MT o Transform metamodels and instance models at the same time o Use special wrapper objects  Meta/Higher-order MT o Henshin allows to mix normal and HO transformations o E.g. Ecore2GenModel (customization) C. Krause, J. Dyck, H. Giese: Metamodel-Specific Coupled Evolution Based on Dynamically Typed Graph Transformations. In Proc. of the 6th Int. Conf. on Theory and Practice of Model Transformations (ICMT2013), pp 79–91. Springer, 34 2013 https://www.eclipse.org/henshin/examples.php
  • 35. Transformation models in  Ongoing work on o parsing Epsilon programs o into abstract syntax models o that conform to Ecore metamodels o All task-specific language metamodels extend the core (EOL) language metamodel  Abstract syntax models used to perform o static type checking, o dependency analysis, o sub-optimal code detection Ran Wei, Dimitris S. Kolovos: Automated Analysis, Validation and Suboptimal Code Detection in Model Management Programs. In Proc. of the 2nd BigMDE Workshop, York, UK. 2014 35
  • 36. Ramification in TCore  Goal: Customize generic pattern languages to domain-specific use o Generate modeling environment quasi-automatically o Implemented by HOT o Relax – Augment - Modify  Usage: embedding MTs into COTS tools o MetaEdit+ o Matlab Simulink 36 Kühne, T.; Mezei, G.; Syriani, E.; Vangheluwe, H. & Wimmer, M. Systematic Transformation Development. Journal of the ECEASST: 21, Multi-Paradigm Modeling, Denver (2009). Input Meta-Model Output Meta-Model Relax Augment Modify Customized Pattern Meta-Model
  • 37. MOFLON  Generic rewrite rules o via JMI model repository o Example: Generic checks • attribute to be checked passed as argument • names of classes to be checked  Reflective rewrite rules o Examine metamodel first and extract properties o Instantiate generic rules on the instance level  Application: o Checking modeling guidelines for Simulink Carsten Amelunxen, Elodie Legros, Andy Schürr: Generic and reflective graph transformations for the checking and enforcement of modeling guidelines. 37 VL/HCC 2008: pp. 211-218
  • 38. Further approaches for HOT MOTMOT (2006- )  Add language constructs to Story Diagrams  Main Usage Scenario o Copying + Adaptation o Business Process Modeling Medini QVT  Generate copy rules from Ecore metamodels  Refinement transformations o Generic copy rules o Exception rules 38 Pieter Van Gorp, H. Schippers, D. Janssens Copying Subgraphs within Model Repositories. 5th Int. Workshop on Graph Transformation and Visual Modeling Techniques, ENTCS, pp. 127-139, Vienna, Austria, 1 April 2006. Elsevier. Thomas Goldschmidt, Guido Wachsmuth: Refinement Transformation Support for QVT Relational Transformations. 3rd Workshop on Model Driven Software Engineering (MDSE 2008)
  • 40. Evolution of the VIATRA Tool Family VIATRA VIATRA2 VIATRA2 R3.2 „VIATRA3” IncQuery EMF-IncQuery IncQuery-D http://www.eclipse.org/incquery/ 40 http://www.eclipse.org/viatra2/
  • 41. VIATRA  Main facts & features: o Written in Prolog o XMI import/export for arbitrary metamodels o UML as rule language o Auto-generated Prolog code  Main applications: o SC2Promela: model checking UML statecharts o UML2DF: fault propagation analysis o SC2SPN: reliability analysis  Major projects: o HIDE + National  Main publications: o ASE 2002, SCP 2002 • XMI export/import • Metamodel Start: Sep 2000 • Auto-generated MT code from UML rules • First complex MT M1: Summer 2001 • UML2DF transformation • SC2SPN transformation M2: Summer 2002 • Development of new Java/Eclipse version End: Early 2004 41
  • 42. VIATRA2  Main Features o Unified storage of • Models + Metamodels + Transformations o Language: • Graph transformation (GT) • Abstract state machines (ASM) o Hybrid pattern matching • Local search + Incremental o Live MT • Event-driven o VIATRA DSM support o Design-space exploration  Main Projects: o DECOS, SENSORIA, DIANA, MOGENTES  Main Publications: o SCP 2007, ICMT 08-09, MODELS09, ASE2011, 3xSOSYM, STTT, AUSE • Initial prototype: Spring 2004 • Eclipse start: @ GMT Sept 1st, 2005 Initial prototype: Summer 2004 •Model space + GT + ASM • 1 PhD + 3 MSc students R1: Oct 21, 2005 • GUI improvements & documentation • 2 PhD student + 8 MSc students R2: Oct. 10, 2006 • EMF-based MT model • 3 PhD students + 1 developer + *MSc R3: June 2, 2008 • Incremental & live MT, MT workflow • 5 PhD students + * MSc M3.1: March 23, 2010 • EMF support + Visualization • UML2, BPMN, BPEL importers M3.2: April 11, 2011 • Design-space exploration • Incremental transitive closure M3.3: August, 2013 • Event-driven execution platform • Complex Event Processing VIATRA3 Video: http://vimeo.com/741248271
  • 43. Selected Applications of VIATRA2 Toolchain for critical embedded systems • Model-based tool integration • Workflow-driven interactive design tools • Ontology based consistency checks • Model-driven test generation Service-oriented applications • Formal analysis and back-annotation of BPEL processes • Model based performability analysis • Model-based service deployment • Incremental generation of service configurations GRaTS • with R. Heckel (Leicester) and P. Torrini • Stochastic simulator for graph transformation systems 43
  • 44. EMF-IncQuery  Main features: o Define model queries declaratively (with Xtext editors) o Execute queries efficiently and incrementally for EMF models o Integrate queries into EMF apps with no coding (validations, viewers, derived features)  Contributors o BME o IncQuery Labs (Support) o Itemis  Main publications: o MODELS10, ICMT11, MODELS12, ECMFA12, SOSYM14, SCP2014 o Demos at MODELS, ASE, ECMFA, TOOLS, EclipseCon, … • Initial version detached from VIATRA • First performance benchmark • 1.5 million model elements 1st internal release: Spring 2010 • Project lead: István Ráth • Team: Z. Ujhely, Á. Horváth, Á. Hegedüs, G. Bergmann, T. Szabó, (D. Varró) Eclipse start: April 4, 2011 • IncQuery base: Efficient EMF navigation • Inverse, allInstances, trans. closure • Incremental V0.4.0: Nov 2011 • Xtext based query editor • Derived features • Validation framework V0.6.5: Oct 2012 • Event-driven VM • Core viewers • Xbase V0.7.0: July, 2013 • Query libraries + Xcore • IQ Viewers • IQ Debugger V0.8.0: July, 2014 44 CERTIMOT
  • 45. Selected Applications (EMF-IncQuery) • Complex traceability • Query driven views • Abstract models by derived objects Toolchain for IMA configs • Connect to Matlab Simulink model • Export: Matlab2EMF • Change model in EMF • Re-import: EMF2Matlab MATLAB-EMF Bridge • Live models (refreshed 25 frame/s) • Complex event processing Gesture recognition • Experiments on open source Java projects • Local search vs. Incremental vs. Native Java code Detection of bad code smells • Rules for operations • Complex structural constraints (as GP) • Hints and guidance • Potentially infinite state space Design Space Exploration • Itemis (developer) • Embraer • Thales • ThyssenKrupp • CERN Known Users
  • 46. IncQuery-D  Main features: o Distributed • Storages • Indexers • Incremental Queries o Deployed over cloud infrastructure o Goal: Scalability along • # of machines • Memory/CPU • #of concurrent users  Contributors o BME + IncQuery Labs  Main publications: o Friday@MODELS 2014 o Invited talks at CloudMDE14, GT-VMT14 • Proof of concept • Initial architecture • First performance benchmark V0.1 April 2013 • Multiple storage back-ends • Manual performance optimizations V0.2 December 2013 • RDF-IncQuery language • Monitoring + Optimized allocation • First external users (students) V0.3 September 2014 46
  • 47. Acknowledgements  Current Contributors o István Ráth, PhD o Ákos Horváth, PhD o Gábor Bergmann, PhD o Ábel Hegedüs, PhD candidate, (IncQuery Labs) o Zoltán Ujhelyi, PhD candidate o Dénes Harmath (IncQuery Labs) o Tamás Szabó (Itemis) o Benedek Izsó o Gábor Szárnyas o Oszkár Semeráth o Csaba Debreceni o István Dávid (Uni-Antwerp) o András Szabolcs Nagy o Márton Búr o József Makai o Dániel Stein  Past Contributors o Prof. András Pataricza o Gergely Varró, PhD (TU Darmstadt) o András Balogh, PhD (ThyssenKruppPresta) o András Schmidt (QGears) o Dávid Vágó (Google) o Balázs Grill (ThyssenKruppPresta) o Zoltán Balogh o András Ökrös o Balázs Polgár, PhD o Márk Czotter o Dániel Tóth (NSN) o Péter Pásztor o Gergely Nyilas (Lufthansa Systems) o Zsolt Sándor (Siemens PSE) http://www.eclipse.org/viatra2/ 4h7ttp://www.eclipse.org/incquery/
  • 48. Summary Metamodel (Graphs) Graph model Meta rules Generic rules “Ordinary” Trans. Eng. Generic Transformations Meta/Higher-Order Transformations XMI document “Ordinary” rules “Ordinary” Trans. Eng. Metamodel (Graphs) Graph model Generic Trans. Eng. XMI document