<!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>Model Transformation Semantic Analysis by Transformation</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>K. Lano</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S. Kolahdouz-Rahimi</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S. Yassipour-Tehrani</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dept of Informatics, King's College London</institution>
          ,
          <addr-line>Strand, London</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Dept of Software Engineering, University of Isfahan</institution>
          ,
          <addr-line>Isfahan</addr-line>
          ,
          <country country="IR">Iran</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>In this paper we show how translation from QVT-R to an intermediate semantic representation can be used to support analysis of QVT-R specifications. We use the UML to RDB case study to illustrate the approach.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Verification of model transformations has been hindered by the large number of
different MT languages which are currently in use, such as ATL [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], QVT-R [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ],
QVT-O, ETL [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], Flock [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] and UML-RSDS [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. This results in a multiplication
and duplication of verification effort and the need to construct separate analysis
tools for each different language. In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] we proposed a general transformation
framework using a language-independent transformation metamodel T MM to
express transformation semantics. In [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] we applied these techniques to analysis
of standard mode ATL. Subsequently the approach has been applied to ATL
refining mode, and to the Epsilon languages ETL [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and Flock [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. In this paper
we apply the approach to QVT-R. QVT-R presents particular difficulties for
semantic analysis because of its multiple execution modes, including aspects such
as implicit deletion, change propagation and in-place execution [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Various
proposals have been made for QVT-R semantics [
        <xref ref-type="bibr" rid="ref17 ref3 ref5">3, 5, 17</xref>
        ], however deficiencies and
ambiguities remain in the language semantics. Via the translation to T MM we
provide a logical semantics for QVT-R with a direct computational model that
supports proof of transformation properties including confluence and syntactic
correctness.
      </p>
      <p>
        Figure 1 (extended from [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]) shows the metamodel T MM of our semantic
representation for transformations. Property , Operation, Constraint and Activity
are from the metamodel of the UML-RSDS subset of UML. A TransformationSpeci cation
is similar to a UML Use Case: it is an owner of structural and behavioural
features, and it has an associated behavior, with parameters, preconditions and
postconditions. In our experience this is an appropriate entity type for the
representation of transformations in declarative and hybrid MT languages.
      </p>
      <p>
        Mappings from ATL, ETL, Flock and QVT-R to T MM have been
implemented as transformations from the MT language metamodels to T MM using
the UML-RSDS toolset [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Syntactic and data-dependency analysis can be
performed on the T MM representation to check definedness and confluence.
Mappings to B, Z3 and SMV from T MM have also been automated in the
UML-RSDS tools. This approach means that only one semantic mapping needs
to be defined and verified for each formal analysis language, rather than semantic
maps for each different MT and target formalism.
      </p>
      <p>
        Rule inheritance and transformation import/superposition relationships are
not present in T MM, instead such MT composition mechanisms are
semantically expressed via the translations to T MM. The reason for this is that the
semantics of these mechanisms varies between MT languages [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
      </p>
      <p>In addition to enabling verification, the mappings can help to clarify semantic
issues in the MT languages (such as the ambiguities of in-place semantics in
QVT-R), and identify possibilities to extend the MT languages in semantically
consistent ways, eg., to extend ATL with direct update-in-place capabilities, to
extend ETL with multiple source parameter rules, or to extend MT languages
with explicit specifications of transformation invariant predicates.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Analysis of QVT-R</title>
      <p>
        QVT is an OMG standard language for model transformation [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], consisting
of relational (QVT-R), operational (QVT-O) and core (QVT-Core) languages.
In this section we describe the semantic mapping from QVT-R to T MM. This
}
}
}
relation Attribute2Column
{ checkonly domain uml1 c : Class { attribute =
      </p>
      <p>a : Attribute {name = an, type = typ:Type { name = tn }}};
enforce domain rdb1 t : Table { column =</p>
      <p>
        col : Column {name = an, coltype = tn} };
mapping provides a set-theoretic formal semantics of QVT-R, and an
execution semantics based on [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], and it also takes account of the semantic issues
identified in [
        <xref ref-type="bibr" rid="ref17 ref4">4, 17</xref>
        ]. All of QVT-R is covered except for collection templates and
rule overriding (the semantics of overriding is not defined by the QVT-R
standard: http://www.omg.org/issues/issue15524.txt). QVT-R supports
bidirectionality and change-propagation for transformations. These aspects need therefore
to be modelled in the T MM representation. We do this by deriving cleanup
, and change propagation ∆ versions of a given transformation specification
: TransformationSpeci cation.
      </p>
      <p>
        An example transformation, from UML to relational databases, is given in
[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]:
transformation tau(uml1 : SimpleUML, rdb1 : SimpleRDMS) {
top relation Class2Table
{ checkonly domain uml1 c : Class {name = n};
enforce domain rdb1 t : Table {name = n};
where { Attribute2Column(c,t) }
The name attributes of Class and Table are identities/keys, and attribute and
column are set-valued roles.
2.1
      </p>
      <p>
        Semantic mapping from QVT-R to T MM
e : E { f1 = val1, ..., fn = valn }
occurring in a checkonly domain is interpreted as a Mapping condition predicate
cpred (ote) formed as a conjunction of the interpretations of each PropertyTemplateItem
= vali . For enforce domains, the interpretation of ote as a Mapping relation
predicate is epred (ote) [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The E !exists (e j P ) quantifier in Mapping
relations is interpreted as “create a new e : E and establish P for e, unless there
already exists an e : E satisfying P ”. The Unique Instantiation pattern of [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
is used to implement QVT-R ‘check before enforce’ semantics [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. If E has a
key attribute, and an E instance already exists with the key value specified in
P , then that instance is updated to satisfy the remainder of P .
      </p>
      <p>The interpretation of a QVT top-level Relation r with multiple (at least
one) checkonly domains, and multiple (at least one) enforce domains is then a
Mapping Conr which has readOnly ends for each checkonly domain of r , and
updated ends for each enforce domain of r . Conr has condition the conjunction
of predicates e : E &amp; cpred for each checkonly domain
checkonly domain src e : E { f1 = val1, ..., fn = valn }
and relation the conjunction of predicates epred for each enforce domain
enforce domain trg e : E { f1 = val1, ..., fn = valn }
In addition, the when clause is interpreted as a predicate whenp and conjoined
to the Mapping condition, and the where clause is interpreted as a predicate
wherep and conjoined to the relation. An implicit where predicate, always
incorporated into the relation of Conr for separate-models model transformations, is
the creation of a trace object for this rule application:</p>
      <p>
        r $trace!exists(rx j rx :e1 = e1 &amp; ::: &amp; rx :en = en)
where the ei are all the root variables of the relation domains of r . r $trace
is an auxiliary entity which has attributes consisting of these variables1. A
RelationCallExp of r (e1; :::; en) in a when clause is also interpreted by the same
1 “Relations ... implicitly creates trace instances to record what occurred during a
transformation execution” (Page 9 of [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ])
predicate, as a condition query expression. The main use of these trace relations
is to control execution order by means of when conditions [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
      </p>
      <p>The complete interpretation of Class2Table as a Mapping ConClass2Table is:
c : Class &amp; n = c:name )</p>
      <p>Table!exists (t j t :name = n &amp; attribute2column$op(c; t ) &amp;</p>
      <p>Class2Table$trace!exists (class2table j</p>
      <p>class2table:c = c &amp; class2table:t = t ))
where the condition is written on the LHS of ), and the relation on the RHS.</p>
      <p>A QVT-R relational transformation is interpreted as a
TransformationSpecification which has rules Conr for each top-level Relation r of . We treat
the order of these rules as significant. For non-top-level relations r , a
predicate Opr is used to form the postcondition of an update operation opr which
has parameters the root variables of the relation domains of r . Opr is formed
as for Conr , but without antecedent conjuncts e : E for the root variables of
the checkonly relation domains, and without quantifiers E !exists (e j :::) for
the root variables of the enforce relation domains of r . It is assumed that all
the operation parameters are bound at the point of call. These operations are
added as owned operations of the TransformationSpecification representing the
transformation.</p>
      <p>
        QVT-R has the semantic feature of implicit deletion: if a relation is not
satisfiable for an existing element of the target model, which matches the
target domain pattern of the relation, then this target element should be deleted.
We express this semantics by deriving transformation invariants from the rules,
which are constraints which are expected to hold at the start and throughout the
transformation execution. The invariants express that all target model elements
can be derived from source model elements via at least one top-level relation and
some possible execution2. If an invariant fails for a given target enforce domain
element, then the target element should be deleted (Page 21 of [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]). The
invariants are derived as duals of the forward top-level rules: an invariant constraint
Invr is derived from a top relation r by exchanging the roles of checkonly and
enforce domains in the derivation process for Conr . Both where and when clause
predicates are placed in the succedent of Invr , and trace constructions/tests are
omitted3. For the above example Class2Table this produces the Mapping
t : Table &amp; n = t :name )
      </p>
      <p>
        Class!exists (c j c:name = n &amp; attribute2column$inv (c; t ))
If the condition P : n = t :name of this mapping holds for a t : Table in the target
model, but the relation (succedent) Q does not hold, then t should be deleted.
This semantics is expressed by a Mapping with condition P &amp; not (Q ) and
relation t !isDeleted (). Each of the enforced domain root variables involved in
2 These consistency properties are logical conditions, independent of traces/execution
orders.
3 For the when clause a test on a top relation r 1 is interpreted as Invr1
the QVT-R relation is deleted, and the tuple of domain variables is also removed
from the relation trace. This deletion form of Invr is denoted CleanTargetr .
For non-top relations r , a boolean-valued query operation r $inv is produced
whose postcondition is based on the dual of Opr . The default value of such a
query operation is false. The invocation of r in either a where or when clause
is interpreted as a call of r $inv . For QVT-T transformations t with separate
source and target models, a cleanup version of its T MM representation is
formed with its rules consisting of the CleanTargetr for the top relations r of t.
The complete semantics of t is then the sequential composition ; . Similarly, a
change-propagation version ∆ of can be defined which uses the trace relations
to propagate incremental source model changes to the target model, including
deletion of target elements derived from deleted source elements [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
2.2
      </p>
      <sec id="sec-2-1">
        <title>Analysis techniques</title>
        <p>
          After translation to T MM, analyses of determinacy, confluence and
termination of a QVT-R transformation based on syntax and data-dependency can be
carried out, using the UML-RSDS tools. For the above specification, Class2Table
is identified as confluent and of type 1, meaning that it can be correctly
implemented by a bounded loop, instead of by a fixed-point iteration [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. If the called
relation was changed to:
relation Attribute2Column
{ checkonly domain uml1 c : Class { name = n, attribute =
        </p>
        <p>
          a : Attribute { name = an, type = typ : Type { name = tn }};
enforce domain rdb1 t : Table { name = n, column = col : Column
{ name = an + t.column-&gt;size(), coltype = tn }};
}
then the translated constraint would be identified as being of type 2 (it both
reads and writes Table :: column), and a warning would be issued to the
developer that it may be semantically incorrect: mapping transformations should
normally consist of type 1 constraints only. Required postconditions can be proved
as transformation invariants, using B [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] or can be derived from the
transformation invariants. For example, the syntactic correctness property that the
names of columns of tables are unique within the table can be established from
InvClass2Table and the corresponding property for attributes of classes.
Modellevel semantic preservation can also be proved by invariant-based reasoning.
The semantics can also be used to justify refactorings of QVT-R
transformation specifications by showing that the semantics of the original and refactored
transformations are the same. If all the rules are type 1 and satisfy the condition
that rule applications never over-write data read by rule applications preceding
them in execution order, then semantic correctness of the transformation can be
deduced.
        </p>
        <p>
          We have evaluated our semantics on a number of examples, in particular
the checkonly examples of [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. Our semantics for a checkonly top relation r
in the direction of domain d is Invr evaluated with d as the enforce domain
(existentially quantified). This agrees with the semantics of [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ]. To ensure the
correctness of the semantics for update transformations, the translation clauses
have been defined based very closely on the (informal) semantics presented in
[
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. Update examples such as the UML to RDB example have been used to check
that our semantics agrees with that given in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. One major difference between
our semantics and the Medini QVT-R semantics is that the OCL semantics used
in T MM uses classical logic. Thus specifications which use explicit null and
invalid values cannot be given a semantics.
2.3
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>In-place transformations</title>
        <p>
          The semantics of in-place transformations is described very briefly in [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] and
it is unclear how this semantics interacts with aspects such as implicit deletion
and change propagation. The translation to T MM described above can be used
to give a semantics for in-place QVT-R specifications, but with a fixed-point
execution model: the computationStep of a Mapping is applied repeatedly until
the Mapping relation is satisfied for all model elements that satisfy its condition.
Relation traces may not be functional. Implicit deletion cannot be expressed
by invariants, instead ‘default deletion’ rules are defined, which express that
if no rule creates or copies an element, then the element is deleted.
Changepropagation may be implemented by re-execution of the transformation on the
modified model. An example of translation and analysis of an in-place QVT-R
transformation is given in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ].
3
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Related work</title>
      <p>
        Some other works consider the analysis of multiple transformation languages
by transformation [
        <xref ref-type="bibr" rid="ref2 ref3">2, 3</xref>
        ]. We explicitly represent the semantics of MT languages
within our language-independent representation, such semantic representation is
not detailed in other approaches such as [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Compared to [
        <xref ref-type="bibr" rid="ref14 ref17 ref3">3, 14, 17</xref>
        ] we include
an execution semantics for QVT-R, with explicit representation of
transformation steps, trace relations and of implicit deletion semantics. This is necessary
for proof of syntactic correctness and model-level semantic preservation using
transformation invariants. This representation is also necessary to express the
semantics of in-place transformations. In our approach, confluence and termination
may be proved for QVT-R specifications based on syntactic and data-dependency
analysis of the semantic representation, rather than by using state-space
exploration as in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Stevens [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] identifies the deficiencies of existing QVT-R
semantics and tools, and provides a game-theoretic semantics for checkonly
transformations. Stevens prefers the declarative interpretation of where=when clauses
for both checkonly and enforce mode. However the operational interpretation
is used in practice for enforce mode, eg., in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ], [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. We adopt the
declarative interpretation for checkonly mode. In terms of the classifications of [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ],
we address the verification properties of termination, determinism, conformance
and semantic preservation, using transformation-dependent input-independent
verification techniques.
      </p>
    </sec>
    <sec id="sec-4">
      <title>Conclusions</title>
      <p>
        We have described techniques which provide language-independent verification
capabilities for model transformations via translations to a common semantic
representation. Translations to T MM have also been implemented for ATL,
Flock and ETL [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], these semantic interpretations highlight the semantic
commonalities and differences between MT languages, and identify where
problematic areas exist in their semantics. Our approach can also be extended in principle
to other MT languages, such as TGG, GrGen.NET and QVT-O.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>M.</given-names>
            <surname>Amrani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lucio</surname>
          </string-name>
          , G. Selim,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dingel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Le Traon</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Cordy</surname>
          </string-name>
          ,
          <article-title>Formal veri cation techniques for model transformations: a tridimensional classi cation</article-title>
          ,
          <source>JOT</source>
          ,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>V.</given-names>
            <surname>Bollati</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Vara</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Jimenez</surname>
          </string-name>
          , E. Marcos,
          <article-title>Applying MDE to the (semi-)automatic development of model transformations</article-title>
          ,
          <source>Information and Software Technology</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Clariso</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          , J. De Lara,
          <article-title>Veri cation and Validation of Declarative Model-to-Model Transformations Through Invariants</article-title>
          ,
          <source>Journal of Systems and Software</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>T.</given-names>
            <surname>Goldschmidt</surname>
          </string-name>
          , G. Wachsmuth,
          <article-title>Re nement transformation support for QVT relational transformations</article-title>
          , FZI, Karlsruhe, Germany,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>E.</given-names>
            <surname>Guerra</surname>
          </string-name>
          , J. de Lara,
          <article-title>Colouring: execution, debug and analysis of QVT-Relations transformations through coloured Petri Nets</article-title>
          , SoSyM vol.
          <volume>13</volume>
          , no.
          <issue>4</issue>
          ,
          <string-name>
            <surname>Oct</surname>
          </string-name>
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Eclipsepedia</surname>
          </string-name>
          , ATL User Guide, http://wiki.eclipse.org/ATL/ User Guide -
          <source>The ATL Language</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>J.</given-names>
            <surname>Kiegeland</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Eichler</surname>
          </string-name>
          , Medini-QVT, http://projects.ikv.de/qvt,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>D.</given-names>
            <surname>Kolovos</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Paige</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Polack</surname>
          </string-name>
          ,
          <article-title>The Epsilon Transformation Language</article-title>
          ,
          <source>in ICMT</source>
          <year>2008</year>
          , LNCS Vol.
          <volume>5063</volume>
          , pp.
          <fpage>46</fpage>
          -
          <lpage>60</lpage>
          , Springer-Verlag,
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>A.</given-names>
            <surname>Kusel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Schonbock</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Wimmer</surname>
          </string-name>
          , G. Kappel,
          <string-name>
            <given-names>W.</given-names>
            <surname>Retchitzegger</surname>
          </string-name>
          , W. Schwinger,
          <article-title>Reuse in model-to-model transformation languages: are we there yet?</article-title>
          ,
          <source>Sosym</source>
          vol.
          <volume>14</volume>
          , no.
          <issue>2</issue>
          ,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>K.</given-names>
            <surname>Lano</surname>
          </string-name>
          ,
          <article-title>The UML-RSDS Manual, www</article-title>
          .dcs.kcl.ac.uk/staff/kcl/uml2web/umlrsds.pdf,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>K.</given-names>
            <surname>Lano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kolahdouz-Rahimi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <article-title>Language-independent Model Transformation Veri cation</article-title>
          ,
          <source>VOLT</source>
          <year>2014</year>
          , York,
          <year>July 2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>K.</given-names>
            <surname>Lano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kolahdouz-Rahimi</surname>
          </string-name>
          ,
          <article-title>Model Transformation Design Patterns</article-title>
          ,
          <source>IEEE Transactions in Software Engineering</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <given-names>K.</given-names>
            <surname>Lano</surname>
          </string-name>
          ,
          <string-name>
            <given-names>S.</given-names>
            <surname>Kolahdouz-Rahimi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Clark</surname>
          </string-name>
          ,
          <article-title>A framework for model transformation veri cation</article-title>
          ,
          <source>BCS FACS journal</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <given-names>N.</given-names>
            <surname>Macedo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Cunha</surname>
          </string-name>
          ,
          <string-name>
            <surname>Implementing</surname>
            <given-names>QVT</given-names>
          </string-name>
          -R bidirectional
          <article-title>model transformations using Alloy</article-title>
          ,
          <string-name>
            <surname>FASE</surname>
          </string-name>
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. OMG, MOF
          <volume>2</volume>
          .0 Query/View/Transformation Speci cation
          <year>v1</year>
          .1,
          <year>2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. L.
          <string-name>
            <surname>Rose</surname>
            ,
            <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>F.</given-names>
          </string-name>
          <string-name>
            <surname>Polack</surname>
          </string-name>
          ,
          <article-title>Model migration with Epsilon Flock</article-title>
          ,
          <source>International Conference on Model Transformations</source>
          <year>2010</year>
          , Springer-Verlag.
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>P.</given-names>
            <surname>Stevens</surname>
          </string-name>
          ,
          <article-title>A simple game-theoretic approach to checkonly QVT-Relations, Softw</article-title>
          . Syst. Model vol.
          <volume>12</volume>
          , no.
          <issue>1</issue>
          ,
          <issue>2013</issue>
          , pp.
          <fpage>175</fpage>
          -
          <lpage>199</lpage>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>