<!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>Semantic Di erencing of Activity Diagrams by a Translation into Finite Automata</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Oliver Kautz</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bernhard Rumpe</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>RWTH Aachen University</institution>
          ,
          <addr-line>Aachen</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Activity diagrams are widely used in the business process modeling domain, for software documentation, and code generation. Revealing the semantic di erences between activity diagrams is crucial for model evolution analysis to explore design alternatives and to detect errors. Existing approaches to semantic di erencing of activity diagrams are based on complex and hard to understand translations to other problem spaces. The translations are implicit in the sense that they transform ADs to a model in the input format of a model checker, which again encodes another formalism. We present a simple and explicit translation from activity diagrams to nite automata and de ne the semantics of activity diagrams as the words recognized by these automata. This enables semantic di erencing of activity diagrams via language inclusion checking between nite automata. We formally de ne the translation and present an implementation. The resulting simple and explicit translation increases comprehensibility of the semantic di erencing operator and reduces implementation e orts.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Activity diagrams (ADs) describe how an activity or a process needs to be
performed. This paper considers an expressive variant of ADs with actions,
branching fragments modeled with decision and merge nodes, and parallel fragments
modeled with fork and join nodes. We use the standard notations of the UML [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
An action describes a single task to be executed as part of an activity. Control
ow nodes describe alternative (decision, merge) and parallel (fork, join)
execution branches within an activity. An initial node marks where an activity starts
and a nal node marks where an activity ends. Transitions describe how the
execution of an AD proceeds after visiting a node. We formally de ne the
abstract syntax of ADs and an operational semantics for ADs via a translation to
nite automata. The trace semantics of an AD is then de ned as the language
recognized by the automaton resulting from translating the AD. The semantic
di erence between two ADs ad1 and ad2 is de ned as the set (ad1; ad2) of all
traces in the semantics of the AD ad1 that are no members in the semantics of
ad2. It therefore contains all execution traces possible in ad1 that are not
possible in ad2. When interpreting ad1 as a successor version of ad2, the semantic
di erence (ad1; ad2) contains the execution traces that have been added during
the evolution from ad2 to ad1. Vice versa, (ad2; ad1) contains the execution
traces that have been removed during the evolution to ad1. The semantic
difference can therefore e ectively be used during AD evolution analysis to detect
whether execution traces have been removed or new execution traces have been
added between two successor versions. This analysis is in general not possible
with syntactic approaches to AD di erencing [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], which reveal the syntactic
elements that have been changed during the evolution.
      </p>
      <p>
        In contrast to previous work [
        <xref ref-type="bibr" rid="ref11 ref12 ref3">3,11,12</xref>
        ], this paper's translation explicitly maps
ADs to nite automata and does not de ne an implicit mapping via a translation
from an AD to a model in the input format of a model checker, which encodes
a nite automaton with a semantics based on recognized words. Through the
explicit mapping our translation is more simple and thus easier to understand.
The translation is further less complex, which reduces implementation e orts. A
main enabler for the complexity reduction is that this paper's approach uses a
smaller subclass of UML ADs [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] than previous work [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>
        We formally de ne the translation and present an implementation based on
the language workbench MontiCore [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and the nite automaton language
inclusion checking tool RABIT [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Our contribution is a method for semantic
di erencing of ADs based on a simple as well as easy to understand and
implement translation from ADs to nite automata.
      </p>
      <p>Section 2 presents motivating examples, before Section 3 introduces
preliminaries and notations as used in this paper. Then, Section 4 presents an abstract
syntax for ADs, an operational semantics based on nite automata, a
denotational semantics based on execution traces, and semantic di erencing of ADs.
Afterwards, Section 5 presents an implementation of the di erencing operator
as well as several example applications. Section 7 concludes.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Examples</title>
      <p>
        This section motivates this paper's method with four example ADs previously
presented in [
        <xref ref-type="bibr" rid="ref10 ref11">10,11</xref>
        ].
2.1
      </p>
      <p>
        Example 1
Figure 1 depicts two ADs from [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The ADs describe work ows of a
company to be executed when hiring new employees. The AD hire.v1 describes the
company's original work ow. The AD hire.v2 describes a successor version.
      </p>
      <p>In the original work ow, the employee is rst registered. Then, the employee
either directly gets assigned a project before her payment is authorized, or the
employee gets a welcome package before her contact data is added to the
company website, she is assigned a project, she is interviewed by the manager, and
gets a manager report, before her payment is nally authorized. The actions of
adding the employee to the company website and assigning the employee to a
project can be executed independent of each other, i.e., there is no strict order</p>
      <p>Manager
Interview</p>
      <p>Manager</p>
      <p>Report
Manager
Interview
in which the two actions have to be executed. The company decides to
explicate that new employees must receive keys to enter the building. The company
thus changes the work ow hire.v1 by adding the action labeled Assign Keys
as depicted in the bottom part of Figure 1.</p>
      <p>A manager wants to understand how the syntactic changes impact the AD's
possible execution traces. Using our method for semantic di erencing reveals that
there are possible execution traces of hire.v1 that are not possible in hire.v2
and vice versa. Thus, execution traces have been removed and new execution
traces have been added. The manager gets presented that Register; Get Wel:
Package; Assign to Project; Add to Website; Manager Interview; Manager
Report; Authorize Payment is a possible execution trace of hire.v1 that is
no execution trace of hire.v2. This execution trace has been removed during
the evolution of the work ow. Vice versa, the manager is presented an execution
trace including the action Assign Keys, which is possible in hire.v2 and not
possible in hire.v1. This execution trace has been added during the evolution
from hire.v1 to hire.v2.
2.2</p>
      <p>
        Example 2
Figure 2 depicts two ADs previously presented in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. The ADs model work ows
to be performed in an insurance company in response to an incoming claim.
The AD wf1 models the company's original work ow. After some time, the
company decides to modify the work ow to wf2. A manager is interested in the
semantic di erence between the new and the original work ow. She thus uses
our framework and gets presented that Record Claim; Check Claim; Reject
Claim, Send Declinature is a possible execution trace of the new work ow that
is not possible in the original work ow. Vice versa, the manager is interested if
execution traces have been removed during the evolution from wf1 to wf2. She
thus uses our framework again and gets presented that Record Claim; Check
      </p>
      <p>Record
Claim</p>
      <p>Check</p>
      <p>Claim
Record
Claim</p>
      <p>Check</p>
      <p>Claim
M1</p>
      <p>D1
Retrieve
Add. Data</p>
      <p>Settle
Claim
Reject
Claim
Settle
Claim
Reject
Claim</p>
      <p>Send</p>
      <p>Letter
Calculate
Loss Amount</p>
      <p>Recalc.</p>
      <p>Cost. Contr.</p>
      <p>Send
Declinature</p>
      <p>Update
Cost. Record</p>
      <p>Calculate
Loss Amount</p>
      <p>Recalc.</p>
      <p>Cost. Contr.</p>
      <p>Send</p>
      <p>Letter</p>
      <p>Send
Declinature</p>
      <p>Call
Costumer</p>
      <p>Payout
Close
Claim</p>
      <p>Payout
wf1
wf2</p>
      <p>Claim; Reject Claim, Send Declinature, Update Cost: Record, Close Claim
is a possible execution trace of wf1 that is not possible in wf2.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Preliminaries</title>
      <p>
        This section introduces the notations for "-NFAs (e.g. [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]) as used in this paper.
The empty word is denoted by ". An alphabet is a non-empty nite set A that
does not contain the empty word " 2= A. We denote by A the set of all nite
sequences (words) over an alphabet A, which contains the empty word " 2 A .
De nition 1. A non-deterministic nite automaton with epsilon moves ("-NFA)
is a tuple (Q; ; ; Q0; F ) where
{ Q is a nite set of states,
{ is an alphabet,
{ Q ( [ f"g) Q is a transition relation,
{ q0 2 Q is an initial state, and
{ F Q is a set of nal states.
      </p>
      <p>Let A = (Q; ; ; Q0; F ) be an NFA. For all q 2 Q, let EA(q) Q denote the
epsilon closure of q in A, i.e., the set of states reachable from q in A by following
transitions from labeled with ". It is de ned as the smallest set satisfying
q 2 EA(q) and 8p 2 EA(q) : 8(s; a; t) 2 : (s = p ^ a = ") ) t 2 EA(q).</p>
      <p>Let n 2 N. The automaton A accepts a word w = w1; w2; :::wn 2
exists a nite sequence of states r = r0; r1; :::; rn 2 Q satisfying
i there
1. r0 2 EA(q0),
2. ri+1 2 EA(r0) where r0 2 Q such that (ri; ai+1; r0) 2
3. rn 2 F .
for all 0
i &lt; n,</p>
      <p>
        The language recognized by A is de ned as L(A) = fw 2 j A accepts wg.
There exist well-known algorithms for checking if the language recognized by an
"-NFA is included in the language recognized by another "-NFA [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. We reduce
semantic di erencing of ADs to language inclusion checking between "-NFAs.
4
      </p>
    </sec>
    <sec id="sec-4">
      <title>Activity Diagrams</title>
      <p>This section de nes the syntax and semantics of ADs as used in this paper. To
this e ect, we de ne the abstract syntax of ADs and a translation from ADs to
"-NFAs. The semantics of an AD is then de ned as the language recognized by
the "-NFA obtained from translating the AD.
4.1</p>
      <p>Activity Diagram Syntax
The abstract syntax of ADs is de ned as follows.</p>
      <p>De nition 2. An AD is a tuple (L; N; A; i; F; XOR; AN D; T; l) where
{ L is an alphabet containing action labels,
{ N is a nite set of nodes,
{ A N is a set of action nodes,
{ i 2 N is the initial node,
{ F N is a non-empty set of nal nodes,
{ XOR N is a set of decision and merge nodes,
{ AN D N is a set of fork and join nodes,
{ T N N is the transition relation,
{ l : N ! L [ f"g is the node labeling function that is required to map each
control- ow node to the empty word, i.e., 8n 2 N n A : l(n) = ",
{ fA; fig; F; XOR; AN Dg is a partition of N .</p>
      <p>For an AD ad = (L; N; A; i; F; XOR; AN D; T; l) and all nodes n 2 N , we
denote by a+d(n) d=ef f(n; x) T j x 2 N g the set of outgoing transitions starting
in n. Similarly, ad(n) denotes the set of incoming transitions ending in n.</p>
      <p>The AD hire:v1 (cf. Figure 1), for instance, can be formally de ned by
hire:v1 = (L; N; A; i; F; XOR; AN D; T; l) with
{ labels L = fRegister; Assign to Project; Get Wel: Package; Add to</p>
      <p>Website; Manager Interview; Manager Report; Authorize Paymentg,
{ nodes N = fR; AT P 1; GW P; AT P 2; AT W; M I; M R; AP; D1; M 1; F 1; J 1; i; f g,
{ action nodes A = fR; AT P 1; GW P; AT P 2; AT W; M I; M R; AP g,
{ initial node i,
{ nal nodes F = ff g,
{ decision and merge nodes XOR = fD1; M 1g,
{ fork and join nodes AN D = fF 1; J 1g,
{ the transition relation T = f(i; R); (R; D1); (D1; AT P 1); (AT P 1; M 1);
(D1; GW P ); (GW P; F 1); (F 1; AT P 2); (F 1; AT W ); (AT P 2; J 1); (AT W; J 1);
(J 1; M I); (M I; M R); (M R; M 1); (M 1; AP ); (AP; f )g, and
{ labeling function l with l(R) = Register, l(AT P 1) = Assign to Project,
l(GW P ) = Get Wel: Package, l(AT P 2) = Assign to Project, l(AT W ) =
Add to Website, l(M I) = Manager Interview, l(M R) = Manager Report,
l(AP ) = Authorize Payment, and l(D1) = l(M 1) = l(F 1) = l(J 1) = l(i) =
l(f ) = ".</p>
      <p>
        Usually, the following (or even stronger) well-formedness rules apply (e.g. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]):
De nition 3. An AD is called well-formed if, and only if, the following
conditions are satis ed:
{ every action node has exactly one incoming and one outgoing transition,
{ every XOR-node (decision or merge) and every AND-node (fork or join) has
at most one incoming transition or at most one outgoing transition,
{ the initial node has no incoming and exactly one outgoing transition,
{ every nal node has no outgoing and exactly one incoming transition.
4.2
      </p>
      <p>Activity Diagram Semantics
This section explicitly de nes a mapping from ADs to "-NFAs. The "-NFA
resulting from translating an AD encodes exactly the traces modeled by the AD
under the assumption that exactly one action can be performed at a point in
time. Stated di erently, no two action can be performed simultaneously. The
semantics of an AD is then de ned as the language recognized by the "-NFA that
it is mapped to. ADs contain action labels whereas "-NFAs contain transition
labels. The mapping therefore inverts nodes and transitions of an AD during the
translation, i.e., the nodes of the AD correspond to transitions in the "-NFA and
the transitions in the AD correspond to the "-NFA's states. The state set of the
automaton is given by the powerset of the set of transitions of the AD. Using the
powerset is necessary as an AD can reside in several nodes simultaneously (after
visiting a fork node). The set of transition labels in the "-NFA is equal to the
set of node labels in the AD. The initial state of the automaton is the singleton
set containing the transition that has the initial AD node as source node. The
nal states are exactly the singleton sets containing a transition that has a nal
AD node as target node. The transition relation is de ned as the smallest set
of transitions satisfying two conditions. The rst condition encodes the AD's
behavior in case it executes a node that is neither a join nor a fork node. If an
action node is executed, then the AD moves out of the executed action via the
action's outgoing transition to the next node and outputs the action node's label.
The AD's execution state regarding other nodes remains unchanged. Similarly,
if the AD proceeds through a decision or merge node, its state regarding the
other nodes remains unchanged and it outputs nothing (the empty word "). The
situation is di erent for fork and join nodes: An AD can only proceed through
a join or fork node if its state contains all nodes that have a transition to the
node. Further, if the AD proceeds through a fork or join node, it leaves all states
that precede the node and enters all states that the node leads to.
De nition 4. Let ad = (L; N; A; i; F; XOR; AN D; T; l) be a well-formed AD.
The "-NFA associated to ad is de ned as nf a(ad) = (Q; ; ; q0; F 0) where
{ Q = P(T ),
{ = L,
{ q0 = f(s; t) 2 T j s = ig,
{ F 0 = ff(s; t)g T j t 2 F g, and
{ Q ( [ f"g) Q is the smallest set satisfying the following conditions:
Move other than fork or join:
8X T : 8n1; n2; n3 2 N : ((n1; n2) 2 X ^ (n2; n3) 2 T ^ n2 2= AN D) )
(X; l(n2); (X n f(n1; n2)g) [ f(n2; n3)g) 2
Move fork or join:
8X T : 8j 2 AN D : ( ad(j) X) ) (X; "; (X n ad(j)) [ a+d(j)) 2
The trace semantics sem(ad) of an AD ad is de ned as the language
recognized by the "-NFA associated to the AD ad, i.e., sem(ad) d=ef L(nf a(ad)).</p>
      <p>As an example, Figure 3 depicts the "-NFA obtained from translating the
AD hire.v1 (graphically illustrated in Figure 1 and formally de ned in
subsection 4.1) after removing the states and transitions that are not reachable from
the initial state. A possible execution trace of the AD is, for example, given by
Register; Assign to Project; Authorize Payment 2 sem(hire:v1).
4.3</p>
      <p>Semantic Di erencing of Activity Diagrams
The (asymmetric) semantic di erence (ad1; ad2) between two ADs ad1, ad2
is de ned as the set of traces possible in the AD ad1 that are not possible in</p>
      <p>
        AD
hire.v1
hire.v2
wf1
wf2
the AD ad2, i.e., (ad1; ad2) = sem(ad1) n sem(ad2). With the explicit
mapping from ADs to "-NFAs, reuse of well-known constructions from automata
theory [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] is possible. It holds that (ad1; ad2) = ; i sem(ad1) sem(ad2),
which is again equivalent to L(nf a(ad1)) L(nf a(ad2)). We can thus reuse
well-known techniques for language inclusion checking and counterexample
generation for "-NFAs, which are two well-studied decidable problems. For example,
semantic di erencing of hire.v1 and hire.v2 yields that Register; Get Wel:;
Package; Assign to Project; Add to Website; Manager Interview; Manager
Report; Authorize Payment 2 (hire:v1; hire:v2) is an execution trace of the
AD hire.v1 that is no execution trace of the AD hire.v2.
      </p>
    </sec>
    <sec id="sec-5">
      <title>5 Implementation and Usage</title>
      <p>
        We have implemented a prototype for the semantic di erencing operator using
the language workbench MontiCore [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] and the nite automata language
inclusion checking tool RABBIT [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. We developed a MontiCore modeling language
for ADs, and a translation to nite automata in the BA format, which is the
input format of RABIT. The tool as well as this paper's examples are available
online [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]. The left table in Figure 4 summarizes the sizes of the NFAs
resulting from translating the ADs presented in Section 2 after eliminating
epsilontransitions as well as removing unreachable states and transitions. The right
table summarizes the computation times reported by RABIT after applying the
semantic di erencing operator. All checks were executed using RABIT 2.4 on a
computer with a 3.0 GHz Intel Core i7 CPU, 16 GB Ram, and Windows 10. The
NFA obtained from translating the AD wf2, for example, contains 27 states and
76 transitions that are reachable from the initial state (cf. left table in Figure 4).
Checking whether (wf2; wf1) = ; and computing a witness w 2 (wf2; wf1)
took 173ms (cf. right table in Figure 4). We conclude that this paper's
translation provides promising results. However, the tool was only applied to a small set
of ADs. Therefore, the results are not generalizable: The tool's execution time
may strongly di er when increasing the size of the input ADs.
6
      </p>
    </sec>
    <sec id="sec-6">
      <title>Related Work</title>
      <p>
        Semantic di erencing of ADs is introduced in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. In this approach, the
input ADs are translated to models in the input language of the SMV model
checker [
        <xref ref-type="bibr" rid="ref14 ref17">14,17</xref>
        ] using the translation described in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. These models then
encode nite automata that correspond to the ADs. The translation from ADs to
SVM models is rather complicated. Further, the overhead produced by the
translation steps from ADs to SVM models and from SMV models to nite automata
causes additional overhead in contrast to directly translating ADs to nite
automata. The overhead adds unnecessary complexity to the translation and thus
makes the translation hard to understand. In contrast, our translation from ADs
to nite automata is direct and simple and therefore easy to understand. The
framework presented in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] has been extended in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] for summarizing elements
in the semantic di erence between two ADs based on equivalence classes de ned
on the set of possible traces. The idea is to present only one representative of
an equivalence class to a user. The summarization technique is easily integrable
into this paper's framework. The framework presented in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] can be used to
detect which syntactic changes between two di erent versions of an AD induce
a concrete witness. The application to ADs as presented in [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] is based on
the semantic di erencing operator of [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Using the techniques of [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] with the
semantic di erencing method presented in this paper is directly possible. The
translation from ADs to SMV models of [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] is inspired by a similar translation
de ned in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The translation de ned in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is also more complicated than our
direct translation to nite automata. Further, the scope of [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] is symbolic model
checking of ADs, whereas this paper focuses on semantic di erencing.
      </p>
      <p>
        Other direct translations from ADs and business process models to nite
automata focus on deadlock detection [
        <xref ref-type="bibr" rid="ref19 ref20">19,20</xref>
        ]. However, the translations do not
result in automata that represent the set of execution traces of the input ADs.
Further, the translations are more complex than our translation. With minor
adjustments, this paper's translation can also be used for deadlock detection by
changing the accepting states of an automaton resulting from translating an AD.
      </p>
      <p>
        Other semantics de nitions for ADs are based on Petri nets [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], on the
system model [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] for characterizing object oriented systems as de ned in [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], or
on the notion of step [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] inspired by the popular STATEMATE semantics for
statecharts [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In contrast, this paper de nes an operational semantics based
on a mapping to "-NFAs and a denotational semantics based on the language
recognized by the resulting "-NFAs.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>We formally de ned an abstract syntax of an AD variant. Based on this, we
presented an operational semantics for ADs via a translation from ADs to "-NFAs
and a denotational semantics given by the language recognized by these "-NFAs.
This enabled to reuse well-known algorithms for language inclusion checking
between "-NFAs for semantic di erencing of ADs. We presented a tool
prototype and applied the semantic di erencing operator to four example ADs, which
showed that the di erencing operator yields promising results. The translation
enables a comprehensive and easy to implement method for semantic di erencing
of ADs, which ultimately facilitates semantic AD evolution analysis.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>van der Aalst</surname>
            ,
            <given-names>W.M.P.</given-names>
          </string-name>
          :
          <article-title>Formalization and Veri cation of Event-driven Process Chains</article-title>
          .
          <source>Information &amp; Software Technology</source>
          <volume>41</volume>
          (
          <issue>10</issue>
          ) (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Broy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cengarle</surname>
            ,
            <given-names>M.V.</given-names>
          </string-name>
          , Gronniger, H.,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>De nition of the UML System Model</article-title>
          .
          <source>In: UML 2 Semantics and Applications</source>
          . John Wiley &amp; Sons (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Eshuis</surname>
          </string-name>
          , R.:
          <article-title>Symbolic Model Checking of UML Activity Diagrams</article-title>
          .
          <source>ACM Trans. Softw. Eng. Methodol</source>
          .
          <volume>15</volume>
          (
          <issue>1</issue>
          ) (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4. Gronniger, H.,
          <string-name>
            <surname>Rei</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Towards a Semantics of Activity Diagrams with Semantic Variation Points</article-title>
          .
          <source>In: Conference on Model Driven Engineering Languages and Systems (MODELS'10)</source>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. Object Management Group: OMG Uni ed
          <article-title>Modeling Language (OMG UML)</article-title>
          (May
          <year>2017</year>
          ), https://www.omg.org/spec/UML/About-UML/ [accessed 2018-
          <volume>06</volume>
          -19]
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Naamad</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>The STATEMATE Semantics of Statecharts</article-title>
          .
          <source>ACM Trans. Softw. Eng. Methodol</source>
          .
          <volume>5</volume>
          (
          <issue>4</issue>
          ) (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. Holldobler,
          <string-name>
            <given-names>K.</given-names>
            ,
            <surname>Rumpe</surname>
          </string-name>
          ,
          <string-name>
            <surname>B.</surname>
          </string-name>
          : MontiCore 5
          <string-name>
            <given-names>Language</given-names>
            <surname>Workbench Edition 2017. Aachener</surname>
          </string-name>
          Informatik-Berichte, Software Engineering, Shaker Verlag (
          <year>December 2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Hopcroft</surname>
            ,
            <given-names>J.E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Motwani</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ullman</surname>
            ,
            <given-names>J.D.</given-names>
          </string-name>
          :
          <article-title>Introduction to Automata Theory, Languages, and Computation (3rd Edition)</article-title>
          .
          <article-title>Addison-Wesley Longman Publishing Co</article-title>
          ., Inc., Boston, MA, USA (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Knieke</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Goltz</surname>
            ,
            <given-names>U.</given-names>
          </string-name>
          :
          <article-title>An Executable Semantics for UML 2 Activity Diagrams</article-title>
          .
          <source>In: Proceedings of the International Workshop on Formalization of Modeling Languages (FML'10)</source>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Maoz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ringert</surname>
            ,
            <given-names>J.O.:</given-names>
          </string-name>
          <article-title>A framework for relating syntactic and semantic model di erences</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          <volume>17</volume>
          (
          <year>July 2018</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Maoz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ringert</surname>
            ,
            <given-names>J.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>ADDi : Semantic Di erencing for Activity Diagrams</article-title>
          .
          <source>In: Conference on Foundations of Software Engineering</source>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Maoz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ringert</surname>
            ,
            <given-names>J.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>An Operational Semantics for Activity Diagrams using SMV</article-title>
          .
          <source>Tech. Rep. AIB-2011-07</source>
          , RWTH Aachen University (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Maoz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ringert</surname>
            ,
            <given-names>J.O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Summarizing Semantic Model Di erences</article-title>
          .
          <source>In: Models and Evolution Workshop</source>
          (ME'17)
          <string-name>
            <surname>at</surname>
            <given-names>MODELS</given-names>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>McMillan</surname>
            ,
            <given-names>K.L.</given-names>
          </string-name>
          :
          <article-title>Symbolic Model Checking</article-title>
          . Kluwer Academic Publishers (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15. RABIT Tool Homepage (
          <year>2018</year>
          ), http://http://www.languageinclusion.org/ [accessed 2018-
          <volume>06</volume>
          -20]
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Activity Diagram Semantic Di erencing Tool</surname>
          </string-name>
          (
          <year>2018</year>
          ), http://www.se-rwth.de/ materials/semdiff/ [accessed 2018-
          <volume>06</volume>
          -26]
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <given-names>SMV</given-names>
            <surname>Model Checker Homepage</surname>
          </string-name>
          (
          <year>2018</year>
          ), https://www.cs.cmu.edu/~modelcheck/ smv.html [accessed 2018-
          <volume>06</volume>
          -20]
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. Storrle, H.:
          <article-title>Semantics and Veri cation of Data Flow in UML 2.0 Activities</article-title>
          .
          <source>Electronic Notes in Theoretical Computer Science</source>
          <volume>127</volume>
          (
          <issue>4</issue>
          ) (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Sugunnasil</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Detecting deadlock in activity diagram using process automata</article-title>
          .
          <source>In: International Computer Science and Engineering Conference (ICSEC'16)</source>
          (
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Tantitharanukul</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sugunnasil</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jumpamule</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Detecting Deadlock and Multiple Termination in BPMN Model Using Process Automata</article-title>
          . In: International Confernce on Electrical Engineering/Electronics, Computer,
          <source>Telecommunications and Information Technology (ECTI'10)</source>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>