<!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>Concurrent and Distributed Model Transformations based on Linda</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Loli Burguen˜o</string-name>
          <email>loli@lcc.uma.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>GISUM/Atenea Research Group, Universidad de Malaga Bulevar Louis Pasteur</institution>
          ,
          <addr-line>35 (29071), Malaga</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <fpage>9</fpage>
      <lpage>16</lpage>
      <abstract>
        <p>ion power of models. As models, metamodels and model transformations are the heart of MDE, they play a vital role. Nevertheless, existing transformation languages and accompanying tools cannot deal with large models such those used in the elds of astronomy, genetics, etc. The main problems are related to the storage of very large models, the unreasonable time needed to execute the transformation and the impossibility of transforming distributed or streaming models. We tackle this problem by means of incorporating the concurrent and distributed mechanisms that Linda (a mature coordination language for parallel processes) provides into model transformation approaches.</p>
      </abstract>
      <kwd-group>
        <kwd>MDE</kwd>
        <kwd>model transformation</kwd>
        <kwd>concurrency</kwd>
        <kwd>distribution</kwd>
        <kwd>Linda</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        MDE is a relatively new paradigm which has grown in popularity in the last
decade. So to speak, model transformations (MTs) are, together with models
and metamodels, the key of MDE, allowing to systematically manipulate models.
MTs can be classified according to different characteristics [
        <xref ref-type="bibr" rid="ref19 ref6">6, 19</xref>
        ]: abstraction
level of input and output models (i.e., horizontal vs. vertical transformations),
kind (i.e., model-to-model, text-to-model or model-to-text), directionality (i.e.,
uni-directional vs. bi-directional transformations), manipulation of input and
output models (i.e., in-place vs. out-place transformations), etc. And there are
several different intents for which transformations are applied [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]: abstraction,
refinement, synthesis, model composition, etc.
      </p>
      <p>
        Because of this increasing variety of MTs scenarios, there exists a wide range
of different languages for developing MTs, each of them comprises different
characteristics [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Some examples of MTs from different language categories are
GrGen (graph transformation) [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], Kermeta (imperative) [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ], QVT-R
(declarative) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], ATL (hybrid) [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and UML-RSDS (general purpose MDE tool) [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ].
      </p>
      <p>
        Lately, the MDE paradigm is being embraced by companies, thus, MTs are
extensively used and the problems being addressed are increasingly complex.
The main reason for its use is that there are scenarios where MDE is the most
appropriate option to solve their problems or necessities. For instance, generating
code or migrating the architecture/software/data is very appropriate for using
MTs. However, state-of-the-art tools and languages have several limitations [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]
as:
Scalability They do not allow to work with big models with millions elements.
Performance The MTs for some well-known tools take a long time even for
medium size models (around 250,000 model elements).
      </p>
      <p>Concurrency They do not support concurrent transformations. Although the
machines of nowadays count on several cores, they are not taking advantage
of the full IT infrastructure.</p>
      <p>Distribution They are not able to deal with models distributed among different
machines. Nowadays, and given the trend to move towards Cloud Computing,
distribution is really needed for ensuring dynamic scalability.</p>
      <p>Streaming They need to read the complete model into memory before starting
the transformation and do not allow that the model is a data flow.</p>
      <p>The research question we address is “Can the performance of MTs be
improved so that MTs are used for industrial practices? ” which leads to the
following: (1) Can MTs be executed in parallel? and (2) Can models be distributed
and/or stored in the cloud?
2</p>
    </sec>
    <sec id="sec-2">
      <title>Related Work</title>
      <p>
        The scalability problems of loading large models represented by XMI documents
into memory have been already recognized several years ago. One of the first
solutions for EMF models is the Connected Data Objects (CDO)1 model
repository which allows to store models in all kinds of database back-ends such as
traditional relational databases or emerging NoSQL databases. CDO supports
the ability to store and access large-sized models due to the transparent
loading single objects on demand and caching them. If objects are no longer
referenced, they are automatically garbage collected. There are also several emerging
projects that are considering to store very large EMF models, like MongoEMF2
and Morsa [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. Both approaches are built on top of MongoDB, which is used as
storage technology. In [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], Clasen et al. elaborate on strategies for storing models
in a distributed manner by horizontal or vertical partitioning into the Cloud.
      </p>
      <p>
        So far, we are reusing the storage of Gigaspaces Technologies [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] by
transforming models and their associated metamodels to a tuple representation to
inherit the good scalability from the underlying technology.
      </p>
      <p>
        Several lines of work consider the transformation of large models. We plan
that our work is focused on out-place model transformations, i.e., loading input
model and producing the output model from scratch by applying all matching
1 http://projects.eclipse.org/projects/modeling.emf.cdo
2 http://code.google.com/a/eclipselabs.org/p/mongo-emf
transformation rules. However, to deal with large models, orthogonal techniques
may be applied. Especially, two scenarios have been discussed in the past that
benefit from alternative execution strategies. First, if an output model already
exists from a previous transformation run for a given input model, only the
changes in the input model are propagated to the output model. Second, if only
a part of the output model is needed by a consumer, only this part is produced
while other elements are produced just-in-time. For the former scenario,
incremental transformations [
        <xref ref-type="bibr" rid="ref15 ref21">15, 21</xref>
        ] have been introduced, while for the latter lazy
transformations [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] have been proposed. In this work, we propose a
fundamental approach for parallelizing model transformation executions that may be also
combinable with incremental and lazy transformations. Furthermore, it can be
generalized to other types of MTs (e.g., in-place MTs).
      </p>
      <p>
        Another interesting line of research for executing transformations in parallel
is the work on critical pair analysis [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] in the field of graph transformations.
This work has been originally targeted to transformation formalisms that do
have some freedom for choosing in which order to apply the rules. Rules that
are not in an explicit ordering are considered to be executed in parallel if no
conflict, e.g., add/forbid or delete/use conflicts, is statically computed. However,
the execution engines follow a pseudo-parallel execution by going back to a
sequential application of the rules. But the general notion of critical pairs may
be also a valid input for distributing transformation rules. In particular, having
non-conflicting transformation rules allows for distributing them easier without
having negative side-effects.
      </p>
      <p>
        The performance of model transformations is now considered as an integral
research challenge in MDE. For instance, Amstel et al. [
        <xref ref-type="bibr" rid="ref24">24</xref>
        ] considered the
runtime performance of transformations written in ATL and in QVT. In [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ],
several implementation variants using ATL, e.g., using either imperative constructs
or declarative constructs, of the same transformation scenario have been
considered and their different runtime performance has been compared. However,
these works only consider the traditional execution engines following a
sequential rule application approach. The only work we are aware of dealing with the
parallel execution of transformations is [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] where Clasen et al. [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] outlined several
research challenges when transforming models in the cloud. In particular, they
discussed how to distribute transformations and elaborated on the possibility to
use the Map/Reduce paradigm for implementing model transformations.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Proposed Solution</title>
      <p>Our goal is to provide model transformations with concurrency and distribution,
addressing the problems of storing and handling large models, distributed models
and models which are available as a infinite stream of elements.</p>
      <p>
        Instead of starting from scratch dealing with the partitioning of models into
model slides and its physical location in the set of available machines, we propose
to make use of Linda [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], a mature coordination language for parallel processes.
Linda implements a shared tuple space that can be distributed over a set of
machines and accessed in parallel. All those features are implemented in an
user-transparent way and Linda only provides to the user the primitives to read
from the tuple space and to write to it.
      </p>
      <p>Then we plan to create a model transformation process according to the
schema that Figure 1 shows. In the figure we can see two layers, one in the top
and another in the bottom, separated by a dotted line. To the user’s only the top
layer is visible and he/she will only need to provide the model transformation,
the input and output metamodels involved and the input models. The model
transformation will be required either in a well-known language such as ATL
or QVT or in a new language that we plan to build. The input models may be
given as an XMI file, a set of XMI files, a data flow, several data flows, etc. and
can be located in a single machine or can be distributed over a set connected
machines.</p>
      <p>Internally, the system will transform the model transformation given by the
user, which is written in what we call a high level model transformation
language, to a low level transformation language that supports distribution and
concurrency and that makes use of Linda. This low level language as well as the
Linda implementation can be, for example, Java code.</p>
      <p>Furthermore, the system will translate the input models to the model
representation required by the low level transformation and the concrete Linda
implementation, i.e., the objects belonging to the models will be transformed
into tuples and stored in the input tuple space. This model representation and
low level model transformation language will be designed taking into account
characteristics as, for example, readability and semantic, but most importantly
efficiency.</p>
      <p>Once there is data available in the input tuple space and the transformation
has been transformed to the low level transformation language the
transformation process will start. For it, several threads will be launched and concurrently
each thread will execute the following steps: (1) read objects (model elements)
from the input tuple space, which can be distributed or not, (2) transform the
objects (create the output objects from the input ones), (3) store the output
objects in the output tuple space, (4) go back to 1. if there are more objects in
the input tuple space.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Preliminary Work and Current Status</title>
      <p>
        The first step in order to implement model transformations over Linda is to
count on a Linda implementation. So far, we have used the Java implementation
of an in-memory data grid offered by GigaSpaces Technologies [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] called XAP
Elastic Caching Edition.
      </p>
      <p>
        Our work is still in an early state but so far we have taken several design
decisions. For instance, how to represent models and metamodels as tuples, how
many independent tuples spaces are required, how the elements are distributed
among those tuples spaces, how the transformation rules are executed in parallel,
study the need of encode and store trace links, etc. Some of these points were
presented in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>First of all, as the Linda implementation is in Java, the models and
metamodels are represented in Java too. The metamodels are represented by means
of Java classes where each meta-class is represented by a Java class and each
attribute or reference is a Java field. The inheritance between classes is also
represented by Java inheritance. Regarding the models, they are composed of
class instances, i.e. Java objects. Furthermore, in order to support EMF, we
are working on a code generator that provides the translation from Ecore-based
metamodels to the Java classes.</p>
      <p>We have decided that our concurrent and distributed model transformation
will be an out-place transformation language and for it we consider two different
tuples spaces, one of them containing the input models and another containing
the output models. The previously mentioned low level transformation language
is written in Java too. Nevertheless, we consider to experiment with Scala in
addition due to its support for concurrent and functional programming.</p>
      <p>As the transformation is executed concurrently, the dependencies among the
objects in the models need to be solved. In order to achieve that, we have given
to each input object a string attribute with an identifier (ID) which makes it
unique. Then, for each relationship between two objects, an attribute with the
target object ID is stored in the source object. We also have built a function,
F, similar to the resolve methods in current transformation languages, that is
able to compute the identifier of the output element given the identifier of the
input element. In case of dependencies when transforming an object, counting
on F, it is not necessary to wait until the dependent object has been transformed
because we can know its ID beforehand and, thus, create the relationship in the
output model.</p>
      <p>
        Finally, the last thing to be defined is how to assign the code to execute by
each thread and the objects to transform. So far we have applied the process
farm approach where all the threads execute the same code. Then, every object
to transform is filtered and the corresponding rule (piece of code) is executed.
The problem is that there exist rules which take longer to finish their execution.
Let us suppose the hypothetical situation where our machine has two cores, and
we have a transformation with two rules. If all the objects assigned to the first
thread need to be executed by the heaviest rule and all the objects assigned to
the second thread are executed by the lightest rule, the first core will end very
soon in comparison with the second thread, thus, the performance will not be
the most efficient. The execution time could improve changing the assignment of
objects to the threads. For that we have to work on several points, establishing
metrics to measure the weight of the rules, i.e., the time their execution takes
and creating an algorithm to do the optimal assignment. For the metrics, we
plan to extend the work on the complexity of the OCL expressions [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] with
model transformation specific metrics and for finding an optimal assignment to
use genetic algorithms such as harmony search.
5
      </p>
    </sec>
    <sec id="sec-5">
      <title>Expected contributions</title>
      <p>So far, we have analyzed the existing implementations of Linda and we have
adopted the option that best fits our needs. We have also created a metamodel
and model representation according to that implementation. Nevertheless, after
some experiments, we have realized that, for concrete cases, small variations of
this representation might improve the performance. For that, we plan to analyze
carefully each scenario and take it into account when translating the models and
metamodels given by the user to our representation. Furthermore, we do not
discard to change the whole Linda implementation and, thus, the model and
metamodels representation in the future if we find some deficiencies that make
it an unsatisfactory solution for our requirements or if we find another one more
efficient. We neither discard to create our own Linda implementation.</p>
      <p>The parallelization of the model transformation execution is in an early stage.
As we presented in Section 4, the performance depends on several parameters
and we still have to find the optimal configuration for them in order to finish
the model transformation execution as quickly as possible.</p>
      <p>
        Until now, we have not worked in the top layer reflected in Figure 1. As next
step, we are developing Higher-order Transformations (HOTs) [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] for producing
the Linda-based transformations on the lower level from transformations written
in ATL and QVT relations. We will probably define our own syntax and create a
high level language from scratch if we realize that that will improve considerably
the performance.
      </p>
      <p>To sum up, we have just reached the first steps but, at the end of this work,
we expect to count on a concurrent and distributed model transformation engine.</p>
    </sec>
    <sec id="sec-6">
      <title>Plan for evaluation and validation</title>
      <p>
        We plan to make a comparison between our approach and the most well-known
and extended languages (such as ATL, QVT relations, etc.) by mean of executing
the same model transformation over the same set of input models and evaluating
the time they take. Nevertheless, when the input models are big enough to be
transformed by the existing languages, we will have missed the reference to break.
Then, our aim will be to finish the transformation in the shortest possible time.
Some preliminary results of our work can be found in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
      </p>
      <p>
        We will need a methodology for assessing the quality of model
transformations. With that methodology we will be able to measure the speedup of
transformations, the best and the worst execution times and the kind of runtime
complexities that current model transformations have, i.e., we will know the
complexity class (linear, polynomial, exponential, etc.) with respect to certain
elements such as the model size. One work in this direction is [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
      </p>
      <p>An additional problem is that we will need to create or, preferably, to count on
big and distributed models to run the transformation. For that, we plan to make
use of model repositories such as the case studies used in TTC (Transformation
Tool Contest) 3</p>
      <p>
        Another important issue is to check the correctness of the parallel
transformations, i.e., the transformations must be deterministic and the output models
must be the same as in the sequential execution. For this, we plan to use the
Tracts approach [
        <xref ref-type="bibr" rid="ref11 ref25">11, 25</xref>
        ] to test the implementation of the parallel execution
engine by using a test set of models and model transformations.
      </p>
      <p>Acknowledgments This work is funded by Research Project
TIN201123795 and by the Universidad de M´alaga (Campus de Excelencia Internacional
Andaluc´ıa Tech). I would like to thank to my supervisors, Antonio Vallecillo and
Manuel Wimmer, for guiding me throughout this work.
3 http://planet-sl.org/ttc2013</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Amrani</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dingel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lambers</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucio</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Salay</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Selim</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Syriani</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Towards a model transformation intent catalog</article-title>
          .
          <source>In: Proc. of AMT'12</source>
          ,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2012</year>
          ) 3{
          <fpage>8</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2. Burguen~o,
          <string-name>
            <given-names>L.</given-names>
            ,
            <surname>Troya</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Vallecillo</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>On the concurrent execution of model transformations with linda</article-title>
          .
          <source>In: Proc. of BigMDE'13</source>
          , Budapest, Hungary,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2013</year>
          )
          <article-title>3:1{3:10</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Teniente</surname>
          </string-name>
          , E.:
          <article-title>A metric for measuring the complexity of ocl expressions</article-title>
          .
          <source>In: In Proc. of Model Size Metrics Workshop</source>
          , co-located
          <source>with MODELS'06</source>
          . (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Clasen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Didonet Del Fabro</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tisi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Transforming Very Large Models in the Cloud: a Research Roadmap</article-title>
          .
          <source>In: Proc. of the 1st International Workshop on Model-Driven Engineering on and for the Cloud</source>
          .
          <article-title>(</article-title>
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Cuadrado</surname>
            ,
            <given-names>J.S.</given-names>
          </string-name>
          :
          <article-title>Towards a Family of Model Transformation Languages</article-title>
          .
          <source>In: Proc. of ICMT'12. Number 7307 in LNCS</source>
          , Springer (
          <year>2012</year>
          )
          <volume>176</volume>
          {
          <fpage>191</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Czarnecki</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Helsen</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Feature-based survey of model transformation approaches</article-title>
          .
          <source>IBM Syst. J</source>
          .
          <volume>45</volume>
          (
          <issue>3</issue>
          )
          <issue>(</issue>
          <year>July 2006</year>
          )
          <volume>621</volume>
          {
          <fpage>645</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Espinazo-Pagan</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sanchez</surname>
            <given-names>Cuadrado</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            ,
            <surname>Molina</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.G.</surname>
          </string-name>
          :
          <article-title>Morsa: A Scalable Approach for Persisting and Accessing Large Models</article-title>
          .
          <source>In: Proc. of MODELS'11</source>
          . Number 6981 in LNCS, Wellington, New Zealand, Springer (
          <year>2011</year>
          )
          <volume>77</volume>
          {
          <fpage>92</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Fernandez-Ropero</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Perez-Castillo</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Weber</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Piattini</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Empirical assessment of business model transformations based on model simulation</article-title>
          .
          <source>In: Proc. of ICMT'12. Number 7307 in LNCS</source>
          , Springer (
          <year>2012</year>
          )
          <volume>137</volume>
          {
          <fpage>151</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Gelernter</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Carriero</surname>
          </string-name>
          , N.:
          <article-title>Coordination languages and their signi cance</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>35</volume>
          (
          <issue>2</issue>
          ) (
          <year>1992</year>
          )
          <volume>96</volume>
          {
          <fpage>107</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <article-title>GigaSpaces Technologies Ltd</article-title>
          .
          <source>GigaSpaces:</source>
          (
          <year>2013</year>
          ) http://www.gigaspaces.com.
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vallecillo</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Tract able model transformation testing</article-title>
          .
          <source>In: Proc. of ECFMA'11. Number 6698 in LNCS</source>
          . Springer (
          <year>2011</year>
          )
          <volume>221</volume>
          {
          <fpage>235</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Goldschmidt</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wachsmuth</surname>
          </string-name>
          , G.:
          <article-title>Re nement Transformation Support for QVT Relational Transformations</article-title>
          .
          <source>In: Proc. of MDSE'08</source>
          . (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Heckel</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , Kuster,
          <string-name>
            <given-names>J.M.</given-names>
            ,
            <surname>Taentzer</surname>
          </string-name>
          , G.:
          <article-title>Con uence of typed attributed graph transformation systems</article-title>
          .
          <source>In: Proc. of the First International Conference on Graph Transformation (ICGT)</source>
          .
          <source>Number 2505 in LNCS</source>
          , Springer (
          <year>2002</year>
          )
          <volume>161</volume>
          {
          <fpage>176</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Jakumeit</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Buchwald</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kroll</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>GrGen.NET -</surname>
          </string-name>
          <article-title>The expressive, convenient and fast graph rewrite system</article-title>
          .
          <source>STTT</source>
          <volume>12</volume>
          (
          <issue>3-4</issue>
          ) (
          <year>2010</year>
          )
          <volume>263</volume>
          {
          <fpage>271</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tisi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Towards Incremental Execution of ATL Transformations</article-title>
          .
          <source>In: Proc. of ICMT'10. Number 6142 in LNCS</source>
          , Springer (
          <year>2010</year>
          )
          <volume>123</volume>
          {
          <fpage>137</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Allilaire</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bezivin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kurtev</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>ATL: A model transformation tool</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>72</volume>
          (
          <issue>1-2</issue>
          ) (
          <year>2008</year>
          )
          <volume>31</volume>
          {
          <fpage>39</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kolovos</surname>
            ,
            <given-names>D.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rose</surname>
            ,
            <given-names>L.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Matragkas</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paige</surname>
            ,
            <given-names>R.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Guerra</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>SanchezCuadrado</surname>
          </string-name>
          , J.,
          <string-name>
            <surname>De Lara</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rath</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tisi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A research roadmap towards achieving scalability in model driven engineering</article-title>
          .
          <source>In: Proc. of BigMDE'13</source>
          , Budapest, Hungary,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2013</year>
          )
          <volume>1</volume>
          {
          <fpage>10</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Lano</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kolahdouz-Rahimi</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>The UML-RSDS manual (</article-title>
          <year>2012</year>
          ) http://www. dcs.kcl.ac.uk/staff/kcl/uml2web.
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Mens</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gorp</surname>
            ,
            <given-names>P.V.</given-names>
          </string-name>
          :
          <article-title>A Taxonomy of Model Transformation</article-title>
          .
          <source>Electr. Notes Theor. Comput. Sci</source>
          .
          <volume>152</volume>
          (
          <year>2006</year>
          )
          <volume>125</volume>
          {
          <fpage>142</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Muller</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fleurey</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jezequel</surname>
          </string-name>
          , J.:
          <article-title>Weaving executability into object-oriented meta-languages</article-title>
          .
          <source>In: Proc. of MoDELS'05. Number 3713 in LNCS</source>
          , Springer (
          <year>2005</year>
          )
          <volume>264</volume>
          {
          <fpage>278</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Razavi</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kontogiannis</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Partial evaluation of model transformations</article-title>
          .
          <source>In: Proc. of the 34th International Conference on Software Engineering (ICSE)</source>
          ,
          <source>IEEE</source>
          (
          <year>2012</year>
          )
          <volume>562</volume>
          {
          <fpage>572</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Tisi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fraternali</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ceri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bezivin</surname>
          </string-name>
          , J.:
          <article-title>On the use of higher-order model transformations</article-title>
          .
          <source>Number 5562 in LNCS</source>
          , Springer (
          <year>2009</year>
          )
          <volume>18</volume>
          {
          <fpage>33</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Tisi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>Martinez</given-names>
            <surname>Perez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Cabot</surname>
          </string-name>
          , J.:
          <article-title>Lazy execution of model-tomodel transformations</article-title>
          .
          <source>In: Proc. of MoDELS'11. Number 6981 in LNCS</source>
          , Springer (
          <year>2011</year>
          )
          <volume>32</volume>
          {
          <fpage>46</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. van Amstel,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Bosems</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            ,
            <surname>Kurtev</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Ferreira</given-names>
            <surname>Pires</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          :
          <article-title>Performance in Model Transformations: Experiments with ATL and QVT</article-title>
          .
          <source>In: Proc. of ICMT'11. LNCS</source>
          , Springer (
          <year>2011</year>
          )
          <volume>198</volume>
          {
          <fpage>212</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Burguen~o,
          <string-name>
            <surname>L.</surname>
          </string-name>
          :
          <article-title>Testing M2T/T2M transformations</article-title>
          .
          <source>In: Proc. of MODELS'13. LNCS</source>
          , Miami, FL, Springer (
          <year>October 2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mart nez</surname>
          </string-name>
          , S.,
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A Catalogue of Refactorings for Model-to-Model Transformations</article-title>
          .
          <source>Journal of Object Technology</source>
          <volume>11</volume>
          (
          <issue>2</issue>
          ) (
          <year>2012</year>
          )
          <volume>1</volume>
          {
          <fpage>40</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>