<!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>Domain Speci c Analysis of Statemachine Models of Reactive Systems</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Queen's University School of Computing Kingston</institution>
          ,
          <addr-line>ON</addr-line>
          ,
          <country country="CA">Canada</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Analysis of models is an important aspect of the Model Driven Development (MDD) paradigm. Even though many analysis methods exist (e.g., model checking), they are not easily applicable in the context of MDD tools such as IBM Rational Software Architect Real Time Edition (IBM RSA RTE) and MDD languages such as UML-RT. The major reason for this inapplicability is that they typically require MDD models to be translated to a formal notation, which does not directly support key model features. The research direction proposed in this paper deviates from the standard approaches { it brings analysis \close" to MDD models and introduces domain-speci c analysis of UML-RT models. To this end we use a formal representation that preserves the important aspects of the models. This removes the translational e ort and, in addition, enables the use of MDD-speci c abstractions aiming to support better understanding of models and to improve the scalability of veri cation. We will de ne abstractions for data (using symbolic execution), for structure and for behavior. The approach will be implemented as a set of plugins to IBM RSA RTE and evaluated on a variety of UML-RT models.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        The analysis of models early in the development process is one of the promises of
the Model Driven Development paradigm. Such analysis should facilitate better
understanding of developed systems and should enable formal veri cation.
However this poses many challenges for MDD models, because they have complex
dynamic structures and complex behaviors [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ]. Additionally, industrial MDD
models are large and scalability is essential.
      </p>
      <p>
        The majority of the analysis techniques proposed in the literature reuse
formal veri cation tools such as SPIN or NuSMV [
        <xref ref-type="bibr" rid="ref15 ref16 ref8">16, 8, 15</xref>
        ]. This can be
advantageous, because the tools are mature and implement optimizations, however a
translation to a formal language of a model checker is required. This step requires
simpli cations in models such as attening of hierarchies, omitting
communication details or encoding object-orientation. The goal of our work is to provide
more dedicated, domain-speci c analysis [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ], similar to SLAM or JPF projects
(early e orts by the JPF team to use Promela/Spin were eventually abandoned).
This approach reduces the \semantic gap" between the language of a checker
and the language of a model. The direct bene t is minimal translational e ort,
more indirect ones include support for veri cation methods that are tailored to
MDD models. The dedicated approaches to analysis are less often researched,
and ours is the rst one designed speci cally for UML-RT models.
      </p>
      <p>In our approach we introduce a formal representation, which shares
important characteristics with MDD models such as hierarchical components, strong
encapsulation, message-based communication and state machines. Preserving
these features enables de nition of \domain speci c" abstractions. We propose
three types of abstractions: symbolic execution to deal with data, structural
abstraction to deal with complex hierarchical structures and state aggregation for
state machines. Abstractions simplify the state space for better understanding,
but we also use them to improve model checking algorithms. The improvements
are thanks to lazy composition, i.e. exploring only those parts of a model that
in uence the satisfaction of a property.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Background and motivation</title>
      <p>
        The language we use in this work as an example of a MDD language is the
UML-RT from IBM RSA RTE [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. A model in this language consists of capsules.
A capsule may contain parts, which are instances of other capsules. Capsules
communicate using typed ports and the type of a port (called a protocol ) gathers
messages sent or received through the port. The behavior of a UML-RT capsule
is given with a UML-RT State Machine. UML-RT State Machines contain action
code, written in, e.g., Java that updates attributes or sends messages.
      </p>
      <p>
        Analysis of a UML-RT model (or a model that is similar to it) should increase
understanding and should allow for veri cation of properties of the model. In
order to achieve this, the model can be executed in IBM RSA RTE, but the
execution is limited to one path, i.e., to one set of input values. This gives some
insight, but is insu cient to check properties concerning all possible executions,
which is necessary to fully understand and to verify models. The rst possibility
is to reuse existing model checkers, and to translate the model to e.g. Promela,
the input language of the SPIN model checker [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Although this enables
exhaustive checking, a translation dealing with a su ciently large subset of UML-RT is
complex and di cult to test, and the analysis results are not directly available
back in the original model.
      </p>
      <p>The alternative and less followed approach, which we take, is to build a
dedicated analysis tool. The disadvantages of such an approach are the e ort
to develop tools and more limited use of optimizations techniques present in
models model checkers (e.g. BDDs). However, the advantages are straightforward
translation and directly usable results. Additionally, the domain speci c analysis
can directly exploit structure and semantics of models. Our hypothesis is that
this allows for more modular and, in turn, more scalable analysis and veri cation.
The analysis approach that we propose for UML-RT models is summarized in
Figure 1. There are three major parts: representation, abstraction and veri
cation; we describe them below.</p>
      <p>
        The formal representation part of the process is responsible for
translating UML-RT models into the formal representation: communicating Functional
Finite State Machines (FFSMs). FFSMs have similar features as UML-RT. A
model consists of a set of modules. A module may contain parts with types of
other modules. Actions are used to communicate between parts. We support
asynchronous communication, hence modules use queues. The behavior of
modules is given with state machines, in which transitions have guards and e ects
assigned to them. E ects include updates of attributes, sending actions and
possibly changes to the structure of the model. E ects are obtained by symbolic
execution of action code and by using the results of this execution to represent
the code. (see [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] for details). The semantics of FFSMs is given with a labeled
transition system (LTS), called an execution LTS. A state in such an execution
LTS contains current execution information, i.e., values of the attributes, current
states, as well as contents of all queues for all parts in the model.
      </p>
      <p>
        The goal of using abstractions is to reduce the size of the state space. Each
type of abstraction is identi ed with a set of execution rules and these rules are
used to generate the execution LTS. We support the following types of
abstractions:
1. Symbolic execution. In this type of abstraction concrete values of variables
are replaced with symbolic ones (as in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]). In order to distinguish between
branches of execution, path constraints are included in an execution LTS.
This type of abstraction is very useful to deal with data and to combine
execution states that are di erent only due to the values of input variables.
2. Structural abstraction. This type of abstraction ignores parts of a model
that are irrelevant with respect to the performed analysis. The abstracted
parts are treated as if they were removed from a model, but actions that are
delivered by the abstracted parts are assumed to be available at all times.
Therefore an execution LTL for structural abstraction is an
overaproximation. In this type abstraction the user selects the parts to be abstracted away
or it is done automatically based on a veri ed property (see below).
3. State aggregation. This type of abstraction aggregates states of a state
machine by combining them into one state, for instance to deal with hierarchical
states in state machines. Therefore, as in case of a previous abstraction type,
this abstraction is also an overaproximation. The decision which states to
aggregate is left to the user, who may use existing hierarchies of states as
guidance.
      </p>
      <p>
        The veri cation part of our approach includes the speci cation of
properties of models and model checking algorithms. The properties of models are
expressed with an extension of Computation Tree Logic (CTL) [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. In the
proposed extension atomic propositions include models characteristics such as being
in a particular state, a certain queue containing speci c actions and certain
attributes having certain values. Because the application of execution rules is done
step-wise, the checking of CTL formulas can be performed on-the- y. To this end,
the standard labeling algorithm for CTL properties [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] is extended to use the
labels from the previous execution steps. Finally, we extend the model checking
to use lazy composition. Initially, parts not mentioned in the checked formula
are abstracted. All other parts are executed, for instance, symbolically. If one of
executed parts requires an action, which can be generated by some abstracted
part then this part is explored. This means that applied execution rules are
updated and in the next step the execution of the extra part is included.
4
      </p>
    </sec>
    <sec id="sec-3">
      <title>Implementation and evaluation</title>
      <p>The process presented in Figure 1 is implemented as a set of Eclipse plugins.
The main objectives of the evaluation of our approach are to assess its scalability
and applicability. In order to achieve that we will use:
- custom UML-RT models to check the approach in the presence of increasing
complexity (e.g., with increasing number of internal parts in the model). In
this way we can observe how the veri cation methods scale.
- PBX model (adapted from a model obtained from our industrial partner)
to check how abstractions can support better understanding of a complex
model and how veri cation methods can be used in such a model. The PBX
model consists of three subsystems and each subsystem has up to 6 di erent
parts. Code generated from those subsystems has between 3500 and 6000
lines per subsystem.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Current status and results</title>
      <p>
        Up until now we have explored symbolic execution in the context of
UMLRT models [
        <xref ref-type="bibr" rid="ref21 ref22">21, 22</xref>
        ]. We also de ned a model checking algorithm that uses lazy
composition [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. In the latter work we showed how exploiting the structure of
models can improve the scalability of the analysis; in a few cases we were able
to reduce the state space to 10% of the original state space.
      </p>
      <p>Currently we are working on the implementation of the process shown in
Figure 1. We implemented the transformation from UML-RT to FFSMs, the
execution engine and the model checker. We are now nishing the implementation
of rules and are moving towards more thorough evaluation.
6</p>
    </sec>
    <sec id="sec-5">
      <title>Related work</title>
      <p>
        The current practice of analysis and veri cation of MDD and UML-based
models builds mostly on model checking. The proposed works are primarily
concerned with the translation of models to the input languages of existing model
checkers. For instance, UML State Machines are analyzed using SPIN [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ],
UML Activity Diagrams using nuSMV [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] and Statecharts, after translation to
Java, using Java Path nder [
        <xref ref-type="bibr" rid="ref14 ref3">14, 3</xref>
        ]. There also exist translations of UML-RT
to Promela/SPIN [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and to the AsmL language used in SpecExlorer [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. In
contrast to those works the research proposed here is based on a more
straightforward translation, which reduces the semantic gap between languages of models
and model checkers [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        Beside translations to model checkers, there are approaches built around
UML-like state machines. Giese et al. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] explore compositional aspects of
models based on parallel composition and synchronous communication between UML
Statecharts. This approach is implemented in the FUJABA tool suite [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and uses
compositional veri cation inspired by the popular assume-guarantee paradigm [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ].
Our approach goes beyond the compositionality and also explores abstraction to
improve scalability of the analysis.
      </p>
      <p>
        Abstractions have been used to improve model checking techniques, but they
are usually limited to data abstractions [
        <xref ref-type="bibr" rid="ref10 ref13 ref7">7, 13, 10</xref>
        ]. Another data-driven
abstraction is symbolic execution, which, in its original version [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], simply replace
concrete values of variables with expressions that represent them. Symbolic
execution has been applied also to state based models. For instance, to
Statecharts [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] or UML State Machines [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] or, after translation to Java using SPF [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
The proposed research uses symbolic execution only as one of the abstractions
and symbolic execution is de ned for modular and hierarchical models as already
introduced [
        <xref ref-type="bibr" rid="ref21 ref22">21, 22</xref>
        ].
      </p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgments</title>
      <p>Author wishes to acknowledge the support of Dr. Juergen Dingel, NSERC, IBM
Canada, and Malina Software.
Version
7.5.5.,</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <given-names>IBM</given-names>
            <surname>Rational Software</surname>
          </string-name>
          <string-name>
            <surname>Architect</surname>
          </string-name>
          ,
          <source>RealTime Edition</source>
          , http://publib.boulder.ibm.com/infocenter/rsarthlp/v7r5m1/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Alur</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Henzinger</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mang</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Qadeer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rajamani</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tasiran</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>MOCHA: Modularity in model checking</article-title>
          . In: Computer Aided Veri cation. pp.
          <volume>521</volume>
          {
          <issue>525</issue>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Balasubramanian</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pasareanu</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whalen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Karsai</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lowry</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Improving symbolic execution for statechart formalisms</article-title>
          . In: MoDeVVa'
          <volume>12</volume>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Balser</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Baumler</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Knapp</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reif</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Thums</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Interactive veri cation of UML state machines</article-title>
          .
          <source>In: ICFEM 2004 (LNCS</source>
          Vol.
          <volume>3308</volume>
          ). pp.
          <volume>434</volume>
          {
          <issue>48</issue>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Burmester</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hirsch</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schilling</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tichy</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The FUJABA realtime tool suite: model-driven development of safety-critical, real-time systems</article-title>
          .
          <source>In: ICSE '05</source>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>E.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grumberg</surname>
            ,
            <given-names>O.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Peled</surname>
            ,
            <given-names>D.A.</given-names>
          </string-name>
          :
          <article-title>Model checking</article-title>
          . Cambridge, Mass. : MIT Press (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grumberg</surname>
            ,
            <given-names>O.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Long</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Model checking and abstraction</article-title>
          .
          <source>ACM Transactions on Programming Languages and Systems</source>
          <volume>16</volume>
          (
          <issue>5</issue>
          ) (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <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>
          ),
          <volume>1</volume>
          {
          <fpage>38</fpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Giese</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tichy</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Burmester</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Schafer, W.,
          <string-name>
            <surname>Flake</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Towards the compositional veri cation of real-time uml designs</article-title>
          .
          <source>In: ESEC/FSE 2003</source>
          . pp.
          <volume>38</volume>
          {
          <issue>47</issue>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Ioustinova</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sidorova</surname>
          </string-name>
          , N.:
          <article-title>Abstraction and ow analysis for model checking open asynchronous systems</article-title>
          .
          <source>In: Software Engineering Conference</source>
          ,
          <year>2002</year>
          . (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>King</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          :
          <article-title>Symbolic execution and program testing</article-title>
          .
          <source>Communications of the ACM</source>
          <volume>19</volume>
          (
          <issue>7</issue>
          ),
          <volume>385</volume>
          {
          <fpage>394</fpage>
          (
          <year>1976</year>
          /07)
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Leue</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stefanescu</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wei</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>An AsmL Semantics for Dynamic Structures and Run Time Schedulability in UML-RT</article-title>
          .
          <source>Tech. rep.</source>
          , University of Konstanz, Germany (
          <year>2008</year>
          ), http://kops.ub.uni-konstanz.de/volltexte/2008/5781/
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Manna</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Colon</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finkbeiner</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sipma</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Uribe</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Abstraction and modular veri cation of in nite-state reactive systems</article-title>
          .
          <source>In: Requirements Targeting Software and Systems Engineering</source>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Mehlitz</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Trust your model - verifying aerospace system models with Java path nder</article-title>
          .
          <source>In: IEEE Aerospace Conference</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Saaltink</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Meisels</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Using SPIN to analyse RoseRT models</article-title>
          .
          <source>Tech. rep., ORA Canada</source>
          (
          <year>1999</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Schafer</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Knapp</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merz</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Model checking UML state machines and collaborations</article-title>
          .
          <source>Electronic Notes in Theoret. Comp. Science</source>
          <volume>55</volume>
          (
          <issue>3</issue>
          ) (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Selic</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gullekson</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ward</surname>
          </string-name>
          , P.T.:
          <article-title>Real-time Object Oriented Modeling and Design</article-title>
          . J. Wiley &amp; Sons (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Thums</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schellhorn</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ortmeier</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Reif</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Interactive Veri cation of Statecharts</article-title>
          .
          <source>In: INT 2004 (LNCS</source>
          Vol.
          <volume>3147</volume>
          ) (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Visser</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dwyer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whalen</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The hidden models of model checking</article-title>
          .
          <source>Software and Systems Modeling</source>
          <volume>11</volume>
          (
          <issue>4</issue>
          ),
          <volume>541</volume>
          {
          <fpage>555</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Zurowska</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dingel</surname>
          </string-name>
          , J.:
          <article-title>Model checking of uml-rt models using lazy composition</article-title>
          . In: Models'
          <fpage>13</fpage>
          - to appear (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Zurowska</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dingel</surname>
          </string-name>
          , J.:
          <article-title>Symbolic execution of UML-RT state machines</article-title>
          .
          <source>In: SAC Software Veri cation Track</source>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Zurowska</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dingel</surname>
          </string-name>
          , J.:
          <article-title>Symbolic Execution of Communicating and Hierarchically Composed UML-RT State Machines</article-title>
          .
          <source>In: NASA Formal Methods 2012</source>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>