<!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>Scalable Verification of Model Transformations</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Xiaoliang Wang</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Adrian Rutle</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Yngve Lamo</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Bergen University College</institution>
          ,
          <country country="NO">Norway</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Model transformations are crucial in model driven engineering (MDE). Automatic execution of model transformations improves software development productivity. However, model transformations should be verified to ensure that the models produced or the transformations satisfy some expected properties. In a previous work we presented a verification approach of graph-based model transformation systems based on relational logic. The approach encodes model transformation systems as Alloy specifications which are examined by the Alloy Analyzer. But experiments showed scalability and performance problems in the approach when complex relations were present in the systems. To solve these problems, we extend our previous work by using three techniques: 1) we change the encoding to decrease the arity of relations in the derived Alloy specifications; 2) we decompose the expressions for the pattern matching into sub-expressions using unique elements; 3) we use annotations to decrease the complexity of the metamodel and the model transformation rules. The results of our experiments indicate that the new techniques lead to better scalability and performance.</p>
      </abstract>
      <kwd-group>
        <kwd>Model transformations</kwd>
        <kwd>verification of model transformations</kwd>
        <kwd>scalability problem</kwd>
        <kwd>verification performance</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>In model driven engineering (MDE), models are the first class entities of the
software development. They are used to specify the domain under study, to generate
program code, to document software, etc. Ideally, models in a development phase
can be generated automatically from models in a previous phase by model
transformations. Such automation makes MDE appealing by increasing productivity.
However, errors may exist in model transformations and be propagated to
subsequent phases resulting in erroneous models and software. Thus, verification of
model transformations is a necessary task to ensure correctness, i.e. the produced
models or the transformations satisfy some expected properties.</p>
      <p>
        In our previous work [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ], we presented a verification approach of graph-based
model transformation systems based on relational logic. A model transformation
system, which consists of a metamodel and model transformation rules, is
encoded automatically as an Alloy specification. Then the specification is examined
by the Alloy Analyzer to verify if the system satisfies some properties within a
user-defined scope. We verified conformance, safety and reachability properties
by checking the Direct Condition and the Sequential Condition [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. However,
the previous approach suffered from a scalability problem. Complex relations in
metamodels and transformation rules caused relations of high arity present in
the derived Alloy specifications. As a consequence, the Alloy Analyzer could not
examine the specifications when using larger scopes.
      </p>
      <p>To handle the scalability problem we change the encoding procedure,
especially the part for matching the left and right patterns of the model
transformation rules, to get rid of relations with high arity. A side effect of this change is
that we get longer expressions for the pattern matching. This leads to increased
verification time and worse performance. To handle the performance problem
we extend our approach with two techniques: decomposition and annotation.
With the first technique, we divide the expressions for the pattern matching
into sub-expressions using unique elements. With the second technique, we use
annotations to specify state information. This will decrease the complexity of
the relations and the amount of the constraints in the metamodel.</p>
      <p>Section 2 recalls the verification approach and presents some related
background information. Sections 3, 4 and 5 present the changes in the encoding
procedure, the usage of unique elements and the usage of annotations,
respectively. In Section 6, we describe several experiments and present the results to
show the effect of the new techniques. Related work is discussed in Section 7 and
finally concluding remarks and future work are presented in Section 8.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background</title>
      <p>
        In this section, we recall the verification approach for graph-based model
transformation systems detailed in [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. Since the verification approach is based on
Alloy [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and the running example is specified in the Diagram Predicate
Framework (DPF) [
        <xref ref-type="bibr" rid="ref11 ref12 ref19 ref21">11,12,19,21</xref>
        ], we give first a brief introduction to these frameworks.
2.1
      </p>
      <sec id="sec-2-1">
        <title>Alloy</title>
        <p>Alloy is a specification language and an analyzing tool for relational models.
The language is declarative, suited for describing complex model structures and
constraints based on relational logic. Artifacts in a model are defined in Alloy
as signatures while relations among them are defined as fields of the signatures.
Some predefined signatures are offered, like Int . Constraints on specifications
are defined as fact s while reusable constraints with parameters are defined as
pred s. The Alloy Analyzer is a constraint solver which verifies Alloy specifications
by first translating them into SAT problems and then resolving them using a
SAT solver. It can find instances which are well-typed by (and are satisfying
the constraints of) the specifications using the run command. One can also use
the check command to find counterexamples violating some properties. Notice
that Alloy performs a bounded check, i.e. for each signature, a user-defined scope
bounds the number of its instances.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Diagram Predicate Framework (DPF)</title>
        <p>
          DPF provides formalization of (meta)modelling and model transformation based
on graph transformations [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ] and category theory [
          <xref ref-type="bibr" rid="ref5">5</xref>
          ]. (Meta)models in DPF are
represented by diagrammatic specifications consisting of an underlying graph
and a set of constraints. Fig. 1 is the metamodel of Dijkstra mutual exclusion
algorithm [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ], in which P , T , R and {F1 , F2 } represent process, turn, resource
and the flags of a process while [xor] and [inj], etc. are the constraints [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ]
Each constraint is formulated by a predicate from a predefined signature. A
model is valid, i.e. the model conforms to its metamodel if there is a typing
morphism from the underlying graph of the model to the underlying graph of
the metamodel, and the model satisfies all the constraints of the metamodel.
        </p>
        <p>[xor]
nonActive active
setTurn
start</p>
        <p>P
[nand]</p>
        <p>
          [
          <xref ref-type="bibr" rid="ref1 ref1">1,1</xref>
          ]
crit
        </p>
        <p>check
[xor4]</p>
        <p>F2
F1</p>
        <p>T
g
a
l
F
t
e
s
1
t
s
t
i
x
e</p>
        <p>
          A model transformation system consists of a metamodel (Fig. 1) together
with a set of model transformation rules (Fig. 2). The transformation rules
specify how a source model can be transformed to a target model. A model
l r
transformation rule p : L ←− K −→ R, consists of the left pattern L, the right
pattern R and the coordination pattern K, together with two injective graph
morphisms l and r. A model transformation consists of a sequence of direct
model transformations (application of one model transformation rule). The
execution of transformations follows the classic Double-Pushout (DPO) approach
as in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. That is, for each match m of L in the source model S, we create a
match n of R in T using two pushout constructions. DPF also provides a
framework to specify constraint-aware model transformation rules [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. That is, the
transformation rules may contain constraints which may be used to control the
matches and to decide what to create in the target model.
2.3
        </p>
      </sec>
      <sec id="sec-2-3">
        <title>Verification Approach</title>
        <p>
          In [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], as a running example we represented Dijkstra’s mutual exclusion
algorithm as a model transformation system (see Fig. 1 and 2). The approach uses
an encoding procedure to translate the system to an Alloy specification. The
metamodel and the transformation rules are encoded as corresponding
signatures and predicates in the Alloy specification as follows:
1. Assume that there are m nodes and n edges in the structure of the metamodel.
        </p>
        <p>Each node Ni, i∈[1..m] is encoded as a signature SNi while each edge Ej,
j ∈ [1..n] as a signature SEj with two fields src : one Ejs and trg : one Et.
j
The Alloy keyword one encodes that each edge has exactly one source
(target) node Ejs (Ejt). Models are encoded as signatures SG with two fields
nodes : set SN1 + · · · + SNm and edges : set SE1 + · · · + SEn encoding the
contained nodes and edges.
2. The DPF predicates are encoded as preds in Alloy while constraints as f acts.
3. Direct model transformations are encoded as a signature Trans with 7 fields:
the rule applied rule, the source and target model source, target, as well as,
the deleted and added elements : dns and ans (nodes), des and aes (edges).
4. Each rule application is encoded as a predicate rulei[trans] stating that the
transformation trans applies rule i. In this predicate, we encode that the
source (target) model has exactly one match of the left (right) pattern in
which some matched elements are deleted (added) according to the rule.
5. In order to ensure that each direct model transformation applies only one
rule, for each type in the metamodel, a number restricts how many of its
instances are deleted (added).
1 sig SNi {} // For each node Ni , i∈[1..m]
2 sig SEj { src: one Ejs , trg: one Ejt} // For each edge Ej , j∈[1..n]
3 sig SG{ nodes : set SN1 + . .s.o+urSceN,mt,aregdegte:so:nseetGrSaEph1 ,+. .d.ns+, aSnEsn:}set SN1 +. . .+SNm ,
4 sig Trans { rule : one Rule ,</p>
        <p>des , aes: set SE1 +. . .+SEn }
5 fact{ all t: Trans | rule1[t] or . . . or ruler [t ]}</p>
        <p>
          After applying the encoding procedure, we verify the system by using the
Alloy Analyzer to examine the specification. The Alloy Analyzer searches for
counterexamples by executing the command check{constraint} f or scope. If
no counterexample is found, the property is verified correct within the scope.
Otherwise, a counterexample can be visualized to assist the designer to correct
the system. In [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] we verified conformance, safety and reachability properties by
checking the Direct Condition (i.e. every direct model transformation produces
a valid target model) and the Sequential Condition (i.e. if the direct condition
is not satisfied, for each counterexample there exists a sequence of direct model
transformations that will produce a valid target model).
2.4
        </p>
      </sec>
      <sec id="sec-2-4">
        <title>Challenges in Verification</title>
        <p>
          The Alloy Analyzer performs a bounded check within a state space
determined by the scope. Given an Alloy specification consisting of m signatures, a
scope [s1, s2, ..., sm] bounds the size of the ith signature to si. For a relation
of arity n, the size of the state space containing all the possible instances is
2ˆ(Pim=1 si)n [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ]. The encoding procedure, especially the encoding of the
pattern matching, leads to relations of high arity in the Alloy specifications. This
impairs scalability since relations of high arity hampers verification within large
scopes, e.g. in [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ] the highest scope was 4. In the following section, we present a
new encoding for the pattern matching which reduces the arity of the relations
in the Alloy specifications.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Changes in the Encoding Procedure</title>
      <p>
        A direct model transformation is the application of one model transformation
rule. As a result, the source (target) model has a match of the left (right) pattern
of the rule with elements deleted (added) according to the rule. Assuming that
the left (right) pattern of a transformation rule is a connected graph containing
edges e1, . . . , em and nodes v1, . . . , vn (if the pattern is a disconnected graph, each
connected subgraph is encoded separately), the pattern matching is encoded as
one e1, . . . , em|p(e1, . . . , em), where p(e1, . . . , em) is the relational expression
about structure match and change. The Alloy keyword one enforces that only one
pattern is present in the source (target) model. For example, the right pattern
of the rule setF lag in Table 2 is encoded as follows:
1 one a: active &amp;t.aes , s: setTurn &amp;t.aes , pf:PF1&amp;t.aes , f: F1R&amp;t. aes |
2 let p=a.src , f1=pf.trg , r=f. trg |
3 p=a. trg and s.src=p and s. trg=p and pf.src=p and f. src=f1 and f1 in F1&amp;t. ans
4 and r in R&amp;(t. source .nodes -t. dns) and p in P&amp;(t. source . nodes -t.dns)
The quantification one e1, . . . , em in the relational formula causes relations of
high arity in the Alloy specification. The Alloy Analyzer cannot handle such
quantification with larger scopes, especially when using the keyword one [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ].
After studying the encoding procedure, we find that the keyword one is not
necessary because the number restriction on the deleted (added) elements implies
that only one pattern is present in the source (target) model (see item 5 in
Section 2.3). Therefore, we could use some instead of one. Since the expression
some e1, . . . , em|p(e1, . . . , em) equals to some e1| . . . |some em|p(e1, . . . , em),
we can split the existential quantification and evaluate the quantifiers one by
one. In this way, we obtain Alloy specifications without high-arity relations. For
example, the right pattern of the rule setF lag can now be encoded as:
1 some a: active &amp;t.aes| let p=a. src|
2 p in P&amp;(t. source .nodes - trans . dns) and p=a.trg
3 and some s: setTurn &amp;t. aes|s. src=p and s.trg=p
4 and some pf:PF1&amp;t.aes| let f1=pf. trg|pf.src=p and f1 in F1&amp;t.ans
5 and some f:F1R&amp;t.aes| let r=f. trg|f.src=f1 and r in R&amp;(t. source .nodes -t. dns)
      </p>
      <p>Thus, the scalability problem due to high-arity relations can be solved by
the above mentioned change of the encoding. However, this leads to longer
expressions for the pattern matching, which in turn will lead to poor performance
during verification. In the following two sections, we introduce two techniques
to address this problem and improve the performance. Note that in Section 6
we summarize the gains in translation time and verification time due to the
optimization techniques discussed in the following sections.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Decomposition of Patterns</title>
      <p>In order to get rid of long expressions for the pattern matching, we decompose
them into sub-expressions during the encoding procedure using unique elements.
A deleted (added) element is unique if it is the only instance of its type deleted
(added) during a direct model transformation. Usually some unique elements
share a common structure. Consider the right pattern of the rule setF lag, in a
transformation applying the rule, the added arrow :active in Fig. 2 is the only
instance of active which will be added. The edges : setTurn and : P → :F1 are
unique elements sharing the same :P . In addition, the unique elements :P →:F1
and :F1 →:R share the same :F1 . In the previous section, we encoded the pattern
matching so that the whole pattern needed to exist in the target model. Here,
we require that the three sub-patterns :ative :P :F 1 , :setT urn :P :F 1
and :F 1 :R exist in the target model. The :P in the first two sub-patterns
are the same and the :F 1 in the last two sub-patterns are the same because the
unique elements share them. After decomposition using the unique elements, the
right pattern of the rule setF lag is encoded as:
1 some a: active &amp;t. aes | let p=a. src|p in (t. source . nodes -t. dns) and p=a. trg
2 and some pf : PF1 &amp;t. aes | let f1 = pf . trg | pf . src =p and f1 in t. ans
3 some s: setTurn &amp;t. aes | let p=s. src|p in (t. source . nodes -t. dns) and p=s. trg
4 and some pf : PF1 &amp;t. aes | let f1 = PF10 . trg | pf . src =p and f1 in t. ans
5 some e: F1R &amp;t. aes | let f1 =e. src ,r=e. trg | f1 in t. ans and r in ( t. source . nodes -t.</p>
      <p>dns)
Now we use the following lemma to prove that the decomposition is valid.
Lemma 1. Assume a pattern L is divided into two sub-patterns L1 and L2
where L1 ∪ L2 = L and L1 ∩ L2 = ΔL containing unique elements. In addition,
the source and target nodes of the edges contained by ΔL are also contained by
ΔL. We can prove that G has a match of L iff G has matches of g1:L1→G and
g2:L2→G, where g1|ΔL = g2|ΔL.</p>
      <p>P⇐rool1f.:Δ⇒L→SLt1r,alig2:hΔtfLo→rwLa2rdare the two inclusion maps. Due to the l1 Δ(1L) l2
assumptions, the square (1) in the right figure is a pushout. L1 L L2
Since g1|ΔL = g2|ΔL, we can get l1; g1 = l2; g2. Therefore, g1!g g2
there is a unique map !g:L→G. G
In the new encoding procedure we identify sub-patterns sharing the same
unique elements. In this way, long expressions for the pattern matching are
decomposed into sub-expressions, thus gaining better translation time.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Annotation in Transformation Systems</title>
      <p>In this section, we use annotations to specify state information in the metamodel
and the transformation rules. The encoding procedure is changed
correspondingly. The complexity of the metamodel is decreased since we reduced the amount
of signatures and constraints.
5.1</p>
      <sec id="sec-5-1">
        <title>Changes of Metamodel and Rules</title>
        <p>
          In Section 2, arrows (e.g. nonActive, start ) and nodes (e.g. F0 ) were used to
specify the states of a process. In this way, complex relations appeared in the
models. Furthermore, we needed to add extra constraints to correctly specify
states; the metamodel in Figure 1 had 28 constraints. In order to reduce the
number of the signatures and constraints, we use annotations to specify the
[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]
R
[inj][surj]
:T
:T
:T
:R
:R
:R
:R
:R
        </p>
        <p>R
&lt;active&gt; :R
&lt;F1&gt; :P
&lt;non1&lt;A:PscettivTeu&gt;rn&gt;</p>
        <p>
          :T
2:P
&lt;check&gt;
:P :T
&lt;check&gt;
&lt;crit&gt; :T
:P :R
&lt;F2&gt;
&lt;nonActive&gt; :R
&lt;F0&gt; :P
&lt;start&gt;
:R
:R
state information; the new metamodel contains only 10 constraints. A similar
technique was used in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ] to specify states of workflow instances.
        </p>
        <p>Fig. 3 shows the metamodel using the annotation technique. The nodes R,
P , T are the same as in Fig. 1. Annotations, e.g. &lt;nonActive&gt;, &lt;Active&gt; and &lt;F1&gt;,
are used to specify state information instead of graph structures (like nodes and
edges). We use three groups of annotations; for instance the group &lt;Flag&gt; with
three annotations &lt;F0&gt;, &lt;F1&gt; and &lt;F2&gt;. Each group has an applicable type t in
the metamodel. In an instance, each element typed by t can be marked with
only one annotation from the group. In the example, all the annotation groups
can be applied to instances of the type P .</p>
        <p>
          Since the transformation rules in a model transformation system are defined
based on the metamodel, changing the metamodel requires also changing the
transformation rules. Different from the transformation rules in Section 2, the
rules are now defined with constraints as shown in Table 2. This implies that
we need to use constraint-aware model transformations as detailed in [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ]. We
use colors to denote whether an element is deleted (red), added (green) or not
changed (black). The rules are almost the same as in Section 2; the difference is
that the structures representing state information are replaced with annotations.
1. In each annotation group AG, each annotation is indexed with a unique
number. For each AG, an edge signature SE
AG is created, where its src field
is N , the applicable type of the group; while the trg field is the corresponding
signature index. The edge signature encodes that a node is marked with an
annotation from the AG.
2. The signature Graph contains implicit elements Int and SE
AG besides explicit
elements Nodei and Edgej , as shown in line 2 in the listing above.
        </p>
        <p>The three AG in the metamodel in Fig. 3 are encoded as follows:
1 sig AP_Flag { src : one P , trg: one Int} {trg &gt;=0 and trg &lt;2}
2 sig AP_At { src : one P , trg: one Int} { trg &gt;=0 and trg &lt;4}
3 sig AP_IsActive{ src : one P , trg: one Int } {trg &gt;=0 and trg &lt;3}
4 sig Graph { nodes : set P+R+T+ Int , edges : set PR + TP + TR + AP_Flag + AP_At + AP_IsActive}
6</p>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Experiments and Results</title>
      <p>In this section, we present experiments to study how the three techniques tackle
the scalability problem and improve the performance. The first experiment shows
how the change of encoding affects the scalability. The last two experiments show
the effect of each optimization separately (see Table 3). All the experiments
perform conformance verification and are executed on an Intel R CoreTMi5-2410M
@2.30GHz*4 machine with 4GB RAM. The left column shows the scope, and
each group of 3 columns shows the result of applying the techniques. Since the
Alloy Analyzer uses SAT solver, we present the time cost for translation from
Alloy specification to a SAT problem (TR), the verification time to solve the
SAT problem (VE) and the total time (TO). Note that the table shows the total
time for verifying all the constraints.</p>
      <p>The results show that after changing the encoding procedure the approach
scales better since we can verify the transformation system for larger scopes
(even larger than 14). The results also indicate that the verification with the
new encoding procedure is time consuming with large scopes; e.g. with scope 14
the TR is 33.8 minutes while the VE of is 8.5 minutes for all the 28 constraints.</p>
      <p>With the decomposition technique, VE decreases to 30 seconds and the TR
is around 3 minutes for the 28 constraints. The annotation technique shows even
better performance: since the annotation approach reduces the constraints in the
metamodel from 28 to 10, within scope 14, the TR reduces to 10125 ms, while
the VE decreases to 16041ms for the 10 constraints.</p>
      <p>Scope</p>
      <p>Note that although the decomposition technique does not lead to as good
performance as application of annotation, it is more generic in the sense that
it could be applied to any model transformation system. But the annotation
approach can only be used when state information is present in the system.</p>
    </sec>
    <sec id="sec-7">
      <title>Related Work</title>
      <p>
        The literature related to the verification of model transformation systems is
becoming abundant. Some works propose verification approaches specialized for
specific languages. For example, verification of DSLTrans [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and ATL
transformation [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] are studied in [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ], respectively. Both languages are
terminating and confluent by nature. Because of this, both works verify model syntax
relations [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], which verify whether certain elements of the source model have
been transformed into elements of the target model. Different from these works,
our approach applies for verification of graph-based model transformations and
properties without being restricted to a certain transformation language.
      </p>
      <p>
        GROOVE [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] verifies graph-based model transformations using model
checking. In this approach, the initial state must be given and it works only for finite
state spaces. In addition, it encounters the state space explosion problem which
is well-known in model checking. Simone et al. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] uses relational structures to
encode graph grammars and FOL to encode graph transformations. In this way,
they provide a formal verification framework to reason about graph grammars
using mathematical induction, which needs mathematical knowledge. Guerra et
al. [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] proposed an automatic verification approach based on visual contract. In
this approach, test input models are generated by a constraint solver and
properties specified as contracts are verified by their algorithm on those input models.
Similarly, our work use constraint solver techniques and is input independent [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
By contrast, the approaches with constraint solvers are incomplete in the sense
that the properties are verified within a certain coverage of instances. However,
it can be used to quickly find bugs in a system and provide feedbacks about
which parts of the system cause the errors. Furthermore, we do not build the
whole state space. This avoids the state space explosion problem which the model
checking approaches encounter. There are also several previous works [
        <xref ref-type="bibr" rid="ref3 ref4 ref9">3,4,9</xref>
        ] for
verification of transformation systems with Alloy. But they only give encoding
of specific examples, without offering a general encoding procedure.
8
      </p>
    </sec>
    <sec id="sec-8">
      <title>Conclusion and Future Work</title>
      <p>
        In this paper we have presented an extension of our previous work [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] to tackle
scalability and performance issues by employing three techniques: changing the
encoding procedure, decomposing patterns into sub-patterns and applying
annotation to represent state information. The experimental results show that the
techniques improve the scalability and performance (i.e. translation and
verification time). In the future we will examine how the approach can be used to verify
other properties like liveness, deadlock, etc. Furthermore, more cases will be
examined to study the effects of the optimization techniques and evaluate how the
approach performs for more complex model transformation systems. Currently,
we encode direct model transformations applying only one rule, but in future
we would like to encode model transformations which apply rules concurrently
(composition of direct model transformations).
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Alloy</surname>
          </string-name>
          . Project Web Site. http://alloy.mit.edu/community/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <given-names>M.</given-names>
            <surname>Amrani</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lúcio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Selim</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Combemale</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Dingel</surname>
          </string-name>
          ,
          <string-name>
            <given-names>H.</given-names>
            <surname>Vangheluwe</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y. L.</given-names>
            <surname>Traon</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. R.</given-names>
            <surname>Cordy</surname>
          </string-name>
          . J.r.:
          <article-title>A tridimensional approach for studying the formal verification of model transformations</article-title>
          .
          <source>In Proc. of VOLT</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <given-names>K.</given-names>
            <surname>Anastasakis</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Bordbar</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J. M.</given-names>
            <surname>Küster</surname>
          </string-name>
          .
          <article-title>Analysis of Model Transformations via Alloy</article-title>
          .
          <source>In Proc. of MoDeVVa</source>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <given-names>L.</given-names>
            <surname>Baresi</surname>
          </string-name>
          and
          <string-name>
            <given-names>P.</given-names>
            <surname>Spoletini</surname>
          </string-name>
          .
          <article-title>On the Use of Alloy to Analyze Graph Transformation Systems</article-title>
          .
          <source>In Proc. of ICGT</source>
          ,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>M.</given-names>
            <surname>Barr</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Wells</surname>
          </string-name>
          .
          <source>Category Theory for Computing Science (2nd Edition)</source>
          . Prentice-Hall, Inc.,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <given-names>B.</given-names>
            <surname>Barroca</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Lucio</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.</given-names>
            <surname>Amaral</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Félix</surname>
          </string-name>
          , and
          <string-name>
            <given-names>V.</given-names>
            <surname>Sousa. DSLTrans: A Turing Incomplete</surname>
          </string-name>
          <article-title>Transformation Language</article-title>
          .
          <source>In Proc. of SLE</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <given-names>F.</given-names>
            <surname>Büttner</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Egea</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Cabot</surname>
          </string-name>
          .
          <article-title>On verifying ATL transformations using offthe-shelf SMT solvers</article-title>
          .
          <source>In ACM/IEEE MODELS</source>
          <year>2012</year>
          , LNCS,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <given-names>S. A. da</given-names>
            <surname>Costa</surname>
          </string-name>
          and
          <string-name>
            <given-names>L.</given-names>
            <surname>Ribeiro</surname>
          </string-name>
          .
          <article-title>Verification of graph grammars using a logical approach</article-title>
          .
          <source>Science of Computer Programming</source>
          ,
          <volume>77</volume>
          :
          <fpage>480</fpage>
          -
          <lpage>504</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Demirezen</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Mernik</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Gray</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Bryant</surname>
          </string-name>
          .
          <article-title>Verification of DSMLs Using Graph Transformation: A Case Study with Alloy</article-title>
          .
          <source>In Proc. of MoDeVVa</source>
          ,
          <year>2009</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <given-names>E. W.</given-names>
            <surname>Dijkstra</surname>
          </string-name>
          .
          <article-title>Solution of a Problem in Concurrent Programming Control</article-title>
          .
          <source>Commun. ACM</source>
          ,
          <year>1965</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Diskin</surname>
          </string-name>
          .
          <article-title>Encyclopedia of Database Technologies and Applications, chapter Mathematics of Generic Specifications for Model Management I and II</article-title>
          . Information Science Reference,
          <year>2005</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <given-names>Z.</given-names>
            <surname>Diskin</surname>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Kadish</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Piessens</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Johnson</surname>
          </string-name>
          .
          <article-title>Universal Arrow Foundations for Visual Modeling</article-title>
          .
          <source>In Diagrams 2000: 1st International Conference on Diagrammatic Representation and Inference</source>
          ,
          <year>2000</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. H.
          <string-name>
            <surname>Ehrig</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          <string-name>
            <surname>Ehrig</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          <string-name>
            <surname>Prange</surname>
            , and
            <given-names>G.</given-names>
          </string-name>
          <string-name>
            <surname>Taentzer</surname>
          </string-name>
          .
          <source>Fundamentals of Algebraic Graph Transformation</source>
          . Springer. Springer-Verlag New York, Inc.,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>A. H. Ghamarian</surname>
          </string-name>
          ,
          <string-name>
            <surname>M. J. de Mol</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          <string-name>
            <surname>Rensink</surname>
            , E. Zambon, and
            <given-names>M. V.</given-names>
          </string-name>
          <string-name>
            <surname>Zimakova</surname>
          </string-name>
          .
          <article-title>Modelling and analysis using GROOVE</article-title>
          .
          <source>International journal on software tools for technology transfer</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. E. Guerra, 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>Schönböck</surname>
          </string-name>
          , and
          <string-name>
            <given-names>W.</given-names>
            <surname>Schwinger</surname>
          </string-name>
          .
          <source>Automated Verification of Model Transformations Based on Visual Contracts. Autom. Softw. Eng.</source>
          ,
          <volume>20</volume>
          (
          <issue>1</issue>
          ),
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <given-names>D.</given-names>
            <surname>Jackson</surname>
          </string-name>
          .
          <article-title>Software Abstractions: Logic, Language, and Analysis</article-title>
          . The MIT Press,
          <year>2006</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>F.</given-names>
            <surname>Jouault</surname>
          </string-name>
          ,
          <string-name>
            <given-names>F.</given-names>
            <surname>Allilaire</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Bézivin</surname>
          </string-name>
          ,
          <string-name>
            <surname>and I. Kurtev.</surname>
          </string-name>
          <article-title>ATL: A model transformation tool</article-title>
          . Sci. Comput. Program.,
          <volume>72</volume>
          (
          <issue>1-2</issue>
          ),
          <year>2008</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>J. D. S. M. Levi Lúcio</surname>
            and
            <given-names>H.</given-names>
          </string-name>
          <string-name>
            <surname>Vangheluwe</surname>
          </string-name>
          .
          <article-title>A technique for symbolically verifying properties of graph-based model transformations</article-title>
          .
          <source>Technical Report SCOCS-TR2012</source>
          , McGill University,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <given-names>A.</given-names>
            <surname>Rutle</surname>
          </string-name>
          .
          <article-title>Diagram Predicate Framework: A Formal Approach to MDE</article-title>
          .
          <source>PhD thesis</source>
          , Department of Informatics, University of Bergen,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <given-names>A.</given-names>
            <surname>Rutle</surname>
          </string-name>
          , W. MacCaull,
          <string-name>
            <given-names>H.</given-names>
            <surname>Wang</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lamo</surname>
          </string-name>
          .
          <article-title>A metamodelling approach to behavioural modelling</article-title>
          .
          <source>In Proc. of BM-FA</source>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <given-names>A.</given-names>
            <surname>Rutle</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Rossini</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lamo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>U.</given-names>
            <surname>Wolter</surname>
          </string-name>
          .
          <article-title>A formal approach to the specification and transformation of constraints in MDE</article-title>
          . JLAP,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <given-names>X.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Y.</given-names>
            <surname>Lamo</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Büttner</surname>
          </string-name>
          .
          <article-title>Verification of graph-based model transformation using Alloy</article-title>
          .
          <source>In Proc. of GTVMT</source>
          ,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>