<!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>
      <journal-title-group>
        <journal-title>Open source fUML and Alf tools as of</journal-title>
      </journal-title-group>
    </journal-meta>
    <article-meta>
      <title-group>
        <article-title>On Open Source Tools for Behavioral Modeling and Analysis with fUML and Alf</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Zoltan Micskei</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Raimund-Andreas Konnerth</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Benedek Horvath</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Oszkar Semerath</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andras Voros</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Daniel Varro</string-name>
          <email>varrog@mit.bme.hu</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Budapest University of Technology and Economics Magyar tudosok krt.</institution>
          <addr-line>2., 1117, Budapest</addr-line>
          ,
          <country country="HU">Hungary</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2014</year>
      </pub-date>
      <volume>201</volume>
      <fpage>4</fpage>
      <lpage>07</lpage>
      <abstract>
        <p>Executable and well-de ned models are a cornerstone of model driven engineering. We are currently working on a transformation chain from UML models to formal veri cation tools. In the context of the UML language, the fUML and Alf speci cations o er a standardized way for the semantics of the basic model elements and a textual speci cation language. Open source modeling tools started to adapt these speci cations. However, their support is of varying degree. This paper summarizes our experiences with the open source tools regarding fUML and Alf support, and di erent model transformation technologies in order to analyse them with formal veri cation tools.</p>
      </abstract>
      <kwd-group>
        <kwd>fUML</kwd>
        <kwd>Alf</kwd>
        <kwd>tool</kwd>
        <kwd>open source</kwd>
        <kwd>veri cation</kwd>
        <kwd>MDE</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Model driven engineering (MDE) is changing software and systems development
in di erent application domains. In MDE, models are the primary artifacts from
which other artifacts (code, deployment descriptions, etc.) are generated [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
Thus MDE is based on modeling languages and transformations. However,
development processes and tools need to be adjusted to the MDE paradigm.
      </p>
      <p>
        The Uni ed Modeling Language (UML) is a general purpose, widely used
modeling language used for describing the di erent aspects of software systems.
It o ers several modeling notations to express not only the structure but the
behavior of the modeled system (e.g. with state machines, activities). But UML
is criticized because of the lack of a precise de nition of the language [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. For this
reason, the Object Management Group (OMG) created the Semantics of a
Foundational Subset for Executable UML Models (fUML) [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and Action Language
for Foundational UML (Alf ) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] speci cations. Together these speci cations
o er a precise semantic de nition of the basic static and dynamic language
elements and a textual notation, which are needed to have an executable system
model. Thus, fUML can be used as a basic building block in a UML-based MDE
approach [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>Some commercial MDE tools already o er an executable variant of UML.
Some of these are using fUML (e.g. No Magic's Cameo Simulation Toolkit for
MagicDraw) or are using other approaches (e.g. xtUML in the BridgePoint
modelling tool of Mentor Graphics). These tools are able to execute, debug and
transform UML behavioral models.</p>
      <p>Fortunately, more and more open source tools have started to include some
kind of executable UML functionality, and support for fUML or Alf. However,
due to the nature of open source, these developments are sometimes overlapping
and redundant, some projects are not active any more, and their technology
readiness level and documentation is uneven. Thus, if someone wants to engage
in a UML-based MDE project the following questions naturally arise.
1. What open source tools are available for fUML and Alf?
2. What are their maturity level?
3. How can the di erent tools be connected to solve a complex problem?</p>
      <p>We are currently working on a tool chain to provide veri cation of UML
behavioral models in the communication domain by transforming them to the
input of formal model checkers and back-annotating the results. The goal of the
veri cation is to prove the deadlock freedom of protocols. When developing the
initial prototypes, we tried to base our work on open source components for
fUML or Alf. This paper primarily aims at summarizing our experience of using
these open source components for model analysis purposes.</p>
      <p>Section 2 introduces our modeling and analysis approach, then collects the
fUML and Alf tools we are aware of. Section 3 details the avalilable
transformation technologies, and presents our Eclipse-based transformation prototype
implementation. Section 4 summarizes our experiences and some open issues
with the speci cations and the tooling.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Overview</title>
      <p>
        The goal of our project is to provide formal analysis for behavioral UML models
by transforming these models to the input languages of formal veri cation tools
(e.g. model checkers). We aim to use a combination of UML diagrams as input
to capture static and dynamic aspects. In order to facilitate the adaptation of
the tool chain to di erent back-end tools, we intend to use intermediate models
between the source engineering model and the target veri er model, which is
proposed in numerous model analysis approaches [
        <xref ref-type="bibr" rid="ref4 ref6">4,6</xref>
        ]. In this paper, we propose
to use existing standard UML behavioral speci cations (namely, fUML and Alf)
and open source tools to realize this approach.
2.1
      </p>
      <sec id="sec-2-1">
        <title>Open Source Tools for fUML and Alf</title>
        <p>
          The goal of the fUML speci cation of the OMG is to give a precise semantic
definition for a subset of UML. This subset includes parts of the classes, behaviors,
activities and actions packages of UML Superstructure, but does not include
state machines or sequence diagrams. The standardization including
composite structures (such as components, ports...) is ongoing [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]. The speci cation
        </p>
        <sec id="sec-2-1-1">
          <title>Tool</title>
          <p>fUML Ref. Impl.
L</p>
        </sec>
        <sec id="sec-2-1-2">
          <title>MMoka</title>
          <p>fUMoliz
lfAlf Ref. Impl. 0.4.0
APapyrus Alf Editor</p>
        </sec>
        <sec id="sec-2-1-3">
          <title>Version Modi cation</title>
        </sec>
        <sec id="sec-2-1-4">
          <title>Platform</title>
        </sec>
        <sec id="sec-2-1-5">
          <title>Goal</title>
          <p>contains the de nition of (1) an abstract syntax for the subset of UML
Infrastructure/Superstructure, (2) an execution model for the operational semantics, (3)
Java language semantic de nitions for the behavior of the elements, (4) a model
library (functions for primitive types, channels), and (5) axiomatic semantics for
a base UML.</p>
          <p>The Action Language for Foundational UML (Alf) is a standardized textual
language for specifying executable behavior. It can be used to extend a graphical
UML model (e.g. to de ne actions or guards). However, it can also express
structural model elements, thus an entire UML model can be described in a textual
language. The speci cation consists of (1) an EBNF grammar for the Alf
language, and (2) a modeling library for primitive types, functions and collections.
UML state machines are not in fUML, thus Alf does not cover it; but Annex A
of the speci cation gives an example for such a mapping.</p>
          <p>
            Table 1 summarizes the tools with fUML or Alf support we are aware of. The
following is a short description of the fUML and Alf tools in Table 1.
fUML Reference Implementation [
            <xref ref-type="bibr" rid="ref9">9</xref>
            ] The Reference Implementation was created
along the draft speci cation to validate the semantics and to help further tool
development. The reference implementation is a console Java application that
takes a model in XMI as an input, executes an activity given as a parameter,
and provides a detailed trace about the execution. It was developed by Model
Driven Solutions.
          </p>
          <p>
            Moka [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ] Moka is an incubation component of the open source modeling
environment Papyrus. It contains an fUML execution engine, and is able to
animate and debug UML activities. Moreover, it includes a PSCS-based [
            <xref ref-type="bibr" rid="ref10">10</xref>
            ]
engine. Breakpoints can be set in the code, and the activity can be started with
an Eclipse debug con guration. The execution is animated (object and control
ow). Moka is developed by CEA List.
          </p>
          <p>
            Moliz [
            <xref ref-type="bibr" rid="ref7">7</xref>
            ] The moliz project is concerned with the execution, testing and
debugging of UML models. It provides an fUML execution engine with step by
step simulation and breakpoint support. Extension projects based on the Moliz
engine provide non-functional analysis or testing of models. Moliz is developed
by the BIG group of Vienna University, and supported by LieberLieber Software
GmbH (a company developing extensions to Sparx's Enterprise Architect).
Requirements
Modelling
Analysis
          </p>
          <p>High Level UML
Sequence Diag.</p>
          <p>Error Trace
fUML
Simulation</p>
          <p>Model Checking
State Machine
1 ActivitySDiagram 2</p>
          <p>AlfSModel
3</p>
          <p>
            Formal Model
Alf Reference Implementation [
            <xref ref-type="bibr" rid="ref8">8</xref>
            ] The Alf Open Source implementation is a
reference implementation similar to the fUML Reference Implementation. It handles
the full Alf syntax at the "extended compliance level\, which level is speci ed
in the Alf language speci cation. It uses the fUML Reference Implementation
execution engine to provide an interpreter for Alf code units. It is provided as a
console Java application and was developed by Model Driven Solutions.
Alf editor in Papyrus [
            <xref ref-type="bibr" rid="ref13">13</xref>
            ] The goal of this component is to o er a textual editor
in Papyrus to specify operations and activities in the Alf language. The editor
would o er syntax highlighting and validation of Alf code. However, the current
implementation is still in development with several limitations.
2.2
          </p>
        </sec>
      </sec>
      <sec id="sec-2-2">
        <title>The Proposed Modeling and Analysis Approach</title>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Transformation Technologies</title>
      <p>A model transformation (MT) de nes a mapping from a source language to
a target language. Model transformations are speci ed in a language which is
executed by a transformation engine on a source model to create a target model.
A complex MT can be split into multiple steps to form a transformation chain.</p>
      <p>Figure 2 shows a simple iterator example of the transformation of Step 2
and 3 described in Figure 1 with concrete syntax in the top row and model
representation in the bottom row. Activity diagrams de ne guards and actions
by Alf code, but the control ow is de ned by explicit transition arrows and
composite nodes. First, the activity diagram is translated to full Alf code, where
the actions are mapped to statements and the ow is de ned by structures (while
statements). Then the Alf code is mapped to an Uppaal formal model where
the statements are represented by atomic state transitions, and the control is
managed by explicit edges with guard expressions.</p>
      <p>We show how this MT problem can be solved using di erent MT approaches
using the Alf-to-Uppaal transformation. We also highlight the di erences and the
bene ts of the techniques from the following aspects: source model processing,
target model construction, trace handling and debugging possibilities.
Transformation program A rst approach to implement a MT is to create a
problem speci c transformation program written in a general-purpose imperative
programming language like Java. It is easy to start development without relying
on any third-party MT tool. However, such MT programs are error-prone and
hard to maintain resulting in a long development process.</p>
      <p>Figure 3c shows the skeleton of an example Java transformation code, where
both the source and target models are handled as arbitrary Java (EMF) objects.
The source model is traversed by complex control structures, where navigation
is available only through direct references (see Mark 1)in Figure 3a). The
transformation code is responsible for nding the required relations in the model, i.e.
possible state transitions in between Alf statements. Objects of the target EMF
model are created via factory methods, attributes and references are de ned by
setter methods as in common Java objects (Mark 2)). Traceability management
is ad hoc, and usually implemented with temporally maps (Mark 3)).
(a) Transformation program illustration</p>
      <p>(b) Model transformation program run
(c) Example Transformation program implemented in java</p>
      <p>(d) Example model ATL transformation rules
Model Transformation Tool There are several dedicated MT languages to specify
transformation rules. Those rules are automatically executed by transformation
engines on the source model to produce the output model. The
transformation development process is scaling well with respect to the number of rules,
However, there are also some constructs that are di cult to formulate in the
transformation language, hard to integrate with other tools or transformation
steps implemented in imperative code, and it has little debugging support.</p>
      <p>
        The ATLAS Transformation Language (ATL) [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] provides a language to
specify, and a toolkit to execute MTs. Figure 3d shows an example ATL code to map
Alf speci cation to Uppaal model, which is illustrated in Figure 3b. A rule is
de ned by a (from,to) pair, where the from part declaratively selects objects
from the source model instead of model traversal (at Mark 1) s, s1 and s2 are
selected, where s1 and s2 have to be subsequent statements). The to part
speci es the object to be created and the values of their attributes. During model
generation, a trace model is automatically produced.
      </p>
      <p>
        Model Queries and Functional Programs Declarative graph query frameworks
like EMF-IncQuery[
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] provide language for de ning high level graph patterns
(a) Functional templates with model
queries
(b) Query based model generation
(c) Example EMF-IncQuery patterns with Xtend functional program
(d) Query based views: Match the source model, create the target model
and e ciently nd their match in a model. Model queries provide an advanced
language with high expressive power to navigate model structures with required
properties, which can be evaluated on the source model. These queries can be
used by the developer or a transformation program. The left column of Figure 4c
shows two example patterns: the While pattern selects the while statements with
its inner statements and loop conditions, the Relation lists the comparison
expressions with the left and right operators. The left side of Figure 4a shows
the matches on the example model.
      </p>
      <p>Functional approaches proved their usefulness in the implementation of data
transformations. Their main advantages are 1) compact representation 2) easy
extendability and 3) composability. Template based code generation and model
transformation widely uses functional approaches. The Xtend language adds
functional elements to Java language like lambda expressions while keeps the
imperative elements. The right column of Figure 4c shows the skeletons of the
transformer functions: the rst transforms a while statement, the second maps
a relation condition.</p>
      <p>Our experiences shows that a functional Xtend code using EMF-IncQuery
queries is e cient for implementing model transformations. It can be used
similarly to MT tools and it eliminates known navigation issues of Xtend. This
approach allows the developer to 1) freely mix the two techniques (query the
model from the template code, or use pure functions in a pattern), 2) directly
call and debug templates and queries or 3) reuse rules by other transformations.
Query Based Views as Model Transformations IncQuery patterns can be used to
de ne views to represent relations of the source model in a target model. Those
query based view models are automatically and incrementally maintained. Views
can be used as visualisation, or as model transformation. The visualiser aids the
developer to correct bugs. A trace model is automatically derived.</p>
      <p>Figure 4d shows four example for the use of query based views, and Figure 4b
illustrate it with the running example, where the matches and their images are
marked with Mark 1)- Mark 4). Mark 1) de nes that each match of a Statement
should be mapped to a new l Location in the Uppaal model. The trace of the
mapping can be used in other rules, for example Mark 2) collects the subsequent
statements from the control graph of the Alf model with the nextState pattern
and creates an e edge between the images of the statements. Pattern Mark
3) gets the rst statement of the cycle body and names it to StartLoop and the
edge where the loop enters called incoming. Similarly Mark 4) selects the exiting
statement rst statement where the loop exits called FinishLoop, the edge is
named outgoing. The model creation rules then maps the Alf loop conditions
to Uppaal guard expressions and inserts it to the incoming and outgoing edges
positively and negatively.</p>
      <p>While query based views provide a restricted subclass of model
transformations, this loss of generality is balanced by the fact that this class of model
transformations is (source-)incremental by its nature, i.e. changes in the source
model are propagated to the target model incrementally.</p>
      <p>Summary From the above transformation approaches we choose the third one
in our prototype implementation. EMF-IncQuery was used for the e cient and
scalable queries of model elements. Xtend was used to map the source to the
target model according to the de ned EMF-IncQuery patterns. The lessons learnt
during the development are summarized in the next section.
4</p>
    </sec>
    <sec id="sec-4">
      <title>Experience and Open Issues</title>
      <p>This section summarizes our experiences during the development of the
previously presented transformation.</p>
      <p>Experience with fUML and Alf:
{ No list of tools: Although it seems trivial, but even collecting the available
tools required considerable e ort. This paper provides a snapshot, but it will
become outdated. As fUML and Alf is still not yet widespread, OMG could
promote them by listing the tools on its website along the speci cations.
{ Few examples: There are few example fUML models or Alf code available.</p>
      <p>Moreover, version and tool incompatibility further hinders the reuse of
examples (e.g. a model exported in XMI could not always be loaded in an other
tool, the UML speci cation changed in recent years, etc.).
{ Reference implementations: The fUML and Alf reference implementations
are ful lling their purpose, they help to understand the speci cations.
Advanced functions are not in their scope, but they provide a good starting
point for tool developers.
{ Semantic information: Semantic information that could help the veri cation
is not present in the Alf model (e.g. current compound state in a hierarchical
or parallel activity). It can be added to the transformation tool as
annotations.
{ Alf grammar: The current version of Alf grammar uses complex structures
of language elements to ensure unambiguity of the language. This structure
is e ectively handled by matching graph patterns during the transformation.
Open issues with the tools:
{ In the released version of Papyrus, Alf code cannot be speci ed for the
behavioral elements, thus we attached them as simple text in comment blocks.
{ We had to create our own (limited) Alf metamodel for the transformations
as the available ones were incomplete in the pre-Luna versions of the
Eclipsebased tools.
{ The tools would need a functionality to restrict the available elements (e.g.</p>
      <p>an Alf language element should not be used in a certain application domain).
Maturity of the tools:
{ Proven: the Eclipse platform and its core services (e.g. EMF, Xtext) provided
a solid base for tool development.
{ Incubation: Although still in incubation phase, it was relatively easy to use
EMF-IncQuery due to its easy-to-use tooling and examples. (Note, we
consulted also with local developers of the tool).
{ Prototype: The fUML engines (Moka, Moliz) are working and there are some
examples and documentation available. However, they are still in prototypes
phase (e.g. in a simple scenario we were able to produce
NullReferenceException in Moka).
{ Alpha: The Alf editor in Papyrus is still in active development (e.g. most of
the code is in the sandbox repository, it supports only a limited part of Alf).
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>Support for the executable extensions of UML started to appear in open source
modeling tools. This paper summarized these tools and our experiences with
them, obtained during the development of a prototype transformation chain.
Our ndings showed that advancement in the tooling is promising, but there is
still a long road ahead. As a summary, the questions raised in the introduction
can be answered as follows:</p>
      <p>Acknowledgments. This work was partially supported by Ericsson Hungary.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. ATLAS Group:
          <article-title>The ATLAS Transformation Language (</article-title>
          <year>2014</year>
          ), http://www. eclipse.org/atl/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Brambilla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Model-Driven Software</surname>
          </string-name>
          Engineering in Practice. Morgan &amp;
          <string-name>
            <surname>Claypool</surname>
          </string-name>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Broy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cengarle</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>UML formal semantics: lessons learned</article-title>
          .
          <source>Software &amp; Systems Modeling</source>
          <volume>10</volume>
          (
          <issue>4</issue>
          ),
          <volume>441</volume>
          {
          <fpage>446</fpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Hu</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shatz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Explicit modeling of semantics associated with composite states in UML statecharts</article-title>
          .
          <source>Automated Software Engineering</source>
          <volume>13</volume>
          (
          <issue>4</issue>
          ),
          <volume>423</volume>
          {
          <fpage>467</fpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tisi</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Delatour</surname>
          </string-name>
          , J.:
          <article-title>fUML as an assembly language for MDA</article-title>
          .
          <source>In: Int. Workshop on Modeling in Software Engineering (MiSE)</source>
          . pp.
          <volume>61</volume>
          {
          <issue>64</issue>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Latella</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Majzik</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Massink</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Automatic veri cation of a behavioural subset of UML statechart diagrams using the SPIN model-checker</article-title>
          .
          <source>Formal Aspects of Computing</source>
          <volume>11</volume>
          (
          <issue>6</issue>
          ),
          <volume>637</volume>
          {
          <fpage>664</fpage>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Mayerhofer</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Langer</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Moliz: A model execution framework for UML models</article-title>
          .
          <source>In: Int. Master Class on Model-Driven Engineering: Modeling Wizards</source>
          . pp.
          <volume>3</volume>
          :
          <issue>1</issue>
          {
          <issue>3</issue>
          :
          <fpage>2</fpage>
          . MW '12,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. ModelDriven.org:
          <article-title>Action language for UML (Alf) open source implementation (</article-title>
          <year>2014</year>
          ), http://modeldriven.org/alf/
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9. ModelDriven.org:
          <article-title>Foundational UML reference implementation (</article-title>
          <year>2014</year>
          ), http:// portal.modeldriven.org/project/foundationalUML
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10. Object Management Group:
          <article-title>Precise semantics of UML composite structures RFP (</article-title>
          <year>2011</year>
          ), http://www.omg.org/cgi-bin/doc?ad/11-12-07
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Object Management Group:
          <article-title>Action Language for Foundational UML (Alf) (</article-title>
          <year>2013</year>
          ), formal/2013-09-01
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12. Object Management Group:
          <article-title>Semantics of a Foundational Subset for Executable UML Models (fUML) (</article-title>
          <year>2013</year>
          ), formal/2013-08-06
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. Papyrus:
          <article-title>Alf support in Papyrus (</article-title>
          <year>2014</year>
          ), http://wiki.eclipse.org/Papyrus/ UserGuide/fUML_ALF
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Papyrus</surname>
          </string-name>
          <article-title>: Moka overview (</article-title>
          <year>2014</year>
          ), http://wiki.eclipse.org/Papyrus/UserGuide/ ModelExecution
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Ujhelyi</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bergmann</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>Hegedus, A</article-title>
          .,
          <string-name>
            <surname>Horvath</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Izso</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rath</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szatmari</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Varro</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>EMF-IncQuery: An integrated development environment for live model queries</article-title>
          .
          <source>Science of Computer Programming</source>
          (
          <year>2014</year>
          ), in Press.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>