<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Reality Check for Model Transformation Reuse: The ATL Transformation Zoo Case Study</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>A. Kusel</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>J. Schonbock</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>M. Wimmer</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>W. Retschitzegger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>W. Schwinger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>G. Kappel</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Johannes Kepler University Linz</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Upper Austrian University of Applied Sciences Hagenberg</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Vienna University of Technology</institution>
          ,
          <country country="AT">Austria</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Model transformations play a major role in model-driven engineering. For increasing development productivity as well as quality of model transformations, di erent kinds of reuse mechanisms have been proposed. However, it remains unclear to which extent reuse mechanisms have made their way into practical application. Thus, this paper presents an empirical study on the ATL Transformation Zoo to analyze the application frequency of reuse mechanisms. For this, we developed a semi-automated process for extracting transformation projects from the ATL Transformation Zoo, which are classi ed and analyzed with respect to the application frequency of reuse mechanisms. Finally, limitations of current reuse mechanisms, which potentially hinder their practical applicability, are critically re ected, pointing out further research directions.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Model-Driven Engineering (MDE) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] proposes an active use of models to
conduct the di erent phases of software development. Provided the fact that
everything is a model, every systematic manipulation thereof may be considered
a model transformation [
        <xref ref-type="bibr" rid="ref16 ref18">16,18</xref>
        ]. Consequently, model transformations are vital
for MDE. Given their prominent role and their use in increasingly complex
scenarios, appropriate reuse mechanisms are indispensable to increase development
productivity as well as quality, e.g., in terms of maintainability of model
transformations. To address this need, a plethora of reuse mechanisms has been proposed
by the research community, cf., e.g., [
        <xref ref-type="bibr" rid="ref1 ref10 ref11 ref13 ref17 ref2 ref21 ref22 ref23 ref25 ref26 ref3 ref4 ref7 ref8">1,2,3,4,7,8,10,11,13,17,21,22,23,25,26</xref>
        ], to
mention just a few. In [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], we have surveyed and categorized several di erent
reuse mechanisms for model transformations by using a conceptual
comparison framework. However, it remains still unclear, if at all and how often reuse
mechanisms are employed in practical settings.
      </p>
      <p>
        To shed some light on this area and to estimate the application frequency of
current reuse mechanisms for model transformations, we performed a case study
based on a real-world transformation repository and its population. In
particular, following the guidelines for conducting empirical explanatory case studies
by Runeson and Host [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], we analyzed the population of the Atlas
Transformation Language (ATL) Transformation Zoo4 (in the following denoted as \Zoo"
for short) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The Zoo has been chosen, because to the best of our knowledge,
this repository is|at the time of writing|o ering the most comprehensive
collection of publicly available model transformations. Furthermore, the Zoo has
been source for several previous studies concerning, e.g., the evaluation of model
metrics [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ], the validation of the results of metamodel matching tools [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], or the
estimation of how end-users employ ATL in practice [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], to mention just a few.
Thus, we consider the population of the Zoo as a representative set of model
transformations. For analyzing the Zoo, we developed a semi-automated process
for extracting transformation projects from the Zoo. The extracted
transformation projects have then been classi ed and analyzed with respect to indicators
for the application of reuse mechanisms. The results show that up to now reuse
mechanisms are rarely used in practice. Thus, we conclude by discussing
potential barriers that might harm the practical applicability, thereby pointing to
further research topics.
      </p>
      <p>Outline. Section 2 discusses the basic setup of the case study and gives
an impression on the transformations that are available in the Zoo. The case
study as well as the results thereof are presented in Section 3, whereby Section 4
critically re ects the results and discusses threats to validity, before Section 5
concludes the paper.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Case Study Setup</title>
      <p>To estimate the application frequency of current reuse mechanisms for model
transformations, we conducted an empirical explanatory case study in order to
analyze the population of the Zoo. The study was performed to quantitatively
assess the application frequency of reuse mechanisms in model transformations of
the Zoo. More speci cally, we aimed at answering the following research question:
With which frequency are reuse mechanisms currently applied in model
transformation projects?
2.1</p>
      <p>Case Study Design
For performing the analysis of the Zoo's population, we extracted all
transformation projects from the Zoo's website5. To reason about the Zoo's population,
not only the transformation de nitions are required, but also accompanying
artifacts such as the input and output metamodels, launch con gurations, and
build scripts. For instance, the metamodels are of interest to relate their size
4 http://www.eclipse.org/m2m/atl/atlTransformations
5 The complete data of this snapshot is available on our project website http://www.</p>
      <p>modeltransformation.net
and structure to the size and structure of model transformations. The launch
con guration les and build scripts for running the transformations are an
important source to reason about the execution processes of the transformations,
e.g., how a set of transformations interact.</p>
      <p>The Zoo provides a collection of 103 di erent transformation projects, mostly
provided as .zip archives, containing 1689 les in total. Before starting the
automated analysis of the transformation projects in a subsequent step, the
relevant les (transformations, metamodels, launch con gurations, and build scripts)
have been extracted from the .zip archives on basis of their le extensions.
Consequently, we selected 873 out of the 1689 les: 231 ATL transformations (.atl
les), 525 metamodels (.ecore and .km3 les), 57 build scripts (.build or .xml
les), and 95 launch scripts (.launch les). The remaining 781 les, being, e.g.,
readme les for documentation or test input/output models, have not been
considered in this case study (cf. Fig. 1(a)). Furthermore, since transformations
have been reused in di erent projects, duplicates may exist. In particular, we
regarded two transformations as duplicate, if they have the same name and
identical metric values for their intrinsic properties, i.e., the same number of rules
and helpers. In this respect, 40 duplicates have been removed resulting in 191
transformations for further investigation. The remaining transformations may
be further divided into three di erent kinds of ATL transformations. First, a
transformation may either be (i) a model-to-model transformation (168), (ii) a
library of reusable helpers (17), which are importable to other transformations,
or (iii) queries (6), which derive information from models by using Object
Constraint Language6 (OCL) expressions, e.g., to select a set of model elements from
an input model, as depicted in Fig. 1(b).
2.2</p>
      <p>Characteristics of the Zoo
To give an impression on the complexity of the transformation tasks supported,
we list in the following some meta-information about the transformations. First,
the transformation size ranges from a minimum of 1 rule to a maximum of 84
rules. Concerning the numbers of input and output metamodels, the majority are
1-to-1 transformations, but there is also a small amount of 1-to-n (2
transformations), n-to-1 (12 transformations), and n-to-m transformations (2
transforma6 http://www.omg.org/spec/OCL
781</p>
      <p>231
95
57
525</p>
      <p>Transformations
Metamodels
Build Scripts
Launch Scripts
Unclassified Files
6
17
168</p>
      <p>Transformation
Queries
Libraries
(a) Distribution of le types</p>
      <p>(b) Distribution of transformation types</p>
      <p>Fig. 1. Overview on the ATL Transformation Zoo.
tions) in the Zoo available. The metamodels used in the transformations range
from small metamodels (below 10 meta-classes) to large metamodels (about 280
meta-classes). The languages represented by the metamodels range from
modeling languages such as UML, QVT, and OCL over markup languages such as
HTML and SVG to general-purpose programming languages such as Java or
domain-speci c languages such as BibTeX. Finally, since support for di erent
reuse mechanisms has been successively added over the last years, e.g., functions
have been introduced with the rst version of ATL (2005), whereas inheritance
(2006) and superimposition (2007) have been introduced in subsequent versions,
the submission date to the Zoo is of interest.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Analysis of the ATL Transformation Zoo</title>
      <p>After introducing the setup of Table 1. Reuse mechanisms' applications
the case study, it is described and frequency.
taoniwsmhsichavexaitleanbtlethfeorreuAsTeLmeachre- MeRcehuasneism ANpupTmliocbtaeatlrio onfs  AFprRepeqlliauctaeitvnieco yn 
practically applied by
transfortrcadmmoehuiseaumattctsorihiaeanmotacgnimnatcusetieisrisiccmdinhzhee,attdbenh(teceiiehtsttieemiw)Zocent,oadeicooiwnsc,naceon.wurad(dshiFsife)n,uoargrelshlhbyosroyeweeramuatwcusliihyeet--  itc  iittttcceeooanuADm RSTuOuraplreFnce uhrIsHninTfemohcOPsrtetpLTmirrsooasintastaiisttoniiooncnne  110607314 71040491%%%%%%
might be (semi-)automatically toaum itceon External DSL 0 0%
sduelttesc,teadn,d (iinia)llyan(ailvy)zeprtohveiderea- i‐SeAm teD TranGsfeonrmeraict ions 0 0%
critical discussion thereof. The results are summarized in Table 1. For
calculating the relative application frequency, we refer to the ratio between applications
detected and total amount of model transformations (168). However, for the
application frequency of transformation chains, we employ the ratio between
applications and total amount of transformation projects (103), because a chain is
not tailored to one transformation, but to a complete transformation project.
3.1</p>
      <p>Automatically Detected Reuse Mechanisms
Reuse mechanisms, whose applications might be detected automatically include
functions, inheritance, superimposition, higher-order transformations (HOTs),
and transformation orchestration, as described in the following.</p>
      <p>Functions. As well-known from procedural programming languages,
functions in transformation languages provide means to extract and to reuse
recurring transformation logic. In ATL, functions are called helpers and are de ned
in OCL. The application frequency of functions in ATL transformations may be
detected automatically by querying, if helpers are contained in a
transformation as indicated by the following OCL query.</p>
      <p>T r a n s f o r m a t i o n . a l l I n s t a n c e s ( ) &gt; s e l e c t ( t j t . h e l p e r s . notEmpty ( ) )
When analyzing the result, it may be seen that helpers are used in nearly 80% of
the inspected transformations (cf. Table 1) and the higher the amount of rules
within a transformation, the higher the amount of helpers is (cf. Fig. 2(a)). This
might be due to the fact that helpers are included, since the very rst version
of ATL and also because functions are a well-known reuse mechanism from
traditional software engineering. Furthermore, functions might be that popular,
because they are expressed in OCL, and consequently, there is no further learning
curve for the transformation designer, since she is typically familiar with OCL.</p>
      <p>Rule Inheritance. Inheritance between meta-classes in metamodels
necessitates the usage of inheritance between transformation rules to avoid code
duplication, e.g., duplicate assignments. The application frequency of rule inheritance
may be automatically detected by searching for rules that extend other rules,
which is indicated by the reference Rule.superRule in the ATL metamodel and
exploited in the following OCL query.</p>
      <p>T r a n s f o r m a t i o n . a l l I n s t a n c e s ( ) &gt; s e l e c t ( t j t . r u l e s &gt; e x i s t s ( r j r .</p>
      <p>
        ,! s u p e r R u l e &lt;&gt; O c l U n d e f i n e d ) )
Although, a tremendous amount of metamodels of the Zoo employs inheritance
(around 75%), rule inheritance is rarely used in the Zoo (6 applications, only),7
whereby there is a strong correlation (correlation coe cient about 0.90)
between the amount of meta-classes and the amount of inheritance relationships
(cf. Fig. 2(b)). Consequently, rule inheritance would be especially bene cial for
large metamodels. However, most surprisingly, inheritance between rules has
been used rather by middle-sized transformations. A reason for the poor
adoption of inheritance in model transformations might be that the support for
inheritance in ATL is still limited, e.g., the declarative part of ATL is considered in
rule inheritance [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], only. Furthermore, there is only limited support for static
semantic checks, aggravating the correct application of rule inheritance.
      </p>
      <p>Module Import. Module import allows to build the union of
transformation rules from di erent model transformations. Thereby, rules or helpers may be
7 It has to be noted that inheritance has been introduced in the ATL 2006 compiler.</p>
      <p>This induces that rule inheritance may have been theoretically employed in about
60% of all transformations.
120
100
80
rs
lep 60
eH
40
20</p>
      <p>
        Fig. 2. Overview on relationships between di erent element types.
rede ned, i.e., a rule or a function may be replaced by a new one, and additional
rules and functions may be added. This concept is known in ATL as
superimposition [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ]. To automatically recognize superimposition, the launch scripts have
been analyzed, since superimposition is introduced at load-time in ATL (cf. OCL
query below). Thereby, superimposition is assumed to be used, if a launch script
contains an entry with a key Superimpose and a non-empty value.
L a u n c h S c r i p t . allInstances ( ) &gt; s e l e c t ( ls j ls . entries &gt; exists ( entry j
,!entry . key = ' S u p e r i m p o s e ' and entry . value &lt;&gt; O c l U n d e f i n e d ) )
Although superimposition has been introduced in 2007 already, currently no
transformation in the Zoo applies this reuse mechanism. A reason for this might
be that this mechanism is rather coarse-grained, i.e., rules that should be
redened must be rede ned from scratch without the possibility of reusing parts of
the re ned rule. Consequently, it would be bene cial, if superimposition could
be combined with inheritance. Unfortunately, superimposition is not compatible
with inheritance, i.e., the rule inheritance hierarchy is broken, if a superrule is
rede ned with superimposition. Furthermore, ATL imports modules at load-time,
whereas numerous other transformation languages import modules at
compiletime [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], entailing the advantage that static checks may be applied.
      </p>
      <p>
        Higher Order Transformation (HOT). HOTs are model transformations
that either take a model transformation as input, produce a model
transformation as output, or do both and may thus, be used for transformation
synthesis, transformation analysis, transformation (de-)composition, or transformation
modi cation [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ]. For automatically detecting the usage of a HOT, one has to
analyze, whether the input metamodel and/or the output metamodel of a
transformation is of type ATL as done by the following OCL query.
      </p>
      <p>
        T r a n s f o r m a t i o n . allInstances ( ) &gt; s e l e c t ( t j t . models &gt; exists ( m j m . name =
,! ' ATL ' ) )
When analyzing the transformations of the Zoo, one may nd that the
application frequency for HOTs is around 4%. HOTs are available in the Zoo, especially
for (i) transformation synthesis, e.g., to produce from metamodels a copying
transformation for their models and for (ii) transformation modi cation, e.g.,
to enrich ATL transformations by adding debugging functionality or tracing
capabilities. The low application frequency of 4% may result from the challenging
development of HOTs [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] and from the specialized application cases.
      </p>
      <p>Transformation Orchestration. Transformation orchestration is used to
reuse transformations in the large, i.e., whole transformations at once. For
orchestrating model transformations, build les on basis of ANT8 may be used.
Therefore, the automatic detection of transformation orchestrations relies on the
recognition, if more than one task for executing a transformation is de ned in
the build script as formalized by the following OCL query.</p>
      <p>B u i l d S c r i p t . allInstances ( ) &gt; s e l e c t ( bs j bs . tasks &gt; s e l e c t ( t j t . name = '
,!atl . launch ' or t . name = ' am3 . atl ' ) &gt; s i z e ( ) &gt; 1)
8 http://wiki.eclipse.org/ATL/User_Guide_-_The_ATL_Tools#ATL_ant_tasks
When investigating the Zoo, transformation orchestration is used in around 11%
of the projects, especially in transformation projects that establish bridges
between technical spaces. Some transformation chains are quite complex such as
employing not only sequences, but also loops of transformation executions, i.e.,
a transformation is employed for an arbitrary sized collection of models. In the
largest model transformation chain, nine transformations are involved. Finally,
also HOTs are used in the chains to produce transformations on-the- y that are
applied directly in the later phases of the transformation process.
3.2</p>
      <p>
        Semi-Automatically Detected Reuse Mechanisms
Besides those reuse mechanisms that might be detected fully automatically, some
reuse mechanisms allow for a semi-automatic detection, only, including
transformation product lines (TPLs), external domain speci c languages (DSLs), and
generic transformations (cf. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] for details). In this context, TPLs allow to con
gure a transformation externally, i.e., to use, e.g., a feature model to con gure a
transformation and by this to reuse the already prede ned transformation rules.
An example for this might be a Class2Relational transformation, which allows
to follow di erent object-relational mapping strategies, which might be con
gurable by a feature model. External DSLs on top of ATL allow to simplify the
speci cation of recurring transformation logic by dedicated language constructs,
which nally get translated into ATL code. Finally, generic transformations
allow to parameterize transformation logic with types, and thus, allow to decouple
transformation logic from concrete metamodel types.
      </p>
      <p>Current best practice in ATL to implement a TPL is to use an additional
input model to con gure a transformation. Thus, we selected each transformation
having more than one input model as a potential candidate that has to be
inspected manually.</p>
      <p>T r a n s f o r m a t i o n . a l l I n s t a n c e s ( ) &gt; s e l e c t ( t j t . i n M o d e l s &gt; s i z e ( ) &gt; 1)
External DSLs and generic transformations typically employ a HOT that either
generates a new ATL transformation (external DSL) or that rewrites an existing
one (generic transformations). Consequently, hints for the application of these
reuse mechanisms may be detected by analyzing, if the ATL metamodel is used as
the target metamodel of a transformation (cf. OCL query below). The resulting
hints need to be veri ed by manual inspection of the transformations.
T r a n s f o r m a t i o n . a l l I n s t a n c e s ( ) &gt; s e l e c t ( t j t . o u t M o d e l s &gt; e x i s t s ( m j m .</p>
      <p>
        ,! n a m e = ' ATL ' ) )
Although candidate transformations for these reuse mechanisms have been
detected, the manual inspection thereof showed that none of these reuse
mechanisms have been applied in the transformations of the Zoo, which might be due
to the fact that those reuse mechanisms just emerged recently and are thus, not
re ected in the Zoo. Finally, please note that we did not investigate internal
DSLs de ned for ATL (e.g., HNL [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], ATL4pros [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]), and re ection as provided
by Mistral [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], because these approaches require for a modi ed ATL execution
environment and the transformations contained in the Zoo are executable with
the o cial distribution of ATL, only.
      </p>
    </sec>
    <sec id="sec-4">
      <title>Discussion</title>
      <p>We now present (i) a critical discussion of the results and (ii) we elaborate on
several factors that may jeopardize the validity of our results.</p>
      <p>Well-known Reuse Mechanisms Made their Way into Practice. With
respect to the posed research question, one may see that the frequency of the
application of reuse mechanisms varies strongly between the di erent reuse
mechanisms. Helpers are frequently used in transformations. This seems quite natural,
because (i) factorization of recurring logic to functions is well-known from
procedural programming languages, (ii) OCL, which is mainly used to de ne helpers,
is a well-known language for transformation developers, and (iii) helpers have
been provided from the early stages of ATL { thus, it is also well-documented in
the ATL user guide and well-demonstrated by several examples. Furthermore,
at least some transformations apply rule inheritance, which is comparable to
inheritance in object-oriented programming languages. Finally, orchestration is
also a common and well-understood reuse mechanism in software engineering
and has achieved practical application.</p>
      <p>Reuse Occurs in a Narrow Scope. By further investigating the applied
reuse mechanisms, it may be seen that reuse occurs most often within a single
transformation, only, i.e., reuse across transformation boundaries is performed
rarely. Thus, it may be concluded that reuse mechanisms that have a direct and
instant bene t for the transformation developer, when creating a single
transformation are applied more frequently. Other reuse mechanisms such as TPLs,
generic transformations, and external DSLs, which unfold their full potential over
the time and require more complex abstraction and specialization mechanisms,
still have to wait for their frequent application.</p>
      <p>
        Challenging Abstraction/Specialization may Hamper Application.
Any reusable artifact needs abstraction as well as specialization to be adapted
to the current context. However, the abstraction of reusable artifacts is often
challenging. This applies especially to HOTs as also stated by Tisi et al. [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ],
where the user must be familiar with the abstract syntax of the
transformation language. In case of generic transformations, specialization requires that
mappings between the metamodels of the transformation to reuse and the new
transformation have to be de ned by the transformation designer in order to
overcome heterogeneities between the involved metamodels.
      </p>
      <p>Threats to Validity. Internal Validity: Are There Factors, Which Might A ect
the Results in the Context of ATL? Applications of superimposition may have
not been found, because of missing launch scripts. Sometimes screenshots are
provided, only that may not be processed automatically to detect applications
of reuse mechanisms. The same holds for missing build scripts in case of
transformation chains or chains that are executed manually or by Java programs.</p>
      <p>The results may be biased, because only ATL transformations residing in
the Zoo have been analyzed. Latest trends in transformation reuse may have not
been re ected, since the latest transformations stem from October 2010.</p>
      <p>External Validity: To What Extent is it Possible to Generalize the Findings?
So far, we cannot claim any results outside the context of the Zoo. Nevertheless,
the analysis methods may be applied to arbitrary transformation repositories to
compute the frequency of the employed reuse mechanisms. Thus, replaying the
presented case study for other transformation languages and repositories should
enable the possibility of reasoning about the reuse mechanism applications for
those languages/repositories as well.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, we reported on a case study for analyzing the Zoo's population
with respect to the application frequency of reuse mechanisms. For this, we
developed a framework for analyzing the population in a semi-automated way.
This framework is publicly available and is customizable to investigate other
language usage aspects in the future as well.</p>
      <p>
        We see the following topics as possible next steps of this work. First, by
having transformations in the Zoo identi ed that are not using rule inheritance,
although the source and target metamodels are heavily using inheritance between
meta-classes, would allow to experiment with automated refactorings [
        <xref ref-type="bibr" rid="ref28">28</xref>
        ] for
improving the transformations' designs. Second, we plan to explore additional
transformations that are publicly available but outside of the Zoo. Finally, we
also want to expand our work to other transformation languages that o er reuse
mechanisms such as QVT.
      </p>
      <p>Acknowledgements. This work has been funded by bmvit under grants ffg
bridge 832160 and ffg fit-it 825070 and 829598, ffg Basisprogramm 838181,
and by oad under grant AR18/2013 and UA07/2013. We would like to thank
Marcel F. van Amstel for providing us the ATL2Metrics transformations which
has been the basis for computing several metrics for the Zoo's population.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>J.</given-names>
            <surname>Cuadrado</surname>
          </string-name>
          , E. Guerra, and J. de Lara.
          <article-title>Generic Model Transformations: Write Once, Reuse Everywhere</article-title>
          .
          <source>In ICMT'11</source>
          , pages
          <fpage>62</fpage>
          {
          <fpage>77</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>J.</given-names>
            <surname>Cuadrado</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Garc</surname>
          </string-name>
          <article-title>a Molina, and</article-title>
          <string-name>
            <given-names>J.</given-names>
            <surname>Bezivin</surname>
          </string-name>
          .
          <article-title>Experiments with a High-Level Navigation Language</article-title>
          .
          <source>In ICMT'09</source>
          , pages
          <fpage>229</fpage>
          {
          <fpage>238</fpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Cuadrado</surname>
          </string-name>
          and
          <string-name>
            <given-names>J. G.</given-names>
            <surname>Molina</surname>
          </string-name>
          .
          <article-title>A Model-Based Approach to Families of Embedded Domain-Speci c Languages</article-title>
          .
          <source>IEEE TSE</source>
          ,
          <volume>35</volume>
          (
          <issue>6</issue>
          ):
          <volume>825</volume>
          {
          <fpage>840</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>M.</given-names>
            <surname>Del Fabro</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Valduriez</surname>
          </string-name>
          .
          <article-title>Towards the E cient Development of Model Transformations using Model Weaving and Matching Transformations</article-title>
          .
          <source>SoSyM</source>
          ,
          <volume>8</volume>
          (
          <issue>3</issue>
          ):
          <volume>305</volume>
          {
          <fpage>324</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>K.</given-names>
            <surname>Garces</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Kling</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          .
          <article-title>Automatizing the Evaluation of Model Matching Systems</article-title>
          .
          <source>In Workshop on Matching and Meaning</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          and
          <string-name>
            <surname>I. Kurtev.</surname>
          </string-name>
          <article-title>Transforming Models with ATL</article-title>
          .
          <source>In Proc. of the Int. Conf. on Satellite Events at the MoDELS, MoDELS'05</source>
          , pages
          <fpage>128</fpage>
          {
          <fpage>138</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>A.</given-names>
            <surname>Kleppe. MCC</surname>
          </string-name>
          :
          <article-title>A Model Transformation Environment</article-title>
          .
          <source>In ECMDA-FA'06</source>
          , pages
          <fpage>173</fpage>
          {
          <fpage>187</fpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>I. Kurtev.</surname>
          </string-name>
          <article-title>Application of Re ection in a Model Transformation Language</article-title>
          .
          <source>SoSyM</source>
          ,
          <volume>9</volume>
          (
          <issue>3</issue>
          ):
          <volume>311</volume>
          {
          <fpage>333</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>A.</given-names>
            <surname>Kusel</surname>
          </string-name>
          , J. Schonbock, M. Wimmer, G. Kappel,
          <string-name>
            <given-names>W.</given-names>
            <surname>Retschitzegger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Schwinger</surname>
          </string-name>
          .
          <article-title>Reuse in model-to-model transformation languages: Are we there yet? SoSyM</article-title>
          , pages
          <volume>1</volume>
          {
          <fpage>31</fpage>
          ,
          <year>2013</year>
          . online rst.
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. E. Legros,
          <string-name>
            <given-names>C.</given-names>
            <surname>Amelunxen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Klar</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Schu</surname>
          </string-name>
          <article-title>rr. Generic and Re ective Graph Transformations for Checking and Enforcement of Modeling Guidelines</article-title>
          .
          <source>Visual Language Computing</source>
          ,
          <volume>20</volume>
          (
          <issue>4</issue>
          ):
          <volume>252</volume>
          {
          <fpage>268</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>J.</given-names>
            <surname>Oldevik</surname>
          </string-name>
          .
          <article-title>Transformation Composition Modelling Framework</article-title>
          .
          <source>In DAIS'05</source>
          , pages
          <fpage>108</fpage>
          {
          <fpage>114</fpage>
          . Springer,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>A.</given-names>
            <surname>Randak</surname>
          </string-name>
          , S. Mart nez, and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          .
          <article-title>Extending ATL for Native UML Pro le Support: An Experience Report</article-title>
          . In MtATL'
          <volume>11</volume>
          , pages
          <fpage>49</fpage>
          {
          <fpage>62</fpage>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>J. E.</given-names>
            <surname>Rivera</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Ruiz-Gonzalez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Lopez-Romero</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bautista</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Vallecillo</surname>
          </string-name>
          .
          <article-title>Orchestrating ATL Model Transformations</article-title>
          . In MtATL'
          <volume>09</volume>
          , pages
          <fpage>34</fpage>
          {
          <fpage>46</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>P.</given-names>
            <surname>Runeson and M. Ho</surname>
          </string-name>
          <article-title>st. Guidelines for Conducting and Reporting Case Study Research in Software Engineering</article-title>
          . Empirical Soft. Eng.,
          <volume>14</volume>
          (
          <issue>2</issue>
          ):
          <volume>131</volume>
          {
          <fpage>164</fpage>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>D. C.</surname>
          </string-name>
          <article-title>Schmidt</article-title>
          .
          <article-title>Model-Driven Engineering</article-title>
          . IEEE Computer,
          <volume>39</volume>
          (
          <issue>2</issue>
          ):
          <volume>25</volume>
          {
          <fpage>31</fpage>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>S.</given-names>
            <surname>Sendall</surname>
          </string-name>
          and
          <string-name>
            <given-names>W.</given-names>
            <surname>Kozaczynski</surname>
          </string-name>
          . Model Transformation:
          <article-title>The Heart and Soul of Model-Driven Software Development</article-title>
          .
          <source>IEEE Software</source>
          ,
          <volume>20</volume>
          (
          <issue>5</issue>
          ):
          <volume>42</volume>
          {
          <fpage>45</fpage>
          ,
          <year>2003</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>M.</given-names>
            <surname>Sijtema</surname>
          </string-name>
          .
          <article-title>Introducing Variability Rules in ATL for Managing Variability in MDE-based Product Lines</article-title>
          . In MtATL'
          <volume>10</volume>
          , pages
          <fpage>39</fpage>
          {
          <fpage>49</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <given-names>E.</given-names>
            <surname>Syriani</surname>
          </string-name>
          .
          <article-title>A Multi-Paradigm Foundation for Model Transformation Language Engineering</article-title>
          .
          <source>Ph.D. Thesis</source>
          , McGill University,
          <year>February 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>R.</given-names>
            <surname>Tairas</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          .
          <article-title>Corpus-based analysis of domain-speci c languages</article-title>
          .
          <source>SoSyM</source>
          , pages
          <volume>1</volume>
          {
          <fpage>16</fpage>
          ,
          <year>2013</year>
          . online rst.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>M. Tisi</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Cabot</surname>
            , and
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Jouault</surname>
          </string-name>
          .
          <article-title>Improving Higher-Order Transformations Support in ATL</article-title>
          .
          <source>In ICMT'10</source>
          , pages
          <fpage>215</fpage>
          {
          <fpage>229</fpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>M. Tisi</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          <string-name>
            <surname>Fraternali</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Ceri</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Bezivin</surname>
          </string-name>
          .
          <article-title>On the Use of HigherOrder Model Transformations</article-title>
          .
          <source>In ECMDA-FA'09</source>
          , pages
          <fpage>18</fpage>
          {
          <fpage>33</fpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>B.</given-names>
            <surname>Vanhoo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Ayed</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S. Van</given-names>
            <surname>Baelen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Joosen</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Berbers. UniTI</surname>
          </string-name>
          : A Uni ed Transformation Infrastructure.
          <source>In MODELS'07</source>
          , pages
          <fpage>31</fpage>
          {
          <fpage>45</fpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <given-names>D.</given-names>
            <surname>Varro</surname>
          </string-name>
          and
          <string-name>
            <given-names>A.</given-names>
            <surname>Pataricza</surname>
          </string-name>
          . Generic and
          <article-title>Meta-Transformations for Model Transformation Engineering</article-title>
          . In UML'
          <volume>04</volume>
          , pages
          <fpage>290</fpage>
          {
          <fpage>304</fpage>
          . Springer,
          <year>2004</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. E. Vepa,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bezivin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Bruneliere</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          .
          <article-title>Measuring Model Repositories</article-title>
          .
          <source>In Workshop on Model Size Metrics (MSM'06)</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <given-names>D.</given-names>
            <surname>Wagelaar</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. Van Der</given-names>
            <surname>Straeten</surname>
          </string-name>
          , and
          <string-name>
            <given-names>D.</given-names>
            <surname>Deridder</surname>
          </string-name>
          .
          <article-title>Module Superimposition: A Composition Technique for Rule-based Model Transformation Languages</article-title>
          .
          <source>SoSyM</source>
          ,
          <volume>9</volume>
          (
          <issue>3</issue>
          ):
          <volume>285</volume>
          {
          <fpage>309</fpage>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>M. Wimmer</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Kappel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Kusel</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Retschitzegger</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          <article-title>Schonbock, and</article-title>
          <string-name>
            <given-names>W.</given-names>
            <surname>Schwinger</surname>
          </string-name>
          .
          <article-title>Surviving the Heterogeneity Jungle with Composite Mapping Operators</article-title>
          .
          <source>In ICMT'10</source>
          , pages
          <fpage>260</fpage>
          {
          <fpage>275</fpage>
          . Springer,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <string-name>
            <surname>M. Wimmer</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Kappel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Kusel</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Retschitzegger</surname>
            , J. Schonbock, W. Schwinger,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <string-name>
            <surname>Lauder</surname>
            ,
            <given-names>A</given-names>
          </string-name>
          . Schurr, and
          <string-name>
            <given-names>D.</given-names>
            <surname>Wagelaar</surname>
          </string-name>
          .
          <article-title>Surveying Rule Inheritance in Model-to-Model Transformation Languages</article-title>
          . JOT,
          <volume>11</volume>
          (
          <issue>2</issue>
          ):3:1{
          <fpage>46</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref28">
        <mixed-citation>
          28.
          <string-name>
            <surname>M. Wimmer</surname>
            ,
            <given-names>S. M.</given-names>
          </string-name>
          <string-name>
            <surname>Perez</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          <string-name>
            <surname>Jouault</surname>
            , and
            <given-names>J.</given-names>
          </string-name>
          <string-name>
            <surname>Cabot</surname>
          </string-name>
          .
          <article-title>A Catalogue of Refactorings for Model-to-Model Transformations</article-title>
          . JOT,
          <volume>11</volume>
          (
          <issue>2</issue>
          ):2:1{
          <fpage>40</fpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>