SlideShare ist ein Scribd-Unternehmen logo
1 von 71
Putting Engineering into MDE 
Components and contracts for models 
and transformations 
Steffen Zschaler 
29 September, 2014 
With (lots of) help by 
Francisco Duran, Jeffrey Terrell, Jendrik Johannes, 
Dimitris Kolovos, and many others 
All errors my own!
Motivation 
• MDE is beginning to see some use 
– Automotive 
– Telecommunications 
– Enterprise systems (especially for quality prediction) 
• Need for systematic engineering 
– To deal with scale of models 
– To deal with complexity of domains 
– To ensure correctness so MDE techniques can be 
relied on 
29/09/2014 (c) Steffen Zschaler 2
Motivation (2) 
• Elements of systematic MDE engineering 
– Requirements 
– Architectures 
– (Reusable) Components 
– Patterns and Architecture Styles 
– Methods and Guidelines 
A research agenda for the years to come 
29/09/2014 (c) Steffen Zschaler 3
Motivation (2) 
• Elements of systematic MDE engineering 
– Requirements 
– Architectures 
– (Reusable) Components 
– Patterns and Architecture Styles 
– Methods and Guidelines 
A research agenda for the years to come 
29/09/2014 (c) Steffen Zschaler 3
A framework for discussing 
composition 
29/09/2014 (c) Steffen Zschaler 4 
Uwe Aßmann: Invasive Software Composition.
A framework for discussing 
composition 
Component Model 
(incl. contracts) 
29/09/2014 (c) Steffen Zschaler 4 
Uwe Aßmann: Invasive Software Composition.
A framework for discussing 
composition 
Composition Model 
(composition technique) 
Component Model 
(incl. contracts) 
29/09/2014 (c) Steffen Zschaler 4 
Uwe Aßmann: Invasive Software Composition.
A framework for discussing 
composition 
Composition Language 
Composition Model 
(composition technique) 
Component Model 
(incl. contracts) 
29/09/2014 (c) Steffen Zschaler 4 
Uwe Aßmann: Invasive Software Composition.
A framework for discussing 
composition 
Composition System 
Composition Language 
Composition Model 
(composition technique) 
Component Model 
(incl. contracts) 
29/09/2014 (c) Steffen Zschaler 4 
Uwe Aßmann: Invasive Software Composition.
Outline 
1. Motivation 
2. Models 
3. Transformations 
4. Challenges 
29/09/2014 (c) Steffen Zschaler 5
Outline 
1. Motivation 
2. Models 
3. Transformations 
4. Challenges 
1. Composition techniques 
2. Contracts 
29/09/2014 (c) Steffen Zschaler 5
Model components 
• Variety of approaches 
– Model/Package Import 
– AOM 
• Package Merge 
• Language-specific merges 
– E.g., for sequence diagrams 
– RAM, MATA, ... 
• Generic merges 
– E.g., GeKo, Reuseware, ... 
29/09/2014 (c) Steffen Zschaler 6
Model components 
Example 1 
29/09/2014
Model components 
Example 1 
29/09/2014
Model components 
Example 2 
29/09/2014 (c) Steffen Zschaler 8
Model components 
Example 2 
29/09/2014 (c) Steffen Zschaler 8
Model components 
Example 2 
29/09/2014 (c) Steffen Zschaler 8
Model components 
Example 2 
29/09/2014 (c) Steffen Zschaler 8
Model components 
Example 2 
29/09/2014 (c) Steffen Zschaler 8
Model components 
Example 2 
29/09/2014 (c) Steffen Zschaler 8
Model components 
Example 2 
29/09/2014 (c) Steffen Zschaler 8
Model components 
Contracts? 
• Only syntactical, if any 
– Meta-classes of elements expected 
– Naming and signatures of operations 
• Key exception: Rely-Guarantee 
Specifications 
– For temporal logic and state machines 
29/09/2014 (c) Steffen Zschaler 9
Syntactic Contracts 
29/09/2014 (c) Steffen Zschaler 10
Syntactic Contracts 
29/09/2014 (c) Steffen Zschaler 10
Syntactic Contracts 
29/09/2014 (c) Steffen Zschaler 10
Outline 
1. Motivation 
2. Models 
3. Transformations 
4. Challenges 
1. Composition techniques 
2. Contracts 
29/09/2014 (c) Steffen Zschaler 11
Transformation Composition 
29/09/2014 (c) Steffen Zschaler 12
Transformation Composition 
External Internal 
29/09/2014 (c) Steffen Zschaler 12
Transformation Composition 
External Internal 
Sequential 
T1 M1 M2 M3 T2 
29/09/2014 (c) Steffen Zschaler 12
Transformation Composition 
External Internal 
Sequential Rule Superimposition 
(aka import with 
replacement) 
29/09/2014 (c) Steffen Zschaler 12
Transformation Composition 
External Internal 
Sequential Rule Superimposition 
(aka import with 
replacement) 
M1 
M2 
29/09/2014 (c) Steffen Zschaler 12
Transformation Composition 
External Internal 
Sequential Parallel Rule Superimposition 
(aka import with 
replacement) 
T1 M1 
M2 
M3 
T2 M4 
M5 
29/09/2014 (c) Steffen Zschaler 12
Transformation Composition 
External Internal 
Sequential Parallel Rule Superimposition 
(aka import with 
replacement) 
Rule Weaving 
(aka full aspect 
orientation) 
29/09/2014 (c) Steffen Zschaler 12
Transformation Composition 
External Internal 
Sequential Parallel Rule Superimposition 
(aka import with 
replacement) 
Rule Weaving 
(aka full aspect 
orientation) 
M1 
M2 
29/09/2014 (c) Steffen Zschaler 12
Transformation Composition 
Sequential 
Class Model OO to Relational Table Model 
29/09/2014 (c) Steffen Zschaler 13
Transformation Composition 
Sequential 
Table Model 
Normalised 
Table Model 
Normalisation 
29/09/2014 (c) Steffen Zschaler 13
Transformation Composition 
Sequential 
Class Model OO to Relational Table Model 
Normalised 
Table Model 
Normalisation 
29/09/2014 (c) Steffen Zschaler 13
Transformation Composition 
Parallel 
:Table 
* 
<<hook>> 
:Column 
Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: 
Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
Transformation Composition 
Parallel 
:Table 
:Class * 
<<hook>> 
:Column 
Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: 
Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
Transformation Composition 
Parallel 
:Table 
:Class * 
<<hook>> 
:Column 
:Attribute 
Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: 
Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
Transformation Composition 
Parallel 
:Table 
:Class * 
<<hook>> 
:Column 
<<anchor>> 
:Column 
:Attribute 
Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: 
Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
Transformation Composition 
Parallel 
:Table 
:Class * 
<<hook>> 
:Column 
<<anchor>> 
:Column 
:Attribute 
Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: 
Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
Transformation Composition 
Parallel 
:Table 
:Class 
super 
sub 
:Class * 
<<hook>> 
:Column 
<<anchor>> 
:Column 
:Attribute 
Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: 
Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
Transformation Composition 
Parallel 
<<anchor>><<slot>> 
:Table 
* 
<<hook>> 
:Column 
<<anchor>> 
:Column 
:Class 
super 
sub 
:Class 
:Attribute 
Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: 
Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
Transformation Composition 
Parallel 
<<anchor>><<slot>> 
:Table 
* 
<<hook>> 
:Column 
<<anchor>> 
:Column 
<<anchor>><<slot>> 
:Table 
* 
<<hook>> 
:Column 
:Class 
super 
sub 
:Class 
:Attribute 
Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: 
Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
Transformation Composition 
Parallel 
Weaving 
<<anchor>><<slot>> 
:Table 
* 
<<hook>> 
:Column 
<<anchor>> 
:Column 
<<anchor>><<slot>> 
:Table 
* 
<<hook>> 
:Column 
:Class 
super 
sub 
:Class 
:Attribute 
Weaving 
Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: 
Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
Transformation Composition 
Superimposition 
module Class2Relational; 
create OUT : Relational from IN : Class; 
rule Class2Table { 
Based on Lawley, M., Duddy, K., Gerber, A., Raymond, K. Language Features for Re-Use and Maintainability of MDA Transformations. OOPSLA & 
GPCE Workshop, 2004 
and: Jouault, F. and Kurtev, I. Transforming models with ATL. In: Satellite Events at the MoDELS 2005 Conference, Oct 2005, Montego Bay, Jamaica. 
pp. 128-138, LNCS 3844 (long version from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.6117&rep=rep1&type=pdf ) 
from 
c : Class!Class 
to 
out : Relational!Table ( 
name <- c.name, 
col <- Sequence {key} 
->union(c.attr)), 
key : Relational!Column ( 
name <- 'objectId', 
type <- objectIdType) 
} 
rule Attribute2Column { 
from 
a : Class!Attribute 
to 
out : Relational!Column ( 
name <- a.name, 
type <- a.type) 
} 
29/09/2014 (c) Steffen Zschaler 15
Transformation Composition 
Superimposition 
module Class2Relational; 
create OUT : Relational from IN : Class; 
rule Class2Table { 
module Class2RelationalInheritance; 
create OUT : Relational from IN : Class; 
rule Class2Table { 
Based on Lawley, M., Duddy, K., Gerber, A., Raymond, K. Language Features for Re-Use and Maintainability of MDA Transformations. OOPSLA & 
GPCE Workshop, 2004 
and: Jouault, F. and Kurtev, I. Transforming models with ATL. In: Satellite Events at the MoDELS 2005 Conference, Oct 2005, Montego Bay, Jamaica. 
pp. 128-138, LNCS 3844 (long version from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.6117&rep=rep1&type=pdf ) 
from 
c : Class!Class 
to 
out : Relational!Table ( 
name <- c.name, 
col <- Sequence {key} 
->union(c.attr)), 
key : Relational!Column ( 
name <- 'objectId', 
type <- objectIdType) 
} 
rule Attribute2Column { 
from 
a : Class!Attribute 
to 
out : Relational!Column ( 
name <- a.name, 
type <- a.type) 
} 
from 
c : Class!Class ( 
c.parent.oclIsUndefined()) 
to 
out : Relational!Table ( 
name <- c.name, 
col <- Sequence {key} 
->union(c.flattenedFeatures)), 
key : Relational!Column ( 
name <- 'objectId', 
type <- objectIdType) 
} 
-- flattenedFeatures helper not shown. 
-- It collects all features of a class 
-- and all its sub-classes 
29/09/2014 (c) Steffen Zschaler 15
Transformation Composition 
Superimposition 
module Class2Relational; 
create OUT : Relational from IN : Class; 
rule Class2Table { 
Based on Lawley, M., Duddy, K., Gerber, A., Raymond, K. Language Features for Re-Use and Maintainability of MDA Transformations. OOPSLA & 
GPCE Workshop, 2004 
and: Jouault, F. and Kurtev, I. Transforming models with ATL. In: Satellite Events at the MoDELS 2005 Conference, Oct 2005, Montego Bay, Jamaica. 
pp. 128-138, LNCS 3844 (long version from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.6117&rep=rep1&type=pdf ) 
from 
c : Class!Class 
to 
out : Relational!Table ( 
name <- c.name, 
col <- Sequence {key} 
->union(c.attr)), 
key : Relational!Column ( 
name <- 'objectId', 
type <- objectIdType) 
} 
rule Attribute2Column { 
from 
a : Class!Attribute 
to 
out : Relational!Column ( 
name <- a.name, 
type <- a.type) 
} 
( 
c.parent.oclIsUndefined()) 
to 
out : Relational!Table ( 
name <- c.name, 
col <- Sequence {key} 
->union(c.flattenedFeatures)), 
key : Relational!Column ( 
name 'objectId', 
type <- objectIdType) 
} 
-- flattenedFeatures helper 
-- not shown... 
29/09/2014 (c) Steffen Zschaler 15
Transformation Composition 
Weaving 
29/09/2014 (c) Steffen Zschaler 
16
Transformation Composition 
Weaving 
29/09/2014 (c) Steffen Zschaler 
16
Contracts 
• Need both syntactical and semantic 
contracts 
• Goal: 
– Be precise enough to enable reasoning and 
give assurances 
– Be lenient enough to maximise reusability 
29/09/2014 (c) Steffen Zschaler 17
Contracts (2) 
Will look at two types of contracts: 
– Syntactic contracts for sequential composition 
(aka model typing) 
– Semantic contracts for rule weaving 
29/09/2014 (c) Steffen Zschaler 18
Contracts for sequential 
composition 
Class Model OO to Relational Table Model 
• Contracts specify the kinds of models 
read and written by a transformation 
• Options: 
1. Meta-models 
2. Effective meta-models 
3. Model types / Concepts 
Normalised 
Table Model 
Normalisation 
29/09/2014 (c) Steffen Zschaler 19
Model typing problems 
mmo NewSM (s : Simple) { 
s += new StateMachine () 
} 
S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. 
In VAO’14
Model typing problems 
mmo NewSM (s : Simple) { 
s += new StateMachine () 
} 
StateMachine 
initialState 
0..1 
State 
name: String 
Transition 
event: String 
containedState * 
src 
1 
tgt 
1 
incoming 
* 
* 
outgoing 
S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. 
In VAO’14
Model typing problems 
mmo NewSM (s : Simple) { 
s += new StateMachine () 
} 
StateMachine 
initialState 
0..1 
State 
name: String 
Transition 
event: String 
containedState * 
src 
1 
tgt 
1 
incoming 
* 
* 
outgoing 
Difference between Mandatory-start <: Simple and Mandatory-start Steel Simple 
S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. 
In VAO’14
Model typing problems 
Mandatory-start <:Steel Simple 
mmo NewSM (s : Simple) { 
s += new StateMachine () 
} 
StateMachine 
initialState 
0..1 
State 
name: String 
Transition 
event: String 
containedState * 
src 
1 
tgt 
1 
incoming 
* 
* 
outgoing 
Difference between Simple and Mandatory-start 
Error: Allows passing in 
Mandatory-start instance, but breaks it. 
S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. 
In VAO’14
mmo NewSM (s : Simple) { 
sm := new StateMachine () ; 
sm.initialState += new State () ; 
s += sm 
} 
Model typing problems 
StateMachine 
initialState 
0..1 
State 
name: String 
Transition 
event: String 
containedState * 
src 
1 
tgt 
1 
incoming 
* 
* 
outgoing 
Difference between Mandatory-start <: Simple and Mandatory-start Guy Simple 
S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. 
In VAO’14
Mandatory-start <:Guy Simple 
mmo NewSM (s : Simple) { 
sm := new StateMachine () ; 
sm.initialState += new State () ; 
s += sm 
} 
Model typing problems 
StateMachine 
initialState 
0..1 
State 
name: String 
Transition 
event: String 
containedState * 
src 
1 
tgt 
1 
incoming 
* 
* 
outgoing 
Difference between Simple and Mandatory-start 
Over-restriction: Would work with 
Mandatory-start instance, but cannot specify. 
S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. 
In VAO’14
Syntactic contracts: 
Research challenges 
• Type theory of transformations 
– Including intrinsic and extrinsic contracts 
• Static analysis of transformations 
– Data flow analysis 
• Tool support for managing and 
checking transformation contracts 
29/09/2014 (c) Steffen Zschaler 21
Contracts for rule weaving 
29/09/2014 (c) Steffen Zschaler 22
Contracts for rule weaving 
29/09/2014 (c) Steffen Zschaler 22
Contracts for rule weaving 
• Morphisms over transformation 
systems 
– Both for parameter and bindings 
• Define Properties of morphisms to 
ensure semantics of weaving 
– Behaviour reflection and preservation 
 Semantic contracts 
29/09/2014 (c) Steffen Zschaler 23
Semantic contracts: 
Research challenges 
• Other semantic properties 
– Allow some change of behaviour 
– Express behaviour of base parametrised over 
transformations to be woven 
29/09/2014 (c) Steffen Zschaler 24
Semantic contracts: 
Research challenges 
• Other semantic properties 
– Allow some change of behaviour 
– Express behaviour of base parametrised over 
transformations to be woven 
M1 M2 
τ 
29/09/2014 (c) Steffen Zschaler 24
Semantic contracts: 
Research challenges 
• Other semantic properties 
– Allow some change of behaviour 
– Express behaviour of base parametrised over 
transformations to be woven 
M1 M2 
τ 
sem1 sem2 
ζ 
Γ1 Γ2 
29/09/2014 (c) Steffen Zschaler 24
Semantic contracts: 
Research challenges 
• Other semantic properties 
– Allow some change of behaviour 
– Express behaviour of base parametrised over 
transformations to be woven 
M1 M2 
τ(τ1, .. , τn) 
f(ζ1, .. , ζn) 
sem1 sem2 
ζ 
Γ1 Γ2 
29/09/2014 (c) Steffen Zschaler 24
Outline 
1. Motivation 
2. Models 
3. Transformations 
4. Challenges 
29/09/2014 (c) Steffen Zschaler 25
Research Agenda 
• Need a calculus of transformation components 
– What do they look like? 
– What composition operations are there? 
– What are contracts? 
– What properties can we derive for composite transformations? 
• Some work exists: 
– See talk 
– Megamodelling (e.g., MINNT for typing) 
• But are still missing fundamental theory 
29/09/2014 (c) Steffen Zschaler 26
http://xkcd.com/1343/ 
29/09/2014 (c) Steffen Zschaler

Weitere ähnliche Inhalte

Andere mochten auch

Analysis on questionnaire results
Analysis on questionnaire resultsAnalysis on questionnaire results
Analysis on questionnaire resultsTemi Ayadi
 
How effective is the combination of your main product and the ancillary text?
How effective is the combination of your main product and the ancillary text?How effective is the combination of your main product and the ancillary text?
How effective is the combination of your main product and the ancillary text?Temi Ayadi
 
Historieta de informatica
Historieta de informaticaHistorieta de informatica
Historieta de informaticajulyettesalinas
 
National Career Readiness Certification: An Overview
National Career Readiness Certification: An OverviewNational Career Readiness Certification: An Overview
National Career Readiness Certification: An Overviewbscdesign
 
MobAir_Presentation_2016
MobAir_Presentation_2016MobAir_Presentation_2016
MobAir_Presentation_2016Oles Dziub
 
Second order homogeneous linear differential equations
Second order homogeneous linear differential equations Second order homogeneous linear differential equations
Second order homogeneous linear differential equations Viraj Patel
 

Andere mochten auch (7)

FESCA 2015 keynote
FESCA 2015 keynoteFESCA 2015 keynote
FESCA 2015 keynote
 
Analysis on questionnaire results
Analysis on questionnaire resultsAnalysis on questionnaire results
Analysis on questionnaire results
 
How effective is the combination of your main product and the ancillary text?
How effective is the combination of your main product and the ancillary text?How effective is the combination of your main product and the ancillary text?
How effective is the combination of your main product and the ancillary text?
 
Historieta de informatica
Historieta de informaticaHistorieta de informatica
Historieta de informatica
 
National Career Readiness Certification: An Overview
National Career Readiness Certification: An OverviewNational Career Readiness Certification: An Overview
National Career Readiness Certification: An Overview
 
MobAir_Presentation_2016
MobAir_Presentation_2016MobAir_Presentation_2016
MobAir_Presentation_2016
 
Second order homogeneous linear differential equations
Second order homogeneous linear differential equations Second order homogeneous linear differential equations
Second order homogeneous linear differential equations
 

Ähnlich wie Keynote Extreme Modelling 2014

Ece 1322 programming_for_engineers_s1_201213(1)
Ece 1322 programming_for_engineers_s1_201213(1)Ece 1322 programming_for_engineers_s1_201213(1)
Ece 1322 programming_for_engineers_s1_201213(1)Minda Kronik
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Fáber D. Giraldo
 
Barcelona Global Energy Challenges 2015
Barcelona Global Energy Challenges 2015Barcelona Global Energy Challenges 2015
Barcelona Global Energy Challenges 2015Pau Fonseca
 
The Finite element Method, A practical approach
The Finite element Method, A practical approachThe Finite element Method, A practical approach
The Finite element Method, A practical approachEngrUsmanKhan1
 
PNPA - a Transformative Approach to Nanoengineering
PNPA - a Transformative Approach to NanoengineeringPNPA - a Transformative Approach to Nanoengineering
PNPA - a Transformative Approach to NanoengineeringRobert Cormia
 
Model Driven Requirements Engineering: Mapping the Field and Beyond
Model Driven Requirements Engineering: Mapping the Field and BeyondModel Driven Requirements Engineering: Mapping the Field and Beyond
Model Driven Requirements Engineering: Mapping the Field and BeyondSaïd Assar
 
Course File-AUE010305
Course File-AUE010305Course File-AUE010305
Course File-AUE010305Joms Antony
 
TAROT2013 Testing School - Gilles Perrouin presentation
TAROT2013 Testing School -  Gilles Perrouin presentationTAROT2013 Testing School -  Gilles Perrouin presentation
TAROT2013 Testing School - Gilles Perrouin presentationHenry Muccini
 
AI-SDV 2022: Accommodating the Deep Learning Revolution by a Development Proc...
AI-SDV 2022: Accommodating the Deep Learning Revolution by a Development Proc...AI-SDV 2022: Accommodating the Deep Learning Revolution by a Development Proc...
AI-SDV 2022: Accommodating the Deep Learning Revolution by a Development Proc...Dr. Haxel Consult
 
Naval Aviation Materials and Manufacturing Workshop: Accelerating Technolog...
Naval Aviation Materials and Manufacturing Workshop:  Accelerating Technolog...Naval Aviation Materials and Manufacturing Workshop:  Accelerating Technolog...
Naval Aviation Materials and Manufacturing Workshop: Accelerating Technolog...frazierwe
 
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...Hugo Bruneliere
 
Executable Metamodeling for Model V&V (May 25th, 2010)
Executable Metamodeling for Model V&V (May 25th, 2010)Executable Metamodeling for Model V&V (May 25th, 2010)
Executable Metamodeling for Model V&V (May 25th, 2010)Benoit Combemale
 
New books apr 2012 part2
New books apr 2012 part2New books apr 2012 part2
New books apr 2012 part2maethaya
 
Effective Detection of Model Changes
Effective Detection of Model ChangesEffective Detection of Model Changes
Effective Detection of Model ChangesDavid Méndez-Acuña
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentAlfonso Pierantonio
 
92MSDO_2016_YBU_LECTURE_1.ppt
92MSDO_2016_YBU_LECTURE_1.ppt92MSDO_2016_YBU_LECTURE_1.ppt
92MSDO_2016_YBU_LECTURE_1.pptRuhaimiMustapa1
 

Ähnlich wie Keynote Extreme Modelling 2014 (20)

Ece 1322 programming_for_engineers_s1_201213(1)
Ece 1322 programming_for_engineers_s1_201213(1)Ece 1322 programming_for_engineers_s1_201213(1)
Ece 1322 programming_for_engineers_s1_201213(1)
 
Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...Analysing the concept of quality in model-driven engineering literature: a sy...
Analysing the concept of quality in model-driven engineering literature: a sy...
 
Barcelona Global Energy Challenges 2015
Barcelona Global Energy Challenges 2015Barcelona Global Energy Challenges 2015
Barcelona Global Energy Challenges 2015
 
Resume April 2015
Resume April 2015Resume April 2015
Resume April 2015
 
The Finite element Method, A practical approach
The Finite element Method, A practical approachThe Finite element Method, A practical approach
The Finite element Method, A practical approach
 
PNPA - a Transformative Approach to Nanoengineering
PNPA - a Transformative Approach to NanoengineeringPNPA - a Transformative Approach to Nanoengineering
PNPA - a Transformative Approach to Nanoengineering
 
Model Driven Requirements Engineering: Mapping the Field and Beyond
Model Driven Requirements Engineering: Mapping the Field and BeyondModel Driven Requirements Engineering: Mapping the Field and Beyond
Model Driven Requirements Engineering: Mapping the Field and Beyond
 
Course File-AUE010305
Course File-AUE010305Course File-AUE010305
Course File-AUE010305
 
TAROT2013 Testing School - Gilles Perrouin presentation
TAROT2013 Testing School -  Gilles Perrouin presentationTAROT2013 Testing School -  Gilles Perrouin presentation
TAROT2013 Testing School - Gilles Perrouin presentation
 
AI-SDV 2022: Accommodating the Deep Learning Revolution by a Development Proc...
AI-SDV 2022: Accommodating the Deep Learning Revolution by a Development Proc...AI-SDV 2022: Accommodating the Deep Learning Revolution by a Development Proc...
AI-SDV 2022: Accommodating the Deep Learning Revolution by a Development Proc...
 
Naval Aviation Materials and Manufacturing Workshop: Accelerating Technolog...
Naval Aviation Materials and Manufacturing Workshop:  Accelerating Technolog...Naval Aviation Materials and Manufacturing Workshop:  Accelerating Technolog...
Naval Aviation Materials and Manufacturing Workshop: Accelerating Technolog...
 
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
Generic Model-based Approaches for Software Reverse Engineering and Comprehen...
 
Executable Metamodeling for Model V&V (May 25th, 2010)
Executable Metamodeling for Model V&V (May 25th, 2010)Executable Metamodeling for Model V&V (May 25th, 2010)
Executable Metamodeling for Model V&V (May 25th, 2010)
 
Me 308 142 syllabus(2)
Me 308 142 syllabus(2)Me 308 142 syllabus(2)
Me 308 142 syllabus(2)
 
New books apr 2012 part2
New books apr 2012 part2New books apr 2012 part2
New books apr 2012 part2
 
Effective Detection of Model Changes
Effective Detection of Model ChangesEffective Detection of Model Changes
Effective Detection of Model Changes
 
Evolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven DevelopmentEvolution in the Large and in the Small in Model-Driven Development
Evolution in the Large and in the Small in Model-Driven Development
 
Introduction to MDE
Introduction to MDEIntroduction to MDE
Introduction to MDE
 
92MSDO_2016_YBU_LECTURE_1.ppt
92MSDO_2016_YBU_LECTURE_1.ppt92MSDO_2016_YBU_LECTURE_1.ppt
92MSDO_2016_YBU_LECTURE_1.ppt
 
Plug play language_models
Plug play language_modelsPlug play language_models
Plug play language_models
 

Kürzlich hochgeladen

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...MyIntelliSource, Inc.
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...ICS
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Modelsaagamshah0812
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AIABDERRAOUF MEHENNI
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...panagenda
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...OnePlan Solutions
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...MyIntelliSource, Inc.
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️Delhi Call girls
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....ShaimaaMohamedGalal
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerThousandEyes
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendArshad QA
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsJhone kinadey
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comFatema Valibhai
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...harshavardhanraghave
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfkalichargn70th171
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...gurkirankumar98700
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxComplianceQuest1
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about usDynamic Netsoft
 

Kürzlich hochgeladen (20)

Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
Try MyIntelliAccount Cloud Accounting Software As A Service Solution Risk Fre...
 
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS LiveVip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
Vip Call Girls Noida ➡️ Delhi ➡️ 9999965857 No Advance 24HRS Live
 
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
The Real-World Challenges of Medical Device Cybersecurity- Mitigating Vulnera...
 
Unlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language ModelsUnlocking the Future of AI Agents with Large Language Models
Unlocking the Future of AI Agents with Large Language Models
 
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AISyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
SyndBuddy AI 2k Review 2024: Revolutionizing Content Syndication with AI
 
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
W01_panagenda_Navigating-the-Future-with-The-Hitchhikers-Guide-to-Notes-and-D...
 
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
Tech Tuesday-Harness the Power of Effective Resource Planning with OnePlan’s ...
 
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
Steps To Getting Up And Running Quickly With MyTimeClock Employee Scheduling ...
 
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
call girls in Vaishali (Ghaziabad) 🔝 >༒8448380779 🔝 genuine Escort Service 🔝✔️✔️
 
Clustering techniques data mining book ....
Clustering techniques data mining book ....Clustering techniques data mining book ....
Clustering techniques data mining book ....
 
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected WorkerHow To Troubleshoot Collaboration Apps for the Modern Connected Worker
How To Troubleshoot Collaboration Apps for the Modern Connected Worker
 
Test Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and BackendTest Automation Strategy for Frontend and Backend
Test Automation Strategy for Frontend and Backend
 
Right Money Management App For Your Financial Goals
Right Money Management App For Your Financial GoalsRight Money Management App For Your Financial Goals
Right Money Management App For Your Financial Goals
 
HR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.comHR Software Buyers Guide in 2024 - HRSoftware.com
HR Software Buyers Guide in 2024 - HRSoftware.com
 
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
Reassessing the Bedrock of Clinical Function Models: An Examination of Large ...
 
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdfLearn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
Learn the Fundamentals of XCUITest Framework_ A Beginner's Guide.pdf
 
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
(Genuine) Escort Service Lucknow | Starting ₹,5K To @25k with A/C 🧑🏽‍❤️‍🧑🏻 89...
 
Exploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the ProcessExploring iOS App Development: Simplifying the Process
Exploring iOS App Development: Simplifying the Process
 
A Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docxA Secure and Reliable Document Management System is Essential.docx
A Secure and Reliable Document Management System is Essential.docx
 
DNT_Corporate presentation know about us
DNT_Corporate presentation know about usDNT_Corporate presentation know about us
DNT_Corporate presentation know about us
 

Keynote Extreme Modelling 2014

  • 1. Putting Engineering into MDE Components and contracts for models and transformations Steffen Zschaler 29 September, 2014 With (lots of) help by Francisco Duran, Jeffrey Terrell, Jendrik Johannes, Dimitris Kolovos, and many others All errors my own!
  • 2. Motivation • MDE is beginning to see some use – Automotive – Telecommunications – Enterprise systems (especially for quality prediction) • Need for systematic engineering – To deal with scale of models – To deal with complexity of domains – To ensure correctness so MDE techniques can be relied on 29/09/2014 (c) Steffen Zschaler 2
  • 3. Motivation (2) • Elements of systematic MDE engineering – Requirements – Architectures – (Reusable) Components – Patterns and Architecture Styles – Methods and Guidelines A research agenda for the years to come 29/09/2014 (c) Steffen Zschaler 3
  • 4. Motivation (2) • Elements of systematic MDE engineering – Requirements – Architectures – (Reusable) Components – Patterns and Architecture Styles – Methods and Guidelines A research agenda for the years to come 29/09/2014 (c) Steffen Zschaler 3
  • 5. A framework for discussing composition 29/09/2014 (c) Steffen Zschaler 4 Uwe Aßmann: Invasive Software Composition.
  • 6. A framework for discussing composition Component Model (incl. contracts) 29/09/2014 (c) Steffen Zschaler 4 Uwe Aßmann: Invasive Software Composition.
  • 7. A framework for discussing composition Composition Model (composition technique) Component Model (incl. contracts) 29/09/2014 (c) Steffen Zschaler 4 Uwe Aßmann: Invasive Software Composition.
  • 8. A framework for discussing composition Composition Language Composition Model (composition technique) Component Model (incl. contracts) 29/09/2014 (c) Steffen Zschaler 4 Uwe Aßmann: Invasive Software Composition.
  • 9. A framework for discussing composition Composition System Composition Language Composition Model (composition technique) Component Model (incl. contracts) 29/09/2014 (c) Steffen Zschaler 4 Uwe Aßmann: Invasive Software Composition.
  • 10. Outline 1. Motivation 2. Models 3. Transformations 4. Challenges 29/09/2014 (c) Steffen Zschaler 5
  • 11. Outline 1. Motivation 2. Models 3. Transformations 4. Challenges 1. Composition techniques 2. Contracts 29/09/2014 (c) Steffen Zschaler 5
  • 12. Model components • Variety of approaches – Model/Package Import – AOM • Package Merge • Language-specific merges – E.g., for sequence diagrams – RAM, MATA, ... • Generic merges – E.g., GeKo, Reuseware, ... 29/09/2014 (c) Steffen Zschaler 6
  • 13. Model components Example 1 29/09/2014
  • 14. Model components Example 1 29/09/2014
  • 15. Model components Example 2 29/09/2014 (c) Steffen Zschaler 8
  • 16. Model components Example 2 29/09/2014 (c) Steffen Zschaler 8
  • 17. Model components Example 2 29/09/2014 (c) Steffen Zschaler 8
  • 18. Model components Example 2 29/09/2014 (c) Steffen Zschaler 8
  • 19. Model components Example 2 29/09/2014 (c) Steffen Zschaler 8
  • 20. Model components Example 2 29/09/2014 (c) Steffen Zschaler 8
  • 21. Model components Example 2 29/09/2014 (c) Steffen Zschaler 8
  • 22. Model components Contracts? • Only syntactical, if any – Meta-classes of elements expected – Naming and signatures of operations • Key exception: Rely-Guarantee Specifications – For temporal logic and state machines 29/09/2014 (c) Steffen Zschaler 9
  • 23. Syntactic Contracts 29/09/2014 (c) Steffen Zschaler 10
  • 24. Syntactic Contracts 29/09/2014 (c) Steffen Zschaler 10
  • 25. Syntactic Contracts 29/09/2014 (c) Steffen Zschaler 10
  • 26. Outline 1. Motivation 2. Models 3. Transformations 4. Challenges 1. Composition techniques 2. Contracts 29/09/2014 (c) Steffen Zschaler 11
  • 27. Transformation Composition 29/09/2014 (c) Steffen Zschaler 12
  • 28. Transformation Composition External Internal 29/09/2014 (c) Steffen Zschaler 12
  • 29. Transformation Composition External Internal Sequential T1 M1 M2 M3 T2 29/09/2014 (c) Steffen Zschaler 12
  • 30. Transformation Composition External Internal Sequential Rule Superimposition (aka import with replacement) 29/09/2014 (c) Steffen Zschaler 12
  • 31. Transformation Composition External Internal Sequential Rule Superimposition (aka import with replacement) M1 M2 29/09/2014 (c) Steffen Zschaler 12
  • 32. Transformation Composition External Internal Sequential Parallel Rule Superimposition (aka import with replacement) T1 M1 M2 M3 T2 M4 M5 29/09/2014 (c) Steffen Zschaler 12
  • 33. Transformation Composition External Internal Sequential Parallel Rule Superimposition (aka import with replacement) Rule Weaving (aka full aspect orientation) 29/09/2014 (c) Steffen Zschaler 12
  • 34. Transformation Composition External Internal Sequential Parallel Rule Superimposition (aka import with replacement) Rule Weaving (aka full aspect orientation) M1 M2 29/09/2014 (c) Steffen Zschaler 12
  • 35. Transformation Composition Sequential Class Model OO to Relational Table Model 29/09/2014 (c) Steffen Zschaler 13
  • 36. Transformation Composition Sequential Table Model Normalised Table Model Normalisation 29/09/2014 (c) Steffen Zschaler 13
  • 37. Transformation Composition Sequential Class Model OO to Relational Table Model Normalised Table Model Normalisation 29/09/2014 (c) Steffen Zschaler 13
  • 38. Transformation Composition Parallel :Table * <<hook>> :Column Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
  • 39. Transformation Composition Parallel :Table :Class * <<hook>> :Column Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
  • 40. Transformation Composition Parallel :Table :Class * <<hook>> :Column :Attribute Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
  • 41. Transformation Composition Parallel :Table :Class * <<hook>> :Column <<anchor>> :Column :Attribute Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
  • 42. Transformation Composition Parallel :Table :Class * <<hook>> :Column <<anchor>> :Column :Attribute Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
  • 43. Transformation Composition Parallel :Table :Class super sub :Class * <<hook>> :Column <<anchor>> :Column :Attribute Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
  • 44. Transformation Composition Parallel <<anchor>><<slot>> :Table * <<hook>> :Column <<anchor>> :Column :Class super sub :Class :Attribute Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
  • 45. Transformation Composition Parallel <<anchor>><<slot>> :Table * <<hook>> :Column <<anchor>> :Column <<anchor>><<slot>> :Table * <<hook>> :Column :Class super sub :Class :Attribute Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
  • 46. Transformation Composition Parallel Weaving <<anchor>><<slot>> :Table * <<hook>> :Column <<anchor>> :Column <<anchor>><<slot>> :Table * <<hook>> :Column :Class super sub :Class :Attribute Weaving Based on Jendrik Johannes, Steffen Zschaler, Miguel A. Fernández, Antonio Castillo, Dimitrios S. Kolovos, Richard F. Paige: Abstracting Complex Languages through Transformation and Composition. MODELS 2009, LNCS 5795, pp 546–550.
  • 47. Transformation Composition Superimposition module Class2Relational; create OUT : Relational from IN : Class; rule Class2Table { Based on Lawley, M., Duddy, K., Gerber, A., Raymond, K. Language Features for Re-Use and Maintainability of MDA Transformations. OOPSLA & GPCE Workshop, 2004 and: Jouault, F. and Kurtev, I. Transforming models with ATL. In: Satellite Events at the MoDELS 2005 Conference, Oct 2005, Montego Bay, Jamaica. pp. 128-138, LNCS 3844 (long version from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.6117&rep=rep1&type=pdf ) from c : Class!Class to out : Relational!Table ( name <- c.name, col <- Sequence {key} ->union(c.attr)), key : Relational!Column ( name <- 'objectId', type <- objectIdType) } rule Attribute2Column { from a : Class!Attribute to out : Relational!Column ( name <- a.name, type <- a.type) } 29/09/2014 (c) Steffen Zschaler 15
  • 48. Transformation Composition Superimposition module Class2Relational; create OUT : Relational from IN : Class; rule Class2Table { module Class2RelationalInheritance; create OUT : Relational from IN : Class; rule Class2Table { Based on Lawley, M., Duddy, K., Gerber, A., Raymond, K. Language Features for Re-Use and Maintainability of MDA Transformations. OOPSLA & GPCE Workshop, 2004 and: Jouault, F. and Kurtev, I. Transforming models with ATL. In: Satellite Events at the MoDELS 2005 Conference, Oct 2005, Montego Bay, Jamaica. pp. 128-138, LNCS 3844 (long version from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.6117&rep=rep1&type=pdf ) from c : Class!Class to out : Relational!Table ( name <- c.name, col <- Sequence {key} ->union(c.attr)), key : Relational!Column ( name <- 'objectId', type <- objectIdType) } rule Attribute2Column { from a : Class!Attribute to out : Relational!Column ( name <- a.name, type <- a.type) } from c : Class!Class ( c.parent.oclIsUndefined()) to out : Relational!Table ( name <- c.name, col <- Sequence {key} ->union(c.flattenedFeatures)), key : Relational!Column ( name <- 'objectId', type <- objectIdType) } -- flattenedFeatures helper not shown. -- It collects all features of a class -- and all its sub-classes 29/09/2014 (c) Steffen Zschaler 15
  • 49. Transformation Composition Superimposition module Class2Relational; create OUT : Relational from IN : Class; rule Class2Table { Based on Lawley, M., Duddy, K., Gerber, A., Raymond, K. Language Features for Re-Use and Maintainability of MDA Transformations. OOPSLA & GPCE Workshop, 2004 and: Jouault, F. and Kurtev, I. Transforming models with ATL. In: Satellite Events at the MoDELS 2005 Conference, Oct 2005, Montego Bay, Jamaica. pp. 128-138, LNCS 3844 (long version from http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.99.6117&rep=rep1&type=pdf ) from c : Class!Class to out : Relational!Table ( name <- c.name, col <- Sequence {key} ->union(c.attr)), key : Relational!Column ( name <- 'objectId', type <- objectIdType) } rule Attribute2Column { from a : Class!Attribute to out : Relational!Column ( name <- a.name, type <- a.type) } ( c.parent.oclIsUndefined()) to out : Relational!Table ( name <- c.name, col <- Sequence {key} ->union(c.flattenedFeatures)), key : Relational!Column ( name 'objectId', type <- objectIdType) } -- flattenedFeatures helper -- not shown... 29/09/2014 (c) Steffen Zschaler 15
  • 50. Transformation Composition Weaving 29/09/2014 (c) Steffen Zschaler 16
  • 51. Transformation Composition Weaving 29/09/2014 (c) Steffen Zschaler 16
  • 52. Contracts • Need both syntactical and semantic contracts • Goal: – Be precise enough to enable reasoning and give assurances – Be lenient enough to maximise reusability 29/09/2014 (c) Steffen Zschaler 17
  • 53. Contracts (2) Will look at two types of contracts: – Syntactic contracts for sequential composition (aka model typing) – Semantic contracts for rule weaving 29/09/2014 (c) Steffen Zschaler 18
  • 54. Contracts for sequential composition Class Model OO to Relational Table Model • Contracts specify the kinds of models read and written by a transformation • Options: 1. Meta-models 2. Effective meta-models 3. Model types / Concepts Normalised Table Model Normalisation 29/09/2014 (c) Steffen Zschaler 19
  • 55. Model typing problems mmo NewSM (s : Simple) { s += new StateMachine () } S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. In VAO’14
  • 56. Model typing problems mmo NewSM (s : Simple) { s += new StateMachine () } StateMachine initialState 0..1 State name: String Transition event: String containedState * src 1 tgt 1 incoming * * outgoing S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. In VAO’14
  • 57. Model typing problems mmo NewSM (s : Simple) { s += new StateMachine () } StateMachine initialState 0..1 State name: String Transition event: String containedState * src 1 tgt 1 incoming * * outgoing Difference between Mandatory-start <: Simple and Mandatory-start Steel Simple S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. In VAO’14
  • 58. Model typing problems Mandatory-start <:Steel Simple mmo NewSM (s : Simple) { s += new StateMachine () } StateMachine initialState 0..1 State name: String Transition event: String containedState * src 1 tgt 1 incoming * * outgoing Difference between Simple and Mandatory-start Error: Allows passing in Mandatory-start instance, but breaks it. S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. In VAO’14
  • 59. mmo NewSM (s : Simple) { sm := new StateMachine () ; sm.initialState += new State () ; s += sm } Model typing problems StateMachine initialState 0..1 State name: String Transition event: String containedState * src 1 tgt 1 incoming * * outgoing Difference between Mandatory-start <: Simple and Mandatory-start Guy Simple S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. In VAO’14
  • 60. Mandatory-start <:Guy Simple mmo NewSM (s : Simple) { sm := new StateMachine () ; sm.initialState += new State () ; s += sm } Model typing problems StateMachine initialState 0..1 State name: String Transition event: String containedState * src 1 tgt 1 incoming * * outgoing Difference between Simple and Mandatory-start Over-restriction: Would work with Mandatory-start instance, but cannot specify. S. Zschaler: Towards Constraint-Based Model Types: A Generalised Formal Foundation for Model Genericity. In VAO’14
  • 61. Syntactic contracts: Research challenges • Type theory of transformations – Including intrinsic and extrinsic contracts • Static analysis of transformations – Data flow analysis • Tool support for managing and checking transformation contracts 29/09/2014 (c) Steffen Zschaler 21
  • 62. Contracts for rule weaving 29/09/2014 (c) Steffen Zschaler 22
  • 63. Contracts for rule weaving 29/09/2014 (c) Steffen Zschaler 22
  • 64. Contracts for rule weaving • Morphisms over transformation systems – Both for parameter and bindings • Define Properties of morphisms to ensure semantics of weaving – Behaviour reflection and preservation  Semantic contracts 29/09/2014 (c) Steffen Zschaler 23
  • 65. Semantic contracts: Research challenges • Other semantic properties – Allow some change of behaviour – Express behaviour of base parametrised over transformations to be woven 29/09/2014 (c) Steffen Zschaler 24
  • 66. Semantic contracts: Research challenges • Other semantic properties – Allow some change of behaviour – Express behaviour of base parametrised over transformations to be woven M1 M2 τ 29/09/2014 (c) Steffen Zschaler 24
  • 67. Semantic contracts: Research challenges • Other semantic properties – Allow some change of behaviour – Express behaviour of base parametrised over transformations to be woven M1 M2 τ sem1 sem2 ζ Γ1 Γ2 29/09/2014 (c) Steffen Zschaler 24
  • 68. Semantic contracts: Research challenges • Other semantic properties – Allow some change of behaviour – Express behaviour of base parametrised over transformations to be woven M1 M2 τ(τ1, .. , τn) f(ζ1, .. , ζn) sem1 sem2 ζ Γ1 Γ2 29/09/2014 (c) Steffen Zschaler 24
  • 69. Outline 1. Motivation 2. Models 3. Transformations 4. Challenges 29/09/2014 (c) Steffen Zschaler 25
  • 70. Research Agenda • Need a calculus of transformation components – What do they look like? – What composition operations are there? – What are contracts? – What properties can we derive for composite transformations? • Some work exists: – See talk – Megamodelling (e.g., MINNT for typing) • But are still missing fundamental theory 29/09/2014 (c) Steffen Zschaler 26

Hinweis der Redaktion

  1. We focus on reusable components because we need to focus on something and many of the other bits can build on a notion of modularity.
  2. We focus on reusable components because we need to focus on something and many of the other bits can build on a notion of modularity.