<!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>Veri cation of the CD2RDBMS Transformation Case in Flora-2.</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Muza ar Igamberdiev</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Georg Grossmann</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Markus Stumptner</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Advanced Computing Research Centre, School of IT and Mathematical Sciences University of South Australia</institution>
          ,
          <addr-line>Mawson Lakes, SA 5095</addr-line>
          ,
          <country country="AU">Australia</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Model transformations play a key role in model-driven development. They are used to generate, refactor, synthesize, reverse engineer and simplify models among others. The accuracy of transformations will impact not only transformations themselves, but also the models, the rst class entities of MDE. Veri cation of correctness properties ensures the quality of both transformations and models. VOLT workshop has been addressing this important research area for several years. As a solution for the VOLT-2015 case on transformation between class diagrams and RDBMS models, we provide a veri cation approach, namely MOTIF, in Flora-2 language. By specifying models, transformations and veri cation in the same language, we aim at closing the research gap between models and veri cation formalism.</p>
      </abstract>
      <kwd-group>
        <kwd>model transformation</kwd>
        <kwd>veri cation</kwd>
        <kwd>Flora-2</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Model transformations are means that connect abstract models to concrete
(synthesis and reverse engineering), complex models to simpli ed (simpli cation
and normalization), models written in one language to another (migration),
models with certain operational quality to improved ones (optimization) and
many more [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. These means can serve as bridges when the source and target
models reside in di erent technical spaces. The impact of transformations is
critically important within the context of models, which was experienced in
      </p>
      <sec id="sec-1-1">
        <title>Model Driven Engineering (MDE) world in the last decade.</title>
        <p>
          Consequently, transformation languages and tools are success factors of model
transformations. Veri cation of model transformation is one of the success criteria
of these languages and tools [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. Verifying a transformation is more complex
than verifying a model [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. The Veri cation of Model Transformation Workshop
(VOLT) has been addressing the veri cation from di erent perspectives. Within
this year's VOLT 2015, we introduce a di erent veri cation approach for one of
the speci ed cases using Flora-2, a dialect of F-Logic with numerous extensions. It
is a single language framework for all artifacts involved in model transformation,
namely models, transformations and veri cation properties.
        </p>
        <p>
          The bene ts of a single language framework are: (1) integration of modeling
and veri cation formalism, (2) a smooth learning curve for users, (3) a bene t
from reasoning features by transforming existing models into Flora-2, (4) a
direct veri cation feedback to users, (5) a single language transparency for users
in a sense that they can see through models, transformations and veri cation
properties from the perspective of the same language, (6) the easier tool support,
since modeling and veri cation are performed in the same framework, without a
need for transformations and veri cation extensions (e.g. plugin, add-ons) for
modeling language/environment [
          <xref ref-type="bibr" rid="ref6 ref9">6,9</xref>
          ].
        </p>
      </sec>
      <sec id="sec-1-2">
        <title>Two veri cation options are provided based on: (1) both the source and</title>
        <p>target model properties, and (2) model transformation rules in transformation
speci cation. The approach is called Model Transformation Veri cation in
Flora</p>
      </sec>
      <sec id="sec-1-3">
        <title>2 (MOTIF). Besides verifying correctness properties [13], MOTIF provides a exible rule writing mechanism to address custom and domain speci c veri cation properties.</title>
      </sec>
      <sec id="sec-1-4">
        <title>Due to lack of space, we provide main arguments in this paper and a detailed</title>
        <p>
          discussion can be found in the relevant technical report [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ]. The paper is organized
as follows. Section 2 introduces the modeling of the UML Class Diagrams to
        </p>
      </sec>
      <sec id="sec-1-5">
        <title>Relational Database Management System (CD2RDBMS) transformation case</title>
        <p>in Flora-2. The framework of transformation, veri cation rules and veri cation
options are discussed in Section 3. The properties for the provided cases are
veri ed in Section 4. Related work on veri cation of model transformation is
analyzed in Section 5. Finally, Section 6 concludes and highlights future research.
2</p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>The CD2RDBMS transformation case</title>
      <sec id="sec-2-1">
        <title>The transformation case considers the classical model transformation between</title>
        <p>UML class diagrams and relational database schemata. Three properties should be
veri ed with respect to the correspondences between the two modeling languages:</p>
      </sec>
      <sec id="sec-2-2">
        <title>1. Non-persistent classes and non-top classes must not be transformed into a</title>
        <p>corresponding table.</p>
      </sec>
      <sec id="sec-2-3">
        <title>2. All persistent top classes must be transformed into a corresponding table</title>
      </sec>
      <sec id="sec-2-4">
        <title>3. Column duplicates are forbidden in the output models, i.e., there should not be two columns with the same name in one table.</title>
      </sec>
      <sec id="sec-2-5">
        <title>These properties will be veri ed by relevant veri cation rules in Section 4.</title>
      </sec>
      <sec id="sec-2-6">
        <title>Additionally, MOTIF veri es di erent correctness properties other than the</title>
        <p>
          provided ones. The interested reader can refer to the example veri cation rules [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ].
        </p>
      </sec>
      <sec id="sec-2-7">
        <title>The source and target meta-models for the case are displayed in Figure 1.</title>
      </sec>
      <sec id="sec-2-8">
        <title>The uniqueness of table names is assumed and veri ed [9]. The multiplicity is represented with asterisk (*) symbol in Figure 1. We represent the meta-models in Flora-2.</title>
      </sec>
      <sec id="sec-2-9">
        <title>Flora-2 stands for F-Logic Translator and is a dialect of F-Logic knowledge</title>
        <p>
          representation and ontology language [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], which has simple and expressive syntax
with well-de ned declarative and object-oriented frame-based semantics. These
characteristics make it practical to apply on model transformations. The
knowledge base is formed from facts that are represented as a[propfmin:maxg*=&gt;b].
value `b'. The cardinality constraints of a property can be de ned in property
signature between lower (min) and an upper (max) bounds. The operators :: and
: represent generalization and classi cation relationships respectively.
1 C l a s s i f i e r [ name =&gt; s t r i n g ] .
2 PrimitiveDataType : : C l a s s i f i e r .
3 Class : : C l a s s i f i e r .
4 A s s o c i a t i o n [ name =&gt; s t r i n g ] .
5 A s s o c i a t i o n [ s r c =&gt;Class ] .
6 A s s o c i a t i o n [ d e s t =&gt;Class ] .
7 Class [ i s p e r s i s t e n t =&gt; b o o l e a n ] .
8 Class [ parent =&gt;Class ] .
9 Class [ a t t r s f0: g =&gt; A t t r i b u t e ] .
10 A t t r i b u t e [ i s p r i m a r y : b o o l e a n ] .
11 A t t r i b u t e [ name =&gt; s t r i n g ] .
12 A t t r i b u t e [ type =&gt;PrimitiveDataType ] .
        </p>
        <p>Listing 1: Class meta-model in Flora-2
1 Table [ name =&gt; s t r i n g ] .
2 Table [ f k e y s f0: g =&gt;FKey ] .
3 Table [ pkeyf0: g =&gt;Column ] .
4 Table [ c o l s f0: g =&gt;Column ] .
5 FKey [ r e f e r e n c e s =&gt;Table ] .
6 FKey [ c o l s f0: g =&gt;Column ] .
7 Column [ type =&gt; s t r i n g ] .
8 Column [ name =&gt; s t r i n g ] .</p>
      </sec>
      <sec id="sec-2-10">
        <title>Listing 2: RDBMS meta-model in Flora-2</title>
      </sec>
      <sec id="sec-2-11">
        <title>The meta-models have been represented as Flora-2 knowledgebases, shown in</title>
        <p>Listings 1 and 2 respectively 1
1 The primitive datatypes (e.g. boolean) are de ned with pre xed underscore symbol
in Flora-2.</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Transformation and veri cation rules</title>
      <sec id="sec-3-1">
        <title>This section introduces transformation and veri cation rules in Flora-2. First, we present a framework to design transformation and veri cation rules. Later, we consider veri cation options for model transformations.</title>
        <p>3.1</p>
        <sec id="sec-3-1-1">
          <title>A model transformation and veri cation framework</title>
        </sec>
      </sec>
      <sec id="sec-3-2">
        <title>A framework for model transformation consists of a transformation engine that</title>
        <p>executes a rule at a time from a set of transformation (veri cation) rules, i.e.
transformation speci cation. All aspects of transformation (models, transformation
speci cation/rules and their execution) are speci ed within MOTIF.</p>
      </sec>
      <sec id="sec-3-3">
        <title>A transformation rule is composed of three building blocks: pre-conditions,</title>
        <p>target manipulation and post-conditions. The pre-conditions and patterns that
should be matched in a source model are addressed in the source model section.</p>
      </sec>
      <sec id="sec-3-4">
        <title>The facts that should be added to the target model, as a result of match in the</title>
        <p>source model, take place in the target model section, while the post-condition
section contains the conditions that should be satis ed after the rule's application.</p>
        <p>Syntactically, a rule in Flora-2 consists of head :- body. statements, which
means if the body is true then the head is true as well. The predicates at the
head section can take an arbitrary number of parameters. These parameters are
used to pass values to the body to assess certain conditions. The body can have
conditions to verify a property.
1 %TransformClass2Table ( ?CLASS, ?TABLE, ? SrcModule , ? TargetModule ) :
2 ( ( ?CLASS [ i s p e r s i s t e n t &gt;true , name &gt;? NAME ] : c l a s s @ ? SrcModule ;
3 n+(?CLASS : : ? Y ) ) ) ,
4 i n s e r t f(?TABLE[ name &gt;? NAME] : t a b l e )@? TargetModule g .</p>
      </sec>
      <sec id="sec-3-5">
        <title>Listing 3: Class2Table transformation rule</title>
      </sec>
      <sec id="sec-3-6">
        <title>Listing 3 illustrates a transformation rule to transform a Class to a Table.</title>
      </sec>
      <sec id="sec-3-7">
        <title>The rule head is a predicate with four arguments. The rst two are for the</title>
        <p>source and target model elements, Class and Table respectively. The last two
indicates the source and target modules; modules are used to separate models in
Flora-2. Variables are indicated by being pre xed with a question mark, while
the percentage pre x on the predicate name disables the cashing of results of the
rule since the rule body modi es the knowledge base. When the rule is executed,
it queries for classes in the source module that are persistent and top. It then
retrieves the name of the class and inserts a table into the target module with
the same name. The result of calling the rule through the predicate in the head
is all the class objects that satis ed the query and the new table objects that
were created.</p>
      </sec>
      <sec id="sec-3-8">
        <title>Similarly, veri cation rules are also built using the same framework. The di erence is that a veri cation rule has no target model manipulation section, their pre-conditions and post-conditions are merged, and their scope covers both models and transformation speci cation.</title>
        <p>3.2</p>
        <sec id="sec-3-8-1">
          <title>Veri cation options</title>
          <p>Transformation process involves three artifacts: the source (meta-)model, the
target (meta-)model and the transformation speci cation itself. Veri cation
considers the information received from these artifacts. In this sense, transformation
can be veri ed in two ways: (1) based on (the information of) the properties of
the source and target model and (2) based on (the information obtained from) the
transformation speci cation, particularly on the transformation rules. Speci cally
in our case, for example, the former option can be used to verify whether the
target model contains a table with the same name as a persistent class in the
source model. The latter option can be used to query the transformation rule
within the transformation speci cation, to check whether it contains a mapping
from a persistent class to a table. Both options are supported by MOTIF.
4 Implementation of the veri cation rules in Flora-2</p>
        </sec>
      </sec>
      <sec id="sec-3-9">
        <title>We will demonstrate both veri cation options in the context of the three rules.</title>
      </sec>
      <sec id="sec-3-10">
        <title>First, we illustrate veri cation rules that use the source and target models to verify the properties. Afterwards, we will give an example for veri cation based on transformation rules. All rules return violations of the properties.</title>
        <p>Property rule 1. Non-persistent classes and non-top classes must
not be transformed into a corresponding table.</p>
        <p>The rule accepts four parameters for class and table instances and the source
and target modules respectively (Listing 4). A particular model element of class
or table can be provided as a parameter to verify against the property. All existing
violations for any class and table will be retrieved if rst two parameters are not
provided. This feature makes Flora-2 bene cial to use a single rule to verify all
model elements in the knowledge base.
1 n o n p e r s i s t e n t n o n t o p c l a s s e s (?C, ?T, ?SrcM , ?TargetM ):
2 ?C[ i s p e r s i s t e n t &gt;f a l s e ] : Class@ ?SrcM ,
3 ?C[ parent &gt;? Y ]@?SrcM ,
4 ?C[ name &gt;? CNAME]@?SrcM ,
5 ?T[ name &gt;? CNAME] : Table@?TargetM ,</p>
      </sec>
      <sec id="sec-3-11">
        <title>Listing 4: A veri cation rule for property 1.</title>
      </sec>
      <sec id="sec-3-12">
        <title>First, the rule retrieves non-persistent (line 2) and non-top (line 3) instances</title>
        <p>of class. Line 3 indicates whether ?C has any parent (? Y) model element, which
means ?C is a non-top element. As a next step, the rule checks whether name
properties of both class and table instance (?C and ?T respectively) are bound to
the same variable (? CNAME), which triggers the violation</p>
        <p>Property rule 2. All persistent top classes must be transformed
into a corresponding table</p>
        <p>Similarly, the rule 2 uses the similar body structure with a few di erences
in Listing 5. The rule fetches persistent classes (line 2 in Listing 5), which are
top elements (line 3). Afterwards, lines 4 and 5 indicate that if the class name
(? CNAME) does not match with any name of table instances (forall(? T)) then
the rule reports a violation with the name of the unmatched class (? CNAME).</p>
      </sec>
      <sec id="sec-3-13">
        <title>Listing 5: A veri cation rule for property 2.</title>
        <p>Property rule 3. Column duplicates are forbidden in the output
models, i.e., there should not be two columns with the same name in
one table.</p>
      </sec>
      <sec id="sec-3-14">
        <title>This veri cation rule checks for column duplicates, which is demonstrated in</title>
      </sec>
      <sec id="sec-3-15">
        <title>Listing 6. It has the simpler condition than the previous ones.</title>
        <p>1 n o c o l u m n d u p l i c a t e s (?T, ? TargetModule ) :
2 ?T : Table [ c o l s &gt;?COL1, c o l s &gt;?COL2]@? TargetModule ,
3 ?COL1 n= COL2,
4 ?COL1[ name &gt;? C1 ]@? TargetModule ,
5 ?COL2[ name &gt;? C1 ]@? TargetModule .</p>
      </sec>
      <sec id="sec-3-16">
        <title>Listing 6: A veri cation rule for property 3.</title>
      </sec>
      <sec id="sec-3-17">
        <title>Similarly, it starts with its name and two arguments for table instance and</title>
        <p>the target module (line 1, Listing 6). It only queries target RDBMS model, since
we don't need any information from the source model to verify this property. It
fetches two di erent (line 3) columns from an instance of table (line 2) and then
checks whether they are not equal (lines 4 and 5).</p>
        <p>Listing 7 demonstrates a query (not a rule like in previous three listings),
which enables the possibility of veri cation based on transformation rules.
1 ? c l a u s ef%TransClass2Table (? , ? ) , ( ( ? : Class@ ? , ?X) , ?Y) g .
2
3 ?X = ( $ f? h5888 [ i s p e r s i s t e n t &gt;t r u e ] @ h5886 g ,
4 $ f? h5888 [ name &gt;? h5913 ] @ h5886 g)
5 ?Y = $f i n s e r t f? h5940 [ name &gt;? h5913 ] @ h5938 ? h5940 : Table@ h5938 gg
6
7 1 s o l u t i o n ( s ) i n 0.0000 seconds</p>
      </sec>
      <sec id="sec-3-18">
        <title>Listing 7: Querying the Class2Table transformation rule</title>
        <p>The rule base of Flora-2 can be queried by means of clause(head,body)
statement as illustrated in Listing 7. Line 1 represents a query and the rest (lines
3-7) show the result of the query. The head and body uses variables and patterns
to match the veri cation rule (line 1). We query for the transformation rule which
was demonstrated in the previous section (see Listing 3). The transformation rule
(from Class to Table) is queried to nd out whether the persistent classes (lines</p>
      </sec>
      <sec id="sec-3-19">
        <title>3-4) are transformed to relevant tables (line 5). The name variable ? h5913 (lines</title>
      </sec>
      <sec id="sec-3-20">
        <title>4-5) is used for both class instance (line 4) and table instance (line 5), which indicates a (persistent) class instance will be transformed to a table instance with the same name.</title>
        <p>5</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Related work</title>
      <p>
        Di erent criteria, such as language, transformation related properties, level of
formality, tooling, transformation languages, veri cation formalism, have been
explored to categorize model transformation properties and veri cation techniques
[
        <xref ref-type="bibr" rid="ref13 ref5">13,5</xref>
        ]. In our case, veri cation of model transformations has been analyzed
from four perspectives (see Table 1): properties, model transformation language,
veri cation approach/language and support for a single language framework,
where at least transformation and veri cation are performed in the same language.
Approach
      </p>
      <p>Correctness
ties
proper- MT language</p>
      <p>
        Veri cation ap- A single
proach /language language
framework
UMLtoCSP con- satis ability, lack of con- UML/OCL to Con- ECLiPSe constraint
straint program- straint redundancies &amp; straint Satisfaction programming
sysming [
        <xref ref-type="bibr" rid="ref3 ref4">4,3</xref>
        ] subsumptions, liveliness Problem (CSP) tem
UML/OCL consistency of system UML models, OCL SAT solver
Boolean satis a- states &amp; redundancy of &gt;SAT instances
bility [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] OCL constraints
CARE [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] conformance Xtend
ProAnswer Set
gramming(ASP)
Language inde- termination, single in- Transformation spec an intermediate
reppendent MT ver- heritance, name con icts meta-model is ap- resent, lang
indepeni cation [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] and others plied on ATL dent framework
UML/OCL Val- transf model consistency, transformation mod- USE model
validaidator [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] property preservation els tor
MOTIF conformance, complete- Flora-2 Flora-2
      </p>
      <p>ness &amp; inconsistencies</p>
      <p>
        As shown in Table 1, some approaches use transformations to transform
a model to a formalism where solvers and constraint checkers can be used to
verify correctness properties. UMLtoCSP [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], UML/OCL to SAT encoding [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
and Xtend [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] are examples for such transformations. Similarly existing models
in other modeling languages (such as UML and EXPRESS) can bene t from
reasoning features of Flora-2. The language independent framework [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] uses an
interesting approach to de ne a common transformation meta-model, which can
be used to verify di erent model transformation properties. Another approach
[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] uses transformation models [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] for transformations and to check properties
by applying USE model validator. These veri cation approaches (Table 1) use
di erent languages for modeling and veri cation. On the other hand, MOTIF
uses the same Flora-2 language for modeling, transformation and veri cation. It
is a single language framework, where models and transformations can be built,
transformed and veri ed, as illustrated in the last column of Table 1.
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future work</title>
      <p>In this paper we introduced a novel approach, namely MOTIF, to verify model
transformation properties in the context of the CD2RDBMS case in Flora-2
language. Two veri cation options were considered and implemented. The added
value behind this proposal is two-fold. Firstly, it uses a single language framework
for modeling, transformation, querying and veri cation, which addresses the gap
between models and veri cation formalism. Secondly, it allows to query
transformation rules to verify the properties, which enables (design-time) veri cation of
transformation before their actual execution. This research will serve as a base
for future work to apply veri cation rules on larger industry models, such as the</p>
      <sec id="sec-5-1">
        <title>ISO 15926 standard from the engineering domain.</title>
      </sec>
      <sec id="sec-5-2">
        <title>Acknowledgments This research was partially funded by the Data to Decisions Cooperative Research Centre (D2D CRC).</title>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bezivin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Buttner,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Gogolla</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Kurtev</surname>
          </string-name>
          ,
          <string-name>
            <given-names>I.</given-names>
            ,
            <surname>Lindow</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <source>Model transformations? Transformation Models! In: Proc. MODELS</source>
          <year>2006</year>
          . pp.
          <volume>440</volume>
          {
          <fpage>453</fpage>
          . Springer (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bezivin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , Schurr,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Tratt</surname>
          </string-name>
          ,
          <string-name>
            <surname>L.</surname>
          </string-name>
          :
          <article-title>Model transformations in practice workshop</article-title>
          . In: Satellite Events at MoDELS
          <year>2005</year>
          . pp.
          <volume>120</volume>
          {
          <fpage>127</fpage>
          . Springer (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clariso</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riera</surname>
            ,
            <given-names>D.:</given-names>
          </string-name>
          <article-title>UMLtoCSP: A tool for the formal veri cation of UML/OCL models using constraint programming</article-title>
          .
          <source>In: Proc. ASE '07</source>
          . pp.
          <volume>547</volume>
          {
          <fpage>548</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clariso</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Riera</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>On the veri cation of UML/OCL class diagrams using constraint programming</article-title>
          .
          <source>Journal of Systems and Software 93</source>
          ,
          <issue>1</issue>
          {
          <fpage>23</fpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Calegari</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szasz</surname>
          </string-name>
          , N.:
          <article-title>Veri cation of model transformations: a survey of the state-of-the-art</article-title>
          .
          <source>ENTCS 292</source>
          ,
          <issue>5</issue>
          {
          <fpage>25</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Dubois</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Famelis</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nobrega</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ober</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Seidl</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Volter, M.:
          <article-title>Research questions for validation and veri cation in the context of model-based engineering</article-title>
          . In: MoDeVVa@ MoDELS. pp.
          <volume>67</volume>
          {
          <issue>76</issue>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Gogolla</surname>
          </string-name>
          , M., Hamann, L.,
          <string-name>
            <surname>Hilken</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Checking transformation model properties with a UML and OCL model validator</article-title>
          .
          <source>In: Proc. VOLT</source>
          '
          <volume>14</volume>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Goos</surname>
          </string-name>
          , G.:
          <article-title>Compiler veri cation and compiler architecture</article-title>
          .
          <source>ENTCS</source>
          <volume>65</volume>
          (
          <issue>2</issue>
          ),
          <volume>1</volume>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Igamberdiev</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grossmann</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stumptner</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Veri cation of the CD2RDBMS transformation case in Flora-2: VOLT 2015 case study technical report</article-title>
          .
          <source>Tech. rep., Knowledge and Software Engineering Lab</source>
          , University of South Australia (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Kifer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Yang</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wan</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuznetsova</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liang</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Flora-2: User's Manual (</article-title>
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <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>
          ,
          <string-name>
            <surname>Clark</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Language-Independent Model Transformation Veri cation</article-title>
          .
          <source>In: Proc. VOLT</source>
          '
          <volume>14</volume>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <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>In: GraMoT 2005</source>
          . pp.
          <volume>125</volume>
          {
          <fpage>142</fpage>
          . ENTCS 152 (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Rahim</surname>
            ,
            <given-names>L.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whittle</surname>
            ,
            <given-names>J.:</given-names>
          </string-name>
          <article-title>A survey of approaches for verifying model transformations</article-title>
          .
          <source>SoSyM</source>
          <volume>14</volume>
          (
          <issue>2</issue>
          ),
          <volume>1003</volume>
          {
          <fpage>1028</fpage>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. Schonbock, J.,
          <string-name>
            <surname>Kusel</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Etzlstorfer</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kapsammer</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schwinger</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wischenbart</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>CARE { a constraint-based approach for re-establishing conformance relationships</article-title>
          .
          <source>In: APCCM 2014</source>
          . pp.
          <volume>19</volume>
          {
          <fpage>28</fpage>
          .
          <string-name>
            <surname>ACS</surname>
          </string-name>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Soeken</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wille</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuhlmann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drechsler</surname>
          </string-name>
          , R.:
          <string-name>
            <surname>Verifying</surname>
            <given-names>UML</given-names>
          </string-name>
          /
          <article-title>OCL models using boolean satis ability</article-title>
          .
          <source>In: Proc. DATE</source>
          <year>2010</year>
          . pp.
          <volume>1341</volume>
          {
          <fpage>1344</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>