SlideShare ist ein Scribd-Unternehmen logo
1 von 110
Downloaden Sie, um offline zu lesen
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
2
Antoine-Laurent de Lavoisier
(1743-1794)
"Rien ne se perd, rien ne se
crée, tout se transforme."
"Nothing is lost, nothing is
created, all is transformed.”
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
3
Model-Driven Engineering (MDE)
•  An approach to software development where
the principal artefacts are models (as opposed
to code)
•  Why?
– To reduce the accidental complexity
of software
•  caused by the technology or methods
used to solve the problem
– As opposed to essential complexity
•  Inherent to the problem, cannot be
reduced by any technology or language
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
4
Model-Driven Engineering
•  Basic Principle: « Everything is a model »
– Allows us to use a generic approach, applicable to any kind of
software artefact
– Even source code can be considered to be a model
– modeling languages can be represented as models too
•  The technique of « model transformation » is
crucial to be able to manipulate software
models
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
5
state of the
practice
state of the
art
Model-Driven Engineering
Code
Level of automation
Abstraction level
code
only
code
centric
Code Code Code
Model Model Model Model
round-trip
engineering
model
centric
executable
models
visualise synchronise generate
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
6
Model Transformation
•  Many purposes and uses
– Automatic code generation
– Synthesising models from code (e.g. program
comprehension)
– Evolving models (e.g. model quality improvement)
– Model simulation, execution and animation
– Model checking, verification and analysis
– Model quality improvement
– Model translation
– Test generation
– Model merging
– Model weaving
– Model (de)composition
– Model-based testing
– …
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
7
Model Transformation Support
•  In order to provide automated support for model
transformation, we need
– Formal methods
– Standards
– Methodologies / Processes
– Tools
– Transformation languages
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
8
Model Transformation Support
•  Needs formal methods
– For model analysis and verification, model checking,
model transformation correctness, …
•  Needs standards
– UML, XMI, QVT, SysML,
EMF, Ecore, …
•  Needs methodologies
– RUP, Executable UML (based on the
method Schlaer-Mellor)
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
9
Model Transformation Support
•  Needs tools
– AndoMDA
– Rational Technical Developer (IBM)
(f.k.a. Rational Rose RealTime)
– Telelogic Tau (IBM)
(f.k.a. Rhapsody)
– Together Architect (Borland)
– OptimalJ (Compuware)
– Mathworks Simulink
– Codagen Architect
– ATLAS
– Kermeta
– …
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
10
Model Transformation Support
•  Needs transformation languages
– ATL (ATLAS Transformation Language)
– Kermeta
– QVT
– VIATRA2
– GReAT
– AGG
– ATOM3
– Fujaba
– MOFLON
– Tefkat
– SiTra
– …
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
11
Model Transformation
A Taxonomy
•  Another dimension: modeling level
– Example: OMG’s 4-level modeling architecture
meta-model
model
“the real world”
meta-meta
model
MOF: a unique meta-metamodel
Metamodels
(e.g. UML modeling language)
Software models
(e.g. UML diagrams)
Real-world being modeled
(e.g. running software systems)
M0
M1
M2
M3
Model transformation languages
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
13
Model Transformation
A Taxonomy
•  Transformations can be classified along
different axes
– Endogenous versus exogenous transformation
•  Endogenous transformations transform source model(s) into
target model(s) expressed with same metamodel
•  Exogenous transformations transform source model(s) into
target model(s) expressed with different metamodels
– Horizontal versus vertical transformation
•  Horizontal transformations are expressed between models
residing at the same abstraction level
•  Vertical transformations are expressed between models at
different levels of abstraction
(e.g. requirements -> design, design -> code)
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
14
Model Transformation
A Taxonomy
•  Two orthogonal dimensions
– Examples
endogenous exogenous
horizontal model quality
improvement
language translation
(e.g. UML to XMI,
UML to ER)
vertical refinement code generation,
model synthesis
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
15
Model Transformation Languages
A Taxonomy
•  Transformation languages can be classified
along different axes
– Declarative versus operational languages
– Text-based versus visual languages
– Ad-hoc versus formally founded
– General-purpose versus domain-specific
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
16
Model Transformation Languages
A Taxonomy
•  Declarative versus operational languages
– Operational / Imperative languages
•  ATL (ATLAS Transformation Language), INRIA France
– Part of Eclipse M2M (Model to Model) project
•  Kermeta, IRISA Rennes
•  SiTra (University of Kent)
•  QVT Operational
– Supported by various tools (e.g. mediniQVT, ModelMorf)
– Declarative / Relational languages
•  QVT Relational, OMG
– Supported by various tools (e.g. Borland Together)
•  Tefkat
•  Various languages based on graph transformation
– VIATRA2, GReAT, AGG, ATOM3, Fujaba, MOFLON
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
17
Model Transformation Languages
A Taxonomy
Text-based languages
•  ATL
•  Kermeta
•  Tefkat
•  SiTra
•  QVT Operational
•  QVT Relational
Visual languages
•  GReAT
•  VIATRA2
•  AGG
•  ATOM3
•  Fujaba
•  MOFLON
•  QVT Relational
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
18
module Replace;
create OUT : KM3 from IN : KM3;
rule Metamodel {
from inputMm:KM3!Metamodel
to outputMm:KM3!Metamodel ( location <- inputMm.location, contents <- inputMm.contents ) }
rule Package {
from inputPkg:KM3!Package
to outputPkg:KM3!Package ( name <- inputPkg.name, contents <- inputPkg.contents ) }
rule ClassA {
from inputA:KM3!Class ( inputA.supertypes.isEmpty() )
to outputA:KM3!Class ( name <- inputA.name, isAbstract <- inputA.isAbstract ) }
Model Transformation Languages
Example
•  A model transformation in ATL
– Replace inheritance by aggregation in a class
diagram, part 1 textual and
procedural
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
19
rule ClassB {
from inputB:KM3!Class ( not(inputB.supertypes.isEmpty()) )
to outputB:KM3!Class (name <- inputB.name, isAbstract <- inputB.isAbstract,
structuralFeatures <- inputB.supertypes
->iterate(a;acc : Sequence(KM3!StructuralFeature) = Sequence{}|
acc->including(thisModule.Inherit2Association(a,inputB)) ) ) }
lazy rule Inherit2Association {
from supertype:KM3!Class, children:KM3!Class
to refChildren : KM3!Reference ( name <- 'inherit'+supertype.name, opposite <- refSupertype,
owner <- children, type <- supertype, lower <- 1, upper <- 1 ),
refSupertype : KM3!Reference( name <- 'children'+children.name, opposite <- refChildren,
owner <- supertype, type <- children, lower <- 1, upper <- 1 ) }
Model Transformation Languages
Example
•  A model transformation in ATL
– Replace inheritance by aggregation in a class
diagram, part 2 textual and
procedural
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
20
Model Transformation Languages
Example
•  A model transformation in Fujaba
– Pull up method in a class diagram
visual and
declarative
based on
control flow
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
21
Model Transformation Languages
Example
•  A model transformation in GReAT
– Generation of Sierpinski triangles
visual and
declarative
based on
data flow
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
22
Model Transformation Languages
Example
•  A model transformation in QVT Relational
– UML class to relational database schema
•  Graphical syntax
•  Textual syntax
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
23
Model Transformation Languages
Example
•  A model transformation in QVT Operational
– UML class to relational database schema
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
24
What comes next ?
•  Model Transformation Examples
– Model Synthesis
– Model Translation
– Model Simulation
– Model Analysis and Verification
– Generating Domain-Specific Modeling Languages
– Model Quality Improvement
– Model Co-Evolution
Model transformation examples
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
26
Model transformation examples
Model Synthesis
•  Extracting models from code
– Crucial activity in reverse engineering and program
comprehension
– Try to build a mental model from the code
– Is a vertical, exogenous
transformation
Source code
(e.g. Java)
Design model
(e.g. UML)
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
27
Model transformation examples
Model Synthesis
•  Example:
– Package diagram generated from Java code with
MagicDraw
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
28
Model transformation examples
Model Synthesis
•  Example:
– Class diagram
generated from Java
code with MagicDraw
(result after cleaning)
Model transformation examples
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
30
Model transformation examples
Model Translation
•  Model translation is a horizontal, exogenous
model transformation
– Can be used for different purposes
•  Translating UML models to formal models
– in order to achieve some form of formal analysis
•  UML2Alloy
•  UML activity diagrams to Petri nets
•  UML state diagrams to state machines
•  …
•  Translating between different “equivalent”
representations
•  UML to XMI
•  (E)MOF to Ecore
•  Class diagrams to Entity-Relationship diagrams
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
31
Model transformation examples
Model Translation
Example: UML to ER-diagrams.
– “Towards model transformation generation by example”.
Wimmer, Strommer, Kargl, Kramler, Proc. HICSS 2007
Concrete
Syntax
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
32
Model transformation examples
Model Translation
Example: UML to ER-diagrams
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
33
Model transformation examples
Model Translation
•  Exemple: UML to ER diagrams
– Implementation in ATL
– Rule for translating UML property into ER attribute
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
34
Model transformation examples
Model Translation
•  Exemple: ER to UML diagrams
– Implementation in ATL
– Backward rule to transform ER attribute into UML
property
Model Transformation examples
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
36
Model transformation examples
Model Simulation
•  Petri Nets
– A type of model that formalises system state changes
by means of places that contain tokens that can
move to other places by means of transitions
triggered by events.
– Can be used for model verification purposes, e.g. to
give a precise semantics to UML activity diagrams
•  Formal properties of the Petri net (e.g. deadlock, livelocks,
reachability) can help to verify the quality of the
corresponding activity diagram
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
37
Model transformation examples
Model Simulation
•  Petri net notation
transition
empty place
place with tokens
Input
places
Output
places
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
38
Model transformation examples
Model Simulation
•  Petri net example
t3
t2
t1
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
39
Model transformation examples
Model Simulation
•  How to simulate the Petri net execution?
– Express Petri net as a model conform to a
metamodel
– Use model transformations to specify its operational
semantics
– Is a horizontal, endogenous model transformation
– We illustrate this by means of graph transformation
tool AGG
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
40
Model transformation examples
Model Simulation
•  Representing a Petri net as a graph …
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
41
Model transformation examples
Model Simulation
•  … that conforms to a type graph
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
42
Model transformation examples
Model Simulation
•  Petri net execution
– Firing transition t1
t3
t2
t1
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
43
Model transformation examples
Model Simulation
•  Petri net execution
– Firing transition t2
t3
t2
t1
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
44
Model transformation examples
Model Simulation
•  Petri net execution
– Firing transition t2
t3
t2
t1
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
45
Model transformation examples
Model Simulation
•  Petri net execution
– Firing transition t3
t3
t2
t1
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
46
Model transformation examples
Model Simulation
•  Petri net execution
– Firing transition t3
t3
t2
t1
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
47
Model transformation examples
Model Simulation
•  Simulating the Petri net by executing a graph
grammar that represents the operational
semantics
– Result after execution:
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
48
Model transformation examples
Model Simulation
•  Operational semantics is expressed as a graph
grammar, i.e., a set of graph transformation rules
NAC LHS RHS
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
49
Model transformation examples
Model Simulation
•  Operational semantics is expressed as a graph
grammar, i.e., a set of graph transformation rules
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
50
Model transformation examples
Model Simulation
•  Petri net concurrency:
– Two transitions can fire at the same time, provided
that they are not in conflict
–  The input places involved in both transitions should
be disjoint
– The graph grammar formalism naturally lends itself to
such concurrent behaviour
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
51
Model transformation examples
Model Simulation
•  Petri nets:
– Concurrency between t1 and t2
t3
t2
t1
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
52
Model transformation examples
Model Simulation
•  Petri nets
– Concurrency between t1 and t2
t3
t2
t1
Model transformation examples
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
54
Model transformation examples
Model Verification
•  Robert France: There is a need for formal
methods in the MDE context
– To perform model checking, model analysis and
model verification
– To verify properties of (sets of) model transformations
•  E.g. does a transformation preserve syntax, correctness,
semantics, consistency ?
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
55
Model transformation examples
Model Verification
•  Petri net revisited
•  Static verification of models
– Is the model syntactically correct ?
•  i.e. conform to type graph (read: metamodel) and additional
graph constraints
•  Static verification of model transformations
– Is the operational semantics of Petri net execution
syntactically correct?
•  i.e. each transformation rule produces a syntactically correct
target model
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
56
Model transformation examples
Model Verification
•  Petri net revisited
•  Dynamic verification
– Reachability analysis
•  Are all places in the Petri net reachable?
– Concurrency analysis
•  Is it possible to arrive in a “deadlock” or “livelock” situation?
– Termination analysis
•  Will the Petri net execution ever terminate?
– Confluence analysis
•  Do different execution traces lead to the same unique result
(for the same source model)
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
57
Model transformation examples
Model Verification
•  Petri net revisited
•  Dynamic verification
–  Is the source model realistic?
•  Is there at least one applicable rule?
–  Are all rules useful?
•  Can we find, for each rule, a scenario in which it is used?
–  Are all rules useful for the considered source model?
–  Are some rules mutually exclusive or sequentially
dependent?
•  We can use critical pair analysis to detect such situations
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
58
Model transformation examples
Model Transformation Analysis
Are some rules sequentially
dependent?
– use critical pair analysis to detect
such situations
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
59
Sequential dependency analysis
Informal definition
T2 sequentially depends on T1 if
•  T1 can be applied to G but T2 cannot
•  applying T1 triggers application of T2
G H1 X
T1 T2
Model transformation examples
Model Transformation Analysis
G H2
T2
Model transformation examples
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
61
Model transformation examples
Generating visual languages
•  Difference between abstract and concrete
syntax
metamodel
M2 level
M1 level
modeldiagram
visualises
conformsto
Visual language and
lay-out constraintsrespects
concrete syntax abstract syntax
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
62
•  Difference between abstract and concrete
syntax
:Place
token=1
name="p1"
:Place
token=2
name="p3"
:Place
token=0
name="p2"
:Transition
token=0
name="t"
:ArcPT
inscr="a1"
:ArcPT
inscr="a3"
:ArcTP
inscr="a2"
endArcPT
endArcPT
beginArcPT
beginArcPT
beginArcTP
endArcTP
• The number of tokens is shown inside the circle
• The place name is shown under the circle
• The transition name is shown inside the rectangle
• …
Model transformation examples
Generating visual languages
M2 level
M1 level
concrete syntax abstract syntax
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
63
Model transformation examples
Generating visual languages
•  Tiger Project tool setup
Tiger Eclipse plug-in
Metamodel specification
Visual syntax specification
Specification of
manipulation rules
Generated Eclipse plug-in
A domain-specific
modeling environment
AGG graph
transformation engine
uses
K. Ehrig, C. Ermel, S. Hansgen, G. Taentzer.
Generation of Visual Editors as Eclipse Plug-Ins.
Proc. Int’l Conf. Automated Software Engineering (ASE)
http://tfs.cs.tu-berlin.de/tigerprj/
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
64
Model transformation examples
Generating visual languages
•  Example: Petri nets
– What the end-user sees :
•  A tool for creating, manipulating, transforming Petri nets
•  Using concrete visual syntax
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
65
Model transformation examples
Generating visual languages
•  Example: Petri nets
– What the developer sees :
•  A tool for specifying the metamodel / type graph
•  A tool for specifying the visual notation
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
66
Model transformation examples
Generating visual languages
•  Example: Petri nets
– What the developer sees :
•  A tool for specifying instance models / graphs
•  Using the visual syntax notation
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
67
Model transformation examples
Generating visual languages
•  Example: Petri nets
– What the developer sees
•  A tool for specifying model transformation through graph
transformation
•  Using visual notation
Model transformation examples
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
69
Model Transformation Examples
Model co-evolution
•  Modeling languages can evolve, too!
– Requires support for metamodel evolution
and language evolution
– To avoid language erosion and inconsistencies,
•  Models expressed in these languages need to
co-evolve (co-adapt)
•  Tools supporting these languages need to co-evolve too
model
“the real world”
Model
Modeling
language
conforms to
Evolved
language
Co-evolved
Model
conforms to
Model transformation examples
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
71
Model transformation examples
Model Quality Improvement
•  Model refactoring
– An endogenous horizontal model transformation that
improves the model’s structure while preserving its
behaviour and other quality aspects
•  What to preserve may depend on the context and type of
model
•  Model refactoring is based on the idea of
program (source code) refactoring
– "the process of changing a program in such a way
that it does not alter the external behavior of the
code, yet improves its internal structure" [Martin
Fowler, 1999]
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
72
Model transformation examples
Model Refactoring
•  One of the best known
references on program
refactoring, with
illustrative examples in
Java
– see also
www.refactoring.com
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
73
Model transformation examples
Model Refactoring
•  Model refactorings can be applied to any type of
UML model
– Class diagrams
– State-machine diagrams
– Sequence diagrams
– Activity diagrams
– …
Note: A model refactoring actually changes the model structure.
Sometimes, even simply changing the layout of a diagram that
visually represents a model can also help to improve
understandability.
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
74
Model Refactoring
for class diagrams
•  Pull Up Operation
Rectangle
rotate
Polygon
Triangle
rotate
UI
draw
Rectangle
Polygon
rotate
Triangle
UI
draw
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
75
Model Refactoring
for class diagrams
•  Push Down Operation
Rectangle
rotate
Polygon
Triangle
rotate
UI
draw
Rectangle
Polygon
rotate
Triangle
UI
draw
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
76
Model Refactoring
for class diagrams
•  Pull Up Association
Dog
Mammal
Horse
Eye
2 2
Tail
1 1
Dog
Mammal
Horse
Eye2
Tail
1
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
77
Model Refactoring
for class diagrams
•  Split Class
– Separate a class in 2 parts, and distribute its
attributes, operations and relations over these parts
A
a
b
d
m()
n()
A1
a
b
m()
B A2
d
n()
B
b
b
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
78
Model Refactoring
for class diagrams
•  Split Class (version 2)
– Separate a class into 2 parts related via
generalisation
A
a
c
d
m()
n()
A1
a
c
m()
B
A2
d
n()
B
b
b
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
79
Additional OCL constraint:
context Borrow inv:
let e: Borrow in
self.Book_copy = e.Book_copy and
self.Date = e.Date and self.Person = e.Person
implies self = e
Model Refactoring
for class diagrams
•  Turn ternary association into binary associations
Book copy Date
*0..1
Person
*
Borrow
Book copy Date
*0..1
Person
*
Borrow
11
1
Attention !
Inversed cardinalities
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
80
•  Turn association class into ordinary class
Model Refactoring
for class diagrams
Person Company
1..* 0..*
worksFor
Work Contract
annual revenue
Person Company
0..* 1..*
Work Contract
annual revenue
11
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
81
Model Refactoring
for state machine diagrams
•  Merge states
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
82
Model Refactoring
for state machine diagrams
•  Split state
– Before the refactoring
Example from J.-M. Bruel, Université de Pau, France
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
83
Model Refactoring
for state machine diagrams
•  Split state
– New behaviour we would like to insert into existing
state machine
(split NonEmpty state in two separate states)
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
84
Model Refactoring
for state machine diagrams
•  Split state
– After the refactoring
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
85
Model Refactoring
for state machine diagrams
•  Flatten states: Unfold incoming transitions
– Transition from state s1 to the boundary of a
complex state represents a transition from s1 to the
initial state of the complex state
a b
a
b
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
86
Model Refactoring
for state machine diagrams
•  Flatten states: Unfold outgoing transitions
– Transition from boundary of complex state to state s1
represents corresponding transitions from all
substates to s1
a b
a
b
a
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
87
Model Refactoring
for state machine diagrams
•  Example of “Flatten states”
– telephone communication: Unfold transitions between
Idle state and Active composite state
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
88
Model Refactoring
for state machine diagrams
•  Example of “Flatten states”
– telephone communication: Remove the Active
composite state
Purpose of the transformation? End result is a finite state machine
that can be formally analysed by dedicated tools
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
89
Model Refactoring
for state machine diagrams
•  Introduce/remove pseudostates
(fold transitions to composite state)
Forward
Second
Neutral
First
GearBox
Forward
Second
Neutral
First
GearBox
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
90
Model Refactoring
for state machine diagrams
•  Replace transition activity by entry/exit activity
Opening
Closing
Closed
GarageDoor
Open
depress /
motor up
touch /
motor off
depress /
motor down
touch /
motor off
Opening
entry/motor up
Closing
entry/motor down
Closed
entry/motor off
GarageDoor
Open
entry/motor off
depress
touch
depress
touch
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
91
Model Refactoring
for activity diagrams
•  Make activities concurrent
– Create a fork and a join pseudostate, and move
several sequential groups of actions between them,
thus enabling their concurrent execution
! Can only be done if the activities are truly concurrent,
i.e., if they do not depend on one another
•  Sequentialize concurrent activities
– Removes a pair of fork and join pseudostates, and
links the enclosed group of actions to another
! Can only be done if the activities are truly concurrent,
i.e., if they do not depend on one another
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
92
Model Refactoring
for activity diagrams
•  Make (independent) activities concurrent
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
93
Model Refactoring
for activity diagrams
•  Sequentialize concurrent activities
Model Refactoring Support
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
95
Model Refactoring Support
using Graph Transformation
•  How to formally specify model refactorings?
•  Use graph transformations
– Each model refactoring is specified as a set of graph
transformation rules that need to be applied in a
certain order
– A graph transformation rule is composed of
•  LHS: left-hand side, i.e. the situation before applying the
refactoring
•  RHS: right-hand side, i.e. the situation after applying the
refactoring
•  NAC: one or more negative application conditions, restricting
the applicability of the rule
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
96
Model Refactoring Support
using Graph Transformation
•  Tool support for graph transformation
– Many graph transformation tools exist
•  AGG, Fujaba, VIATRA2, GrGen, GReAT, VMTS, MOTMOT,
…
– Eclipse EMF support for model refactoring
(developed by German researchers)
•  Tiger Eclipse plug-in
http://tfs.cs.tu-berlin.de/emftrans/
– Supports model transformation for EMF, is based on
AGG
– Allows formal reasoning over transformation rules
– Uniform way to specify transformation of different
diagram types
•  Refactoring plug-in
– Supports model refactoring, is based on Tiger plug-in
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
97
Model Refactoring Support
using Graph Transformation
•  Tiger EMF transformation project
– “flatten states” refactoring : first GT rule
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
98
Model Refactoring Support
using Graph Transformation
•  Tiger EMF transformation project
– “flatten states” refactoring : second GT rule
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
99
Model Refactoring Support
using Graph Transformation
•  Class diagram refactoring : Pull Up Attribute
– Step 1: Annotate all subclasses containing the
attribute to be pulled up
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
100
Model Refactoring Support
using Graph Transformation
•  Class diagram refactoring : Pull Up Attribute
– Step 2: Pull up the attribute from all annotated
subclasses
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
101
Model Refactoring Support
using Graph Transformation
•  Class diagram refactoring : Pull Up Attribute
– Step 3: After pulling up, delete the attribute in all
subclasses.
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
102
Model Refactoring Support
using Graph Transformation
•  Class diagram refactoring : Pull Up Attribute
– Step 4: If there are still annotations, delete them.
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
103
Model Refactoring Support
using Graph Transformation
•  Eclipse model refactoring plug-in
– Based on Tiger EMF transformation plugin
A class diagram
and its tree
view
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
104
Model Refactoring Support
using Graph Transformation
•  Eclipse model
refactoring plug-in
– Selecting a model
refactoring …
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
105
Model Refactoring Support
using Graph Transformation
•  Eclipse model
refactoring plug-in
– … and studying its
effect
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
106
Model Refactoring Support
using Graph Transformation
•  Eclipse model refactoring plug-in
Result of
applying the
model
refactoring
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
107
Model Refactoring Support
using Graph Transformation
•  Transformation dependency analysis
– Example of sequential dependencies between
refactorings
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
108
Model Refactoring Support
Graph Transformation Dependency Analysis
•  Sequential dependency analysis
– Example: PullUpVariable depends on
CreateSuperclass
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
109
Model Refactoring Support
Graph Transformation Dependency Analysis
•  Sequential dependency analysis
– Example: PullUpVariable depends on
CreateSuperclass
A
B
b
C
A
B
b
A
B
b
C∂ ∂
CreateSuperclass PullUpVariable
©TomMens,Umons,2009
InternationalSchoolMDD4DRES,Aussois
110
Conclusion
There is still a long way to go…

Weitere ähnliche Inhalte

Andere mochten auch

Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard LibraryEdward Willink
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsEdward Willink
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Etienne Juliot
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsJordi Cabot
 
erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. OCCIware
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Edward Willink
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking AssignmentSalma ES-Salmani
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Erradi Mohamed
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open sourceKorteby Farouk
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughRealTime-at-Work (RTaW)
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal PerspectiveEdward Willink
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباءErradi Mohamed
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of OppositesEdward Willink
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesEdward Willink
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governancebharati k
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEdward Willink
 

Andere mochten auch (20)

UMLX and QVT and ATL
UMLX and QVT and ATLUMLX and QVT and ATL
UMLX and QVT and ATL
 
Modeling the OCL Standard Library
Modeling the OCL Standard LibraryModeling the OCL Standard Library
Modeling the OCL Standard Library
 
Optimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc resultsOptimized declarative transformation First Eclipse QVTc results
Optimized declarative transformation First Eclipse QVTc results
 
Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...Be serious with sirius your journey from first experimentation to large deplo...
Be serious with sirius your journey from first experimentation to large deplo...
 
Collaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source ProjectsCollaboration and Governance of Open Source Projects
Collaboration and Governance of Open Source Projects
 
erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris. erocci - a scalable model-driven API framework, OW2con'16, Paris.
erocci - a scalable model-driven API framework, OW2con'16, Paris.
 
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
Local Optimizations in Eclipse QVTc and QVTr using the Micro-Mapping Model of...
 
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
OCCIware, an extensible, standard-based XaaS consumer platform to manage ever...
 
Design Thinking Assignment
Design Thinking AssignmentDesign Thinking Assignment
Design Thinking Assignment
 
OCL 2.5 plans
OCL 2.5 plansOCL 2.5 plans
OCL 2.5 plans
 
Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire Ressource numérique Circuit électrique au primaire
Ressource numérique Circuit électrique au primaire
 
Developpement mobile vs open source
Developpement mobile vs open sourceDeveloppement mobile vs open source
Developpement mobile vs open source
 
Frame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enoughFrame latency evaluation: when simulation and analysis alone are not enough
Frame latency evaluation: when simulation and analysis alone are not enough
 
Model Transformation A Personal Perspective
Model Transformation A Personal PerspectiveModel Transformation A Personal Perspective
Model Transformation A Personal Perspective
 
النشاط العلمي - الكهرباء
النشاط العلمي  -   الكهرباءالنشاط العلمي  -   الكهرباء
النشاط العلمي - الكهرباء
 
The Importance of Opposites
The Importance of OppositesThe Importance of Opposites
The Importance of Opposites
 
Fast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast QueriesFast, Faster and Super-Fast Queries
Fast, Faster and Super-Fast Queries
 
01072013 e governance
01072013 e governance01072013 e governance
01072013 e governance
 
Java vs .Net
Java vs .NetJava vs .Net
Java vs .Net
 
Embedded OCL Integration and Debugging
Embedded OCL Integration and DebuggingEmbedded OCL Integration and Debugging
Embedded OCL Integration and Debugging
 

Ähnlich wie Model Transformation: A survey of the state of the art

Topcased
TopcasedTopcased
TopcasedInria
 
TAUS Roundtable Moscow, Translation Automation Going Cloud- The New Landscape...
TAUS Roundtable Moscow, Translation Automation Going Cloud- The New Landscape...TAUS Roundtable Moscow, Translation Automation Going Cloud- The New Landscape...
TAUS Roundtable Moscow, Translation Automation Going Cloud- The New Landscape...TAUS - The Language Data Network
 
MONDO Project, a scalable modeling and model management on the Cloud - Paris...
MONDO Project, a scalable modeling and model management on the Cloud  - Paris...MONDO Project, a scalable modeling and model management on the Cloud  - Paris...
MONDO Project, a scalable modeling and model management on the Cloud - Paris...Alessandra Bagnato
 
Effective Detection of Model Changes
Effective Detection of Model ChangesEffective Detection of Model Changes
Effective Detection of Model ChangesDavid Méndez-Acuña
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)PG Scholar
 
ERTS2014-39-EfficientModeling -customizedEditor-final.pptx
ERTS2014-39-EfficientModeling -customizedEditor-final.pptxERTS2014-39-EfficientModeling -customizedEditor-final.pptx
ERTS2014-39-EfficientModeling -customizedEditor-final.pptxRaphael Faudou
 
Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfCarlos Paredes
 
MDT Papyrus - Eclipse Con 2010
MDT Papyrus - Eclipse Con 2010MDT Papyrus - Eclipse Con 2010
MDT Papyrus - Eclipse Con 2010rfaudou
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and FutureBenoit Combemale
 
Papyrus for Real Time at the OMG TC
Papyrus for Real Time  at the OMG TCPapyrus for Real Time  at the OMG TC
Papyrus for Real Time at the OMG TCCharles Rivet
 
Hanmer Software Patterns Bosc2009
Hanmer Software Patterns Bosc2009Hanmer Software Patterns Bosc2009
Hanmer Software Patterns Bosc2009bosc
 
Dynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented ModelingDynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented ModelingBenoit Combemale
 
Application of Foundation Model for Autonomous Driving
Application of Foundation Model for Autonomous DrivingApplication of Foundation Model for Autonomous Driving
Application of Foundation Model for Autonomous DrivingYu Huang
 
The REMICS model-driven process for migrating legacy applications to the cloud
The REMICS model-driven process for migrating legacy applications to the cloudThe REMICS model-driven process for migrating legacy applications to the cloud
The REMICS model-driven process for migrating legacy applications to the cloudMarcos Almeida
 
Integration of speech recognition with computer assisted translation
Integration of speech recognition with computer assisted translationIntegration of speech recognition with computer assisted translation
Integration of speech recognition with computer assisted translationChamani Shiranthika
 

Ähnlich wie Model Transformation: A survey of the state of the art (20)

AToMPM - Features
AToMPM - FeaturesAToMPM - Features
AToMPM - Features
 
ERP_Up_Down.ppt
ERP_Up_Down.pptERP_Up_Down.ppt
ERP_Up_Down.ppt
 
Topcased
TopcasedTopcased
Topcased
 
TAUS Roundtable Moscow, Translation Automation Going Cloud- The New Landscape...
TAUS Roundtable Moscow, Translation Automation Going Cloud- The New Landscape...TAUS Roundtable Moscow, Translation Automation Going Cloud- The New Landscape...
TAUS Roundtable Moscow, Translation Automation Going Cloud- The New Landscape...
 
MONDO Project, a scalable modeling and model management on the Cloud - Paris...
MONDO Project, a scalable modeling and model management on the Cloud  - Paris...MONDO Project, a scalable modeling and model management on the Cloud  - Paris...
MONDO Project, a scalable modeling and model management on the Cloud - Paris...
 
Effective Detection of Model Changes
Effective Detection of Model ChangesEffective Detection of Model Changes
Effective Detection of Model Changes
 
Domain specific modelling (DSM)
Domain specific modelling (DSM)Domain specific modelling (DSM)
Domain specific modelling (DSM)
 
ERTS2014-39-EfficientModeling -customizedEditor-final.pptx
ERTS2014-39-EfficientModeling -customizedEditor-final.pptxERTS2014-39-EfficientModeling -customizedEditor-final.pptx
ERTS2014-39-EfficientModeling -customizedEditor-final.pptx
 
Modelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdfModelica-OpenModelica-slides para aprender.pdf
Modelica-OpenModelica-slides para aprender.pdf
 
MDT Papyrus - Eclipse Con 2010
MDT Papyrus - Eclipse Con 2010MDT Papyrus - Eclipse Con 2010
MDT Papyrus - Eclipse Con 2010
 
Model Execution: Past, Present and Future
Model Execution: Past, Present and FutureModel Execution: Past, Present and Future
Model Execution: Past, Present and Future
 
Papyrus for Real Time at the OMG TC
Papyrus for Real Time  at the OMG TCPapyrus for Real Time  at the OMG TC
Papyrus for Real Time at the OMG TC
 
Hanmer Software Patterns Bosc2009
Hanmer Software Patterns Bosc2009Hanmer Software Patterns Bosc2009
Hanmer Software Patterns Bosc2009
 
Dynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented ModelingDynamic V&V in Language-Oriented Modeling
Dynamic V&V in Language-Oriented Modeling
 
Introduction
IntroductionIntroduction
Introduction
 
Application of Foundation Model for Autonomous Driving
Application of Foundation Model for Autonomous DrivingApplication of Foundation Model for Autonomous Driving
Application of Foundation Model for Autonomous Driving
 
The REMICS model-driven process for migrating legacy applications to the cloud
The REMICS model-driven process for migrating legacy applications to the cloudThe REMICS model-driven process for migrating legacy applications to the cloud
The REMICS model-driven process for migrating legacy applications to the cloud
 
Softeam profile 2014
Softeam profile 2014Softeam profile 2014
Softeam profile 2014
 
Integration of speech recognition with computer assisted translation
Integration of speech recognition with computer assisted translationIntegration of speech recognition with computer assisted translation
Integration of speech recognition with computer assisted translation
 
Aca2 10 11
Aca2 10 11Aca2 10 11
Aca2 10 11
 

Mehr von Tom Mens

How to be(come) a successful PhD student
How to be(come) a successful PhD studentHow to be(come) a successful PhD student
How to be(come) a successful PhD studentTom Mens
 
Recognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentRecognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentTom Mens
 
A Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubA Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubTom Mens
 
The (r)evolution of CI/CD on GitHub
 The (r)evolution of CI/CD on GitHub The (r)evolution of CI/CD on GitHub
The (r)evolution of CI/CD on GitHubTom Mens
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureTom Mens
 
Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Tom Mens
 
On the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubOn the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubTom Mens
 
On backporting practices in package dependency networks
On backporting practices in package dependency networksOn backporting practices in package dependency networks
On backporting practices in package dependency networksTom Mens
 
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsTom Mens
 
Lost in Zero Space
Lost in Zero SpaceLost in Zero Space
Lost in Zero SpaceTom Mens
 
Evaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesEvaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesTom Mens
 
Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Tom Mens
 
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Tom Mens
 
On the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsOn the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsTom Mens
 
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...Tom Mens
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Tom Mens
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Tom Mens
 
SecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsSecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsTom Mens
 
SECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarSECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarTom Mens
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersTom Mens
 

Mehr von Tom Mens (20)

How to be(come) a successful PhD student
How to be(come) a successful PhD studentHow to be(come) a successful PhD student
How to be(come) a successful PhD student
 
Recognising bot activity in collaborative software development
Recognising bot activity in collaborative software developmentRecognising bot activity in collaborative software development
Recognising bot activity in collaborative software development
 
A Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHubA Dataset of Bot and Human Activities in GitHub
A Dataset of Bot and Human Activities in GitHub
 
The (r)evolution of CI/CD on GitHub
 The (r)evolution of CI/CD on GitHub The (r)evolution of CI/CD on GitHub
The (r)evolution of CI/CD on GitHub
 
Nurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the FutureNurturing the Software Ecosystems of the Future
Nurturing the Software Ecosystems of the Future
 
Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?Comment programmer un robot en 30 minutes?
Comment programmer un robot en 30 minutes?
 
On the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHubOn the rise and fall of CI services in GitHub
On the rise and fall of CI services in GitHub
 
On backporting practices in package dependency networks
On backporting practices in package dependency networksOn backporting practices in package dependency networks
On backporting practices in package dependency networks
 
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and RubygemsComparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
Comparing semantic versioning practices in Cargo, npm, Packagist and Rubygems
 
Lost in Zero Space
Lost in Zero SpaceLost in Zero Space
Lost in Zero Space
 
Evaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messagesEvaluating a bot detection model on git commit messages
Evaluating a bot detection model on git commit messages
 
Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!Is my software ecosystem healthy? It depends!
Is my software ecosystem healthy? It depends!
 
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...Bot or not? Detecting bots in GitHub pull request activity based on comment s...
Bot or not? Detecting bots in GitHub pull request activity based on comment s...
 
On the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystemsOn the fragility of open source software packaging ecosystems
On the fragility of open source software packaging ecosystems
 
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...How magic is zero? An Empirical Analysis of Initial Development Releases in S...
How magic is zero? An Empirical Analysis of Initial Development Releases in S...
 
Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)Comparing dependency issues across software package distributions (FOSDEM 2020)
Comparing dependency issues across software package distributions (FOSDEM 2020)
 
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
Measuring Technical Lag in Software Deployments (CHAOSScon 2020)
 
SecoHealth 2019 Research Achievements
SecoHealth 2019 Research AchievementsSecoHealth 2019 Research Achievements
SecoHealth 2019 Research Achievements
 
SECO-Assist 2019 research seminar
SECO-Assist 2019 research seminarSECO-Assist 2019 research seminar
SECO-Assist 2019 research seminar
 
Empirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package ManagersEmpirically Analysing the Socio-Technical Health of Software Package Managers
Empirically Analysing the Socio-Technical Health of Software Package Managers
 

Kürzlich hochgeladen

4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptxmary850239
 
The Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsThe Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsRommel Regala
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management SystemChristalin Nelson
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operationalssuser3e220a
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17Celine George
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Celine George
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfErwinPantujan2
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataBabyAnnMotar
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxAnupkumar Sharma
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmStan Meyer
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONHumphrey A Beña
 
Presentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptxPresentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptxRosabel UA
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxruthvilladarez
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...JojoEDelaCruz
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSMae Pangan
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptxmary850239
 
Millenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxMillenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxJanEmmanBrigoli
 

Kürzlich hochgeladen (20)

4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx4.18.24 Movement Legacies, Reflection, and Review.pptx
4.18.24 Movement Legacies, Reflection, and Review.pptx
 
The Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World PoliticsThe Contemporary World: The Globalization of World Politics
The Contemporary World: The Globalization of World Politics
 
Transaction Management in Database Management System
Transaction Management in Database Management SystemTransaction Management in Database Management System
Transaction Management in Database Management System
 
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptxYOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
YOUVE GOT EMAIL_FINALS_EL_DORADO_2024.pptx
 
Expanded definition: technical and operational
Expanded definition: technical and operationalExpanded definition: technical and operational
Expanded definition: technical and operational
 
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptxFINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
FINALS_OF_LEFT_ON_C'N_EL_DORADO_2024.pptx
 
How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17How to Add Barcode on PDF Report in Odoo 17
How to Add Barcode on PDF Report in Odoo 17
 
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
Incoming and Outgoing Shipments in 3 STEPS Using Odoo 17
 
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdfVirtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
Virtual-Orientation-on-the-Administration-of-NATG12-NATG6-and-ELLNA.pdf
 
Measures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped dataMeasures of Position DECILES for ungrouped data
Measures of Position DECILES for ungrouped data
 
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptxMULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
MULTIDISCIPLINRY NATURE OF THE ENVIRONMENTAL STUDIES.pptx
 
Oppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and FilmOppenheimer Film Discussion for Philosophy and Film
Oppenheimer Film Discussion for Philosophy and Film
 
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATIONTHEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
THEORIES OF ORGANIZATION-PUBLIC ADMINISTRATION
 
Presentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptxPresentation Activity 2. Unit 3 transv.pptx
Presentation Activity 2. Unit 3 transv.pptx
 
TEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docxTEACHER REFLECTION FORM (NEW SET........).docx
TEACHER REFLECTION FORM (NEW SET........).docx
 
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
ENG 5 Q4 WEEk 1 DAY 1 Restate sentences heard in one’s own words. Use appropr...
 
Textual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHSTextual Evidence in Reading and Writing of SHS
Textual Evidence in Reading and Writing of SHS
 
4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx4.16.24 21st Century Movements for Black Lives.pptx
4.16.24 21st Century Movements for Black Lives.pptx
 
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptxINCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
INCLUSIVE EDUCATION PRACTICES FOR TEACHERS AND TRAINERS.pptx
 
Millenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptxMillenials and Fillennials (Ethical Challenge and Responses).pptx
Millenials and Fillennials (Ethical Challenge and Responses).pptx
 

Model Transformation: A survey of the state of the art