<!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>Iterative Development of Transformation Models by Using Classifying Terms</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Frank Hilken</string-name>
          <email>fhilken@informatik.uni-bremen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Loli Burgueaeo</string-name>
          <email>loli@lcc.uma.es</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Martin Gogolla</string-name>
          <email>gogolla@informatik.uni-bremen.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Antonio Vallecillo</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>University of Bremen</institution>
          ,
          <addr-line>Bremen</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>University of MÆlaga</institution>
          ,
          <addr-line>MÆlaga</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper we propose an iterative process for the correct specication of model transformations, i.e., for developing correct transformation models. This permits checking the correctness of a model transformation specication before any implementation is available. The proposal is based on the use of classifying terms for partitioning the input space and for simplifying the testing process.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>BibTeXEntry
* entry title : String</p>
      <p>Proc
yearE : Integer
yearP : Integer
* proc
1..* editor</p>
      <p>InProc
booktitle : String</p>
      <p>* inProc
1..* author</p>
      <p>PersonB
name : String
(a) BibTEX Model
1 docBook</p>
      <p>DocBook
* book</p>
      <p>Book
title : String
* bookE
1 bookA</p>
      <p>Article
* article title : String
* article
1..* editor
1..* author</p>
      <p>PersonD
name : String
(b) DocBook Model</p>
    </sec>
    <sec id="sec-2">
      <title>Preliminaries</title>
      <p>Here, we develop a transformation model using a test-driven approach. Assisted by a model validator that
completes partial object diagrams to consistent system states, bugs in the model description are identied and
the transformation model is iteratively xed until it is complete, works as expected and no more bugs can be
detected.
2.1</p>
      <sec id="sec-2-1">
        <title>Running Example</title>
        <p>The two initial models, the transformation is developed for, are simple bibliography managers shown in Fig. 1.
One resembles the information of BibTEX les and the other resembles the DocBook format. At the top of the
structure is the BibTeXFile or the DocBook with entries for proceedings and inproceedings that will be mapped
to books and articles, respectively. Additionally, authors and editors are saved.</p>
        <p>Dierences in the models exist in the structure how the information is saved and the capabilities saved
information. For instance, the BibTEX model saves the year of the event ( yearE) and the year of publication ( yearP)
for proceedings, which are not present in the DocBook model. Therefore, the transformation model will not be
able to cover all attributes of the models.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Characteristics of Classifying Terms</title>
        <p>
          Classifying terms [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ] are an instrument to explore model properties. They are employed in the model validation
and verication process when one has a UML and OCL model given, and one has in addition a so-called
conguration that species a nite search space connecting the models elements, basically classes, associations,
attributes, and datatypes, with nite sets of possible populations. As an important validation task, the developer
might want to see all object models that satisfy the UML and OCL class model and that t to the conguration.
Classifying terms give the developer an explicit option to formulate their understanding of two object models
being dierent. Thus when the developer scrolls through all object models matching the UML class model, the
OCL invariants and the conguration, they will only encounter models with dierent characteristics with respect
to the classifying term.
        </p>
        <p>The technical realization works as follows. The developer species a closed OCL query term, i.e., a term
without free variables, that can be evaluated in an object model and that returns a characteristic value. This
term is called ‘classifying term’. Each newly constructed object model has to show a dierent characteristic value
for the classifying term. The classifying term determines an equivalence relationship on all object models. Two
object models with the same characteristic value belong into the same equivalence class. Our approach decides
to choose only one representative from each equivalence class.</p>
        <p>The denition of the classifying terms corresponds to the mapping that the developer has in mind about the
transformation, and how it should map source models of each source equivalence class into target models of the
corresponding target class. In this sense, the source and target classifying terms should be ‘in correspondence’.
Our approach can also help checking such expected mappings.
In order to eciently test our transformation model, we create test cases using classifying terms. This technique
results in test cases covering developer chosen equivalence classes that are determined by the classifying terms.
As a result, exactly one test case is automatically generated for each equivalence class. They have a much broader
coverage than only few manual tests. Depending on a clever choice for the classifying terms, the advantages are
faster test execution, due to a smaller test suite, as well as a higher error detection rate per test case that cover
many, if not all, errors already.</p>
        <p>We dened three classifying terms for the source metamodel and three for the target metamodel of our
running example. They infer eight equivalence classes in each one. The source classifying terms focus on
dierent characteristics of the input models of the transformation. First, we want to have input models in which
proceedings have dierent conference event and publication years, and other in which they coincide. Second, we
want to have some sample input models in which two editors of proceedings invite the other to have a paper
there; respectively, we also want to have input models in which this manus-manum-lavat situation does not
happen. Finally, we want to have some source models with proceedings edited by one of the authors of the
papers in the proceedings, and other input models with no self-edited proceedings:
[ yearE_EQ_yearP ]</p>
        <p>Proc.allInstances-&gt;forAll(yearE=yearP)
[ noManusManumLavat ]
not Person.allInstances-&gt;exists(p1,p2 | p1&lt;&gt;p2 and p1.proc-&gt;exists(prc1 |
p2.proc-&gt;exists(prc2 | prc1&lt;&gt;prc2 and InProc.allInstances-&gt;select(booktitle=prc1.title)-&gt;
exists(pap2 | pap2.author-&gt;includes(p2) and InProc.allInstances-&gt;</p>
        <p>select(booktitle=prc2.title)-&gt;exists(pap1 | pap1.author-&gt;includes(p1))))))
[ noSelfEditedPaper ]
not Proc.allInstances-&gt;exists(prc | InProc.allInstances-&gt;exists(pap |</p>
        <p>pap.booktitle=prc.title and prc.editor-&gt;intersection(pap.author)-&gt;notEmpty))</p>
        <p>The classifying terms for the target models identify properties of interest in the target space, such as self-edited
books, or books which are authored by a single person. They are not shown here for space reasons.
3</p>
        <p>Developing a Transformation Model Assisted by Completions
The process of the transformation model development is outlined in Fig. 2. A rst revision is manually created
based on the specication of the transformation. Using the test cases generated by classifying terms, a verication
tool simulates the transformation by completing the transformation model. The results are checked against the
specication and errors are xed by rening the model until the transformation complies with the specication.</p>
        <p>Manually create initial
Transformation Model</p>
        <p>Check for faults
using completion</p>
        <p>Fix faults by refining
Transformation Model</p>
        <p>no
Bug free?
yes</p>
      </sec>
      <sec id="sec-2-3">
        <title>3.1 Initial Transformation Model</title>
        <p>We gave the metamodels to an experienced developer with knowledge in OCL and the description in natural
language of the transformation model. Basically, each BibTeXFile should have a direct correspondence with
a DocBook; each Proc with a Book; each InProc with an Article, and each PersonB with a PersonD.
Moreover, all the relationships between the source objects are kept in the target model but there exists a new one
between a book and an article when the corresponding InProc has as booktitle the corresponding Proc. With
this, the developer provided the following four constraints (one for every pair of objects) as the transformation
specication.
context TM inv BibTeX2DocBook:</p>
        <p>BibTeXFile.allInstances-&gt;forAll(file | DocBook.allInstances-&gt;exists(dB |</p>
        <p>file.entry-&gt;selectByType(Proc)-&gt;forAll( proc | dB.book-&gt;one(b | proc.title = b.title))))
context TM inv Proc2Book:</p>
        <p>Proc.allInstances-&gt;forAll(proc | Book.allInstances-&gt;exists(book | proc.title = book.title and
proc.editor-&gt;forAll(editorP | book.editor-&gt;exists(editorB | editorP.name = editorB.name and
book.article-&gt;forAll(art | InProc.allInstances-&gt;one(inP | inP.booktitle = art.title))))))
context TM inv InProc2Article:</p>
        <p>InProc.allInstances-&gt;forAll(inP | Article.allInstances-&gt;exists(art | inP.title = art.title and
art.bookA.title = inP.booktitle and inP.author-&gt;forAll(authP |</p>
        <p>art.author-&gt;exists(authA | authP.name = authA.name))))
context TM inv PersonB2PersonD:</p>
        <p>PersonB.allInstances-&gt;size() = PersonD.allInstances-&gt;size() and</p>
        <p>PersonB.allInstances-&gt;forAll( p | PersonD.allInstances-&gt;exists(pd | p.name = pd.name))
3.2</p>
      </sec>
      <sec id="sec-2-4">
        <title>Contradictory Constraints</title>
        <p>Given the transformation model and test cases obtained using the classifying terms previously dened in Sect. 2.3,
the model validator could not create a valid system state from any of the test cases. There is no possible model
that fulls all the conditions. The reason is a fault in the constraint Proc2Book. At the end of it, Proceeding
titles are compared to Article titles, which are dierent layers of information and thus contradictory. This
contradiction can be revealed using the counterproof that the model validator provides when such contradiction
occurs. The constraint Proc2Book looks as follows after the modication 1.
context TM inv Proc2Book:</p>
        <p>Proc.allInstances-&gt;forAll(proc | Book.allInstances-&gt;exists(book | proc.title = book.title and
proc.editor-&gt;forAll(editorP | book.editor-&gt;exists(editorB | editorP.name = editorB.name and
book.article-&gt;forAll(art | InProc.allInstances-&gt;one(inP | inP.title = art.title))))))
3.3</p>
      </sec>
      <sec id="sec-2-5">
        <title>Checking the Relation Established by the Transformation Now the model validator is able to complete the source object diagrams according to the specication given in the transformation model. Figure 3 shows inside the square the third source object diagram obtained with the classifying terms and, outside the square, the completion the model validator generated.</title>
        <p>Several problems can be easily detected. First of all, there is no one-to-one correspondence between the source
and target objects: the target contains more objects than it should. This does not match with the expected
behaviour of the transformation, which should establish a one-to-one relation between the source and target
model elements. We can make use of the fact that at the specication level, the relationship established by the
transformation can be read and traversed in both ways, i.e., the transformation model is direction-neutral . Then,
we manually created the expected target object diagram (left-hand side of Fig. 4) and completed it. The result
after the completion is shown in the right-hand side of Fig. 4, where we can see that the source model obtained
is not the third object diagram obtained applying the classifying terms (the objects inside the square in Fig. 3),
which means that the transformation model, as it is, does not establish the expected relationship between the
source and target model elements. This problem is solved by adding object equality to the constraints to limit
the number of objects generated when completing the object diagrams.</p>
      </sec>
      <sec id="sec-2-6">
        <title>1The changes made in the specication are highlighted with a gray background.</title>
        <p>(a) Expected DocBook model for
the third BibTeX model.</p>
        <p>(b) Completion for the DocBook model.</p>
        <p>Another observable problem is that the names were supposed to be unique i.e., a DocBook should not have
two Books with the same name and a Book should not have two Articles with the same name but they are
not. In the constraints the one operation, which is intended for the uniqueness, is placed inside the body of an
exists operation, which leads to the situations shown in Fig. 3. In the object diagram there are two DocBooks
but only one of them respects the uniqueness ( docBook2). As there exists one DocBook object fullling the
constraint, the overall system state is valid. In order to achieve the desired behaviour, the exists expressions
need to be replaced by one expressions. After the two changes the constraints look like the following.
context TM inv BibTeX2DocBook:</p>
        <p>BibTeXFile.allInstances-&gt;size() = DocBook.allInstances-&gt;size() and
BibTeXFile.allInstances-&gt;forAll(file | DocBook.allInstances-&gt; one(dB |</p>
        <p>file.entry-&gt;selectByType(Proc)-&gt;forAll( proc | dB.book-&gt;one(b | proc.title = b.title))))
context TM inv Proc2Book:</p>
        <p>Proc.allInstances-&gt;size() = Book.allInstances-&gt;size() and
Proc.allInstances-&gt;forAll(proc | Book.allInstances-&gt; one(book | proc.title = book.title and
proc.editor-&gt;size() = book.editor-&gt;size() and
proc.editor-&gt;forAll(editorP | book.editor-&gt; one(editorB | editorP.name = editorB.name and
book.article-&gt;forAll(art | InProc.allInstances-&gt;one(inP | inP.title = art.title))))))
context TM inv InProc2Article:</p>
        <p>InProc.allInstances-&gt;size() = Article.allInstances-&gt;size() and
InProc.allInstances-&gt;forAll(inP | Article.allInstances-&gt; one(art | inP.title = art.title and
inP.author-&gt;size() = art.author-&gt;size() and art.bookA.title = inP.booktitle and
inP.author-&gt;forAll(authP | art.author-&gt; one(authA | authP.name = authA.name))))
context TM inv PersonB2PersonD:</p>
        <p>PersonB.allInstances-&gt;size() = PersonD.allInstances-&gt;size() and</p>
        <p>PersonB.allInstances-&gt;forAll( p | PersonD.allInstances-&gt; one(pd | p.name = pd.name))
4</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Related Work</title>
      <p>
        In the eld of Model-Driven Engineering, model transformations are key elements and even the simplest ones
may contain faults as pointed in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Therefore, their testing, validation and verication have been subject of
investigations. In this work, we see model transformations as transformation models and, as a software artifact,
there exists the need of checking their correctness as well.
      </p>
      <p>
        Several lines of work consider the testing of model transformation implementations. Some of them are dynamic
approaches that execute the model transformations given an input model or a set of them. References [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] and [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
present a contribution for debugging model transformations. The work in [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] analyses the trace model in order
to nd errors. Also, Tracts [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] are a static black-box approach that establishes contracts between the source
and target metamodels which dene the transformation specication. They have been combined with classifying
terms in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] for automatically constructing relevant source model test cases. In addition to Tracts, other static
approaches have been proposed [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] that allow the specication of contracts in a visual manner, and the work
in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] that looks at the dierences between the actual output model generated by the transformation and the
expected output model.
      </p>
      <p>
        Reference [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] proposes a dynamic testing technique dening equivalence classes for the source models in a
similar manner as it is done with classifying terms. Nevertheless, their proposal is less expressive as they do
not consider the use of OCL, less exible and lacks full automation. Reference [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] presents a mechanism for
generating test cases by analysing the OCL expressions in the source metamodel in order to partition the input
model space. This is a systematic approach similar to ours, but focusing on the original source model constraints.
Our proposal allows the developer partitioning the source (and target) model space independently from these
constraints, in a more exible manner.
      </p>
      <p>
        Finally, the work in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] proved the correctness of specications by making use of algebras. Our approach can
be seen as a rst step and as an easier and cheaper way that does not require for the developer to have any extra
knowledge or create any other software artifact.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Conclusion and Future Work</title>
      <p>In this paper we have presented an iterative approach for the correct development of transformation models .
These models provide the specications of model transformations, and with our proposal they can be checked
before any implementation is available, and independently from any of them.</p>
      <p>There are several lines of work that we plan to address next. In the rst place, we would like to validate our
proposal with more transformations, in order to gain a better understanding of its advantages and limitations;
identify dierent contexts of use in which our approach works well and other in which the results are not
satisfactory (and why), and build a repository of thoroughly tested and validated transformation models that
can be reused by the community. Second, we plan to improve the tool support to further automate all tests,
so human intervention is kept to the minimum. Finally, we need to dene a systematic approach of dening
classifying term and transformation model testing using the preliminary ideas outlined in this paper.
Acknowledgment We thank the reviewers for the many constructive ideas and detailed feedback. This work
was partially funded by the German Research Foundation (DFG) under grant GO 454/19-1 and by the Spanish
Research Projects TIN2011-23795 and TIN2014-52034-R.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>V.</given-names>
            <surname>Aranega</surname>
          </string-name>
          ,
          <string-name>
            <surname>J.-M. Mottu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Etien</surname>
            , and
            <given-names>J.-L.</given-names>
          </string-name>
          <string-name>
            <surname>Dekeyser</surname>
          </string-name>
          .
          <article-title>Traceability mechanism for error localization in model transformation</article-title>
          .
          <source>In Proc. of ICSOFT'09</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>B.</given-names>
            <surname>Baudry</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Dinh-Trong</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Mottu</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Simmonds</surname>
          </string-name>
          , R. France,
          <string-name>
            <given-names>S.</given-names>
            <surname>Ghosh</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Fleurey</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y. Le</given-names>
            <surname>Traon</surname>
          </string-name>
          .
          <article-title>Model transformation testing challenges</article-title>
          .
          <source>In ECMDA Workshop on Integration of MDD and Model Driven Testing</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>BØzivin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Bttner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gogolla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          <article-title>Kurtev, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Lindow</surname>
          </string-name>
          .
          <article-title>Model transformations? transformation models!</article-title>
          <source>In Proc. of MODELS'06</source>
          , volume
          <volume>4199</volume>
          <source>of LNCS</source>
          , pages
          <fpage>440453</fpage>
          . Springer,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Garca-Domnguez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D. S.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L. M.</given-names>
            <surname>Rose</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R. F.</given-names>
            <surname>Paige</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I.</surname>
          </string-name>
          <article-title>Medina-Bulo. EUnit: A Unit Testing Framework for Model Management Tasks</article-title>
          .
          <source>In Proc of MODELS'11, LNCS</source>
          , pages
          <fpage>395409</fpage>
          . Springer,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>M.</given-names>
            <surname>Gogolla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Vallecillo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Burgueaeo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Hilken</surname>
          </string-name>
          .
          <article-title>Employing classifying terms for testing model transformations</article-title>
          .
          <source>In Proc. of MODELS'15</source>
          , LNCS. Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>C. A.</given-names>
            <surname>GonzÆlez</surname>
          </string-name>
          and
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          .
          <article-title>Test Data Generation for Model Transformations Combining Partition and Constraint Analysis</article-title>
          .
          <source>In Proc. of ICMT'14</source>
          , volume
          <volume>8568</volume>
          <source>of LNCS</source>
          , pages
          <fpage>2541</fpage>
          . Springer,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          , J. de Lara,
          <string-name>
            <given-names>D.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Paige</surname>
          </string-name>
          , and
          <string-name>
            <given-names>O. dos</given-names>
            <surname>Santos</surname>
          </string-name>
          .
          <article-title>Engineering model transformations with transML</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          ,
          <volume>12</volume>
          (
          <issue>3</issue>
          ):
          <fpage>555577</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          , J. de Lara,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Kappel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kusel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>W.</given-names>
            <surname>Retschitzegger</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schnbck</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Schwinger</surname>
          </string-name>
          .
          <source>Automated verication of model transformations based on visual contracts. Autom</source>
          . Softw. Eng.,
          <volume>20</volume>
          (
          <issue>1</issue>
          ):
          <fpage>546</fpage>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>M.</given-names>
            <surname>Hibberd</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Lawley</surname>
          </string-name>
          , and
          <string-name>
            <given-names>K.</given-names>
            <surname>Raymond</surname>
          </string-name>
          .
          <article-title>Forensic debugging of model transformations</article-title>
          .
          <source>In Proc. of MODELS'07</source>
          , volume
          <volume>4735</volume>
          <source>of LNCS</source>
          , pages
          <fpage>589604</fpage>
          . Springer,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>F.</given-names>
            <surname>Orejas</surname>
          </string-name>
          and
          <string-name>
            <given-names>M.</given-names>
            <surname>Wirsing</surname>
          </string-name>
          .
          <article-title>On the specication and verication of model transformations</article-title>
          .
          <source>In Semantics and Algebraic Specication</source>
          , Essays Dedicated to Peter D.
          <source>Mosses on the Occasion of his 60th Birthday</source>
          , volume
          <volume>5700</volume>
          <source>of LNCS</source>
          , pages
          <fpage>140161</fpage>
          . Springer,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>J. SÆnchez Cuadrado</surname>
          </string-name>
          , E. Guerra, and J. de Lara.
          <article-title>Quick xing ATL model transformations</article-title>
          .
          <source>In Proc. of MODELS'15</source>
          , LNCS. Springer,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>A.</given-names>
            <surname>Vallecillo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Gogolla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Burgueaeo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , and L. Hamann.
          <article-title>Formal specication and testing of model transformations</article-title>
          .
          <source>In Formal Methods for Model-Driven Engineering (SFM)</source>
          . Springer,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , G. Kappel,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schnbck</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Kusel</surname>
          </string-name>
          ,
          <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>A Petri Net based debugging environment for QVT Relations</article-title>
          .
          <source>In Proc. of ASE'09</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>