<!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>ProMoBox in Practice : A Case Study on the GISMO Domain-Specific Modelling Language</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Romuald Deshayes</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Bart Meyers</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tom Mens</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Hans Vangheluwe</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>De ́partement d'Informatique, Universite ́ de Mons</institution>
          ,
          <addr-line>Mons</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Modeling, Simulation and Design Lab (MSDL), McGill University</institution>
          ,
          <country country="CA">Canada</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Modeling, Simulation and Design Lab (MSDL), University of Antwerp</institution>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2014</year>
      </pub-date>
      <fpage>21</fpage>
      <lpage>30</lpage>
      <abstract>
        <p>Domain-specific modelling (DSM) helps designing systems at a higher level of abstraction, by providing languages that are closer to the problem space than to the solution space. Unfortunately, specifying and verifying properties of the modelled system has been mostly neglected by DSM approaches. At best, this is only partially supported by translating models to formal representations on which properties are specified and evaluated based on logic-based formalisms. This contradicts the DSM philosophy as domain experts are usually not familiar with such formalisms. To overcome this shortcoming, the ProMoBox approach lifts property specification and verification tasks up to the domain-specific level. For a given DSM language, some operations at the metamodel level are needed to allow specification and verification of properties. This paper reports on a practical case study of how to apply the ProMoBox approach on GISMO, a DSM language designed specifically for developing gestural interaction applications.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Domain-specific modelling (DSM) helps designing systems at a higher level of
abstraction. By providing languages that are closer to the problem domain than to the solution
domain, low-level technical details can be hidden. An essential activity in DSM is the
specification and verification of properties to increase the quality of the designed
systems [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Providing support for these tasks is therefore necessary to provide a holistic
DSM experience to domain engineers. Unfortunately, this has been mostly neglected by
DSM approaches. At best, support is limited to translating models to formal
representations on which properties are specified and evaluated with logic-based formalisms [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
such as Linear Temporal Logic (LTL). This contradicts the DSM philosophy as domain
experts desiring to specify and verify domain-specific properties are not familiar with
such formalisms.
      </p>
      <p>
        In previous work we proposed the ProMoBox framework to shift property
specification and verification tasks up to the DSM level. The scope, assumptions and limitations
of this approach are presented in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. The ProMoBox framework consists of (i) generic
languages for modelling all artefacts that are needed for specifying and verifying
properties, (ii) a fully automated method to specialise and integrate these generic languages
in a given DSML, and (iii) a verification backbone based on model checking that is
directly pluggable to DSM environments such as AToMPM [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Properties in ProMoBox
are translated to LTL and a Promela model is generated that includes a translation of the
system, its environment and its rule-based operational semantics. The Promela model
is checked with the SPIN model checker [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] and if a counter-example is found it is
translated back to the DSM level.
      </p>
      <p>This paper presents a case study that applies ProMoBox to GISMO, a DSML for
executable modelling of gestural interaction applications. We illustrate how to make
some minor changes and additions to the metamodel of the DSML in order to enable
the generation of all needed languages (an input language, output language, property
language, and runtime language) that are required for the specification and verification
of properties at DSM level. We subsequently report on the results of verifying these
properties.</p>
      <p>The paper is structured as follows. Section 2 presents the GISMO DSML used as a
case study. Section 3 explains the changes required to the GISMO metamodel in order
to apply the ProMoBox approach. Section 4 presents the results of applying ProMoBox
to GISMO. Section 5 exemplifies the specification of domain-specific properties on
GISMO models and provides some results and counter-examples found after
verification of these properties. Section 6 presents related work, and Section 7 concludes.
2</p>
    </sec>
    <sec id="sec-2">
      <title>GISMO: a DSML for gestural interaction</title>
      <p>
        GISMO is a DSML developed by the first author to facilitate development of
gesturebased interactive applications [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. Specifying gestural interaction with objects is achieved
in a state-based way. The GISMO metamodel is depicted in Fig. 1. A GISMO model is
composed of states and gestures. State changes may be performed when a gesture is
performed by a user. In previous work we have developed a framework [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] that takes
care of interpreting such high level gestures from the raw data coming from 3D
sensors such as Microsoft’s Kinect motion sensor. The operational execution semantics of
GISMO is based on ICO [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], a formalism based on high-level Petri nets.
are represented as labelled rounded rectangles. The unique active state is displayed in
green. Gesture boxes are used to specify the gesture that is expected from the user.
They are composed of the body part (e.g., left or right hand) involved in the gesture,
the direction of movement (e.g., left, right, up, down), the type of gesture (e.g., moving,
dragging, opening) and the observed dimension of the gesture (i.e., distance d, time t
or speed s).
      </p>
      <p>The model is executed as follows. Whenever the user performs a specific gesture
matching an expected outgoing gesture from the currently active state, the active state
changes to the destination of the outgoing edge of the performed gesture. Global
variables can be defined onGISMO models (e.g. nbarrow and power in Fig. 2). They store
relevant information about the object being modeled. Triggering a state change can be
conditioned by a boolean precondition that may combine the observed dimension of
the gesture and the global variables. For example, a state change from Drawn to
ArrowReady is triggered if the distance d of the drag gesture exceeds 30cm and the global
variable nbarrow is strictly positive. Exit actions of a matching gesture can be executed
to perform operations on a global variable, such as reassigning its value by the value
retrieved from the observed dimension. In the example of Fig. 2, the two drag gestures
connected to state Bending add or subtract from global variable power the value of the
gesture’s distance dimension.
3</p>
    </sec>
    <sec id="sec-3">
      <title>Simplifying the GISMO metamodel</title>
      <p>
        Enabling verification of domain-specific model properties requires a certain amount of
preparatory work in order to make it applicable in practice. In particular, the ProMoBox
approach [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] requires the metamodel of the DSML under study to be annotated before
starting the generation process. Depending on the complexity of the language, other
changes may be required as well. Most of the simplifications aim to reduce the
combinatorial search space of the SPIN model checker. Not performing such simplifications
would result in an exponentially longer verification time. This scalability problem is
inherent to model checking, as the search space grows very fast in terms of the number
of different possible inputs and input types.
      </p>
      <p>This section focuses on the changes and simplifications required to the GISMO
metamodel in order to enable specification and verification of domain-specific
properties. A first simplification ignores thetime and speed dimensions of input gestures.
Thus, we restrict ourselves to properties based on the distance dimension only.
Moreover, as unbounded variable domains are too costly to check, we provided a binary
classification of a gesture’s distance value into either small or big. A wider range of
distance classes could be used, at the expense of a longer verification time.</p>
      <p>As another simplification we limit the types of global variables to boolean values
only, i.e., integer values are not supported during property verification. We also
represent each global variable by a unique integer identifier instead of a variable name since
strings are not supported by Promela, the verification modelling language to which our
DSML models are translated. This is not a huge concern since it can be fully automated
and made transparent for the DSML engineer.</p>
      <p>Finally, we simplified the preconditions and exit actions of GISMO models. In
GISMO, preconditions are boolean expressions resulting from the logical composition
(AND, OR, NOT) of comparisons between global variables, gesture dimensions and
integer values (e.g., nbarrow&gt;0 &amp; d&gt;30 between Drawn and ArrowReady states in
Fig. 2). Exit actions, on the other hand, can express assignment operations of global
variables (e.g., power += d in the gestures linked to the Bending state). For model
verification we limit the precondition checks to verifying if a global variable is true or false;
and exit actions are limited to changes of the boolean value of the global variable.
Generally speaking, most of the simplifications on theGISMO DSL can be semi-automated
and applied to any DSL, thus reducing the task of the domain engineer.
4</p>
      <p>
        Applying ProMoBox to GISMO
The ProMoBox framework [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] relies on a family of fully automated generated
modelling languages based on the DSML metamodel. These languages are required to
modularly support specification and verification of model properties. Thedesign language
allows DSM engineers to design the static structure of the system. The runtime
language enables modellers to define a state of the system, e.g., an initial state as input
of a simulation, or a particular “snapshot” during runtime. The input language lets the
DSM engineer model the behaviour of the system environment, e.g., by modelling an
input scenario as an ordered sequence of events containing one or more input elements.
The output language can be used to represent execution traces (expressed as ordered
sequences of states and transitions) of a simulation or to show verification results in the
form of a counter-example. Output models can also be created manually as part of an
oracle for a test case. The property language can be used to express properties based on
modal temporal logic, including structural logic and quantification.
      </p>
      <p>A fully automated method specialises and integrates these languages to any given
DSML, thus minimising the effort of the language engineer. This is realised by
manually annotating the DSML metamodel entities (classes, associations and attributes) with
the necessary stereotypes required for every language construct. Stereotype rt (for
runtime) annotates metamodel entities that serve as output (e.g., a state variable);
stereotype ev (for event) annotates entities that serve as input only (e.g., a marking);
stereotype tr (for trigger) annotates static entities that may also serves as input
(e.g., a transition event). More stereotypes could be envisioned, but the generation of the
sub-languages currently only supports those three. Stereotypes ev and tr cannot
be used jointly on the same metamodel entity.</p>
      <p>Fig. 3 illustrates how to apply ProMoBox to GISMO. Only the grey parts of Fig. 3
need to be modelled explicitly, the white parts are generated from the annotated and
simplified GISMO’ metamodel, shown in Fig. 1. Classes colored in grey have been
removed by the simplification process; stereotype annotations have been added.</p>
      <p>A family of languages is generated from GISMO’ using a template-based approach.
This approach makes ProMoBox applicable to different types of DSMLs. The main idea
is that generic metamodel elements (shown as grey rectangles in Fig. 4) are interwoven
with the DSL metamodel elements.</p>
      <p>
        As an example, Fig. 4 shows the metamodel of the generated output language
GISMOO. The metamodel of generated design language GISMOD closely resembles
GISMOO, except that the grey classes in the figure are absent, OutputElement is
replaced by DesignElement, and the isActive attribute of Element and the value attribute
of Bool is also absent, because of the rt annotations in Fig. 1. The metamodel of
generated runtime language GISMOR looks like GISMOO, except that the grey classes
are absent, and OutputElement is replaced by RuntimeElement. Fig. 2 shows an example
runtime instance model of GISMOR, representing a snapshot of the bow model during
its execution. The currently active state is displayed in green. The generated metamodel
of input language GISMOI is depicted in Fig. 4, together with an example instance
model. This model represents a sequence of a MoveGesture followed by two
DragGestures (each gesture is surrounded by a green circle) provided by the user as input and
processed by the operational semantics rules to execute the runtime model GISMOR.
The generated metamodel of property language GISMOP allows to define temporal
properties over the system behaviour by means of four constructs: quantification (∀ or
∃), temporal patterns, structural patterns and domain-specific pattern elements. These
property-related constructs are added to the GISMO’ metamodel by weaving the generic
metamodel template of Fig. 5 into the DSML. The resulting language has a concrete
syntax that highly corresponds to the DSML, and the quantification and temporal
patterns (instead of LTL operators) are raised to a more intuitive level by using natural
language. The full metamodel of GISMOP is not shown here, but a similar example can
be found in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ].
      </p>
      <p>Properties specified in GISMOP are translated to LTL, and a Promela model is
generated that includes a translation of the initialised system, the environment, and the
rule-based operational semantics of the system. This translation is generic, and thus
independent of the DSML. The properties are checked by the SPIN model checker. If
any counter-example is found, the verification results are translated back to the DSM
level.</p>
      <p>
        The limitations of the framework are related to the mapping to Promela as explained
in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In its current state, ProMoBox does not allow dynamic structure models. Because
of the nature of Promela, boundedness is ensured in the translation. Other constraints
can be circumvented, as described in Section 3.
5
      </p>
    </sec>
    <sec id="sec-4">
      <title>Specifying and checking properties on GISMO models</title>
      <p>
        We implemented the ProMoBox framework in AToMPM [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], and the generic compilers
that compile models to and from Promela or text were written in Python. The resulting
generated Promela code is around 800 lines of code.
      </p>
      <p>We verified fifteen properties on the runtime instance model of Fig. 2. Five
properties are described below:
P1 It is always possible to return to a previously active state.</p>
      <p>P2 A bow cannot be bent if there is no arrow on it. (see Fig. 6 at the top left; the global
variable nbarrow is represented by integer id 1).</p>
      <p>P3 All states of a model can be reached from any state.</p>
      <p>P4 Whenever the bow is fired, the amount of available arrows should decrement (see</p>
      <p>Fig. 6 at the top right; the global variable nbarrow is represented by integer id 1).
P5 After firing an arrow, one should eventually be able to fire another one.</p>
      <p>The above properties are transformed to LTL, and are inserted in Promela code
consisting of the initial state of the system, the environment and the rule-based operational
Generated metamodel of output language GISMOO
Generated metamodel of input language GISMOI</p>
      <p>Example of an instance model of GISMOI</p>
      <p>Fig. 4. Generated metamodels GISMOO and GISMOI , and instance model of GISMOI .
Proceedings of MPM 2014
semantics as shown in step 1 of Fig. 3. In step 2, SPIN verifies whether the system
satisfies the formula, returning “True” if it does. If there is a counter-example, steps 3 to
5 are followed: the counter-example trace is played back by SPIN, and a readable trace
is printed (step 3), this trace is converted automatically to the counter-example output
model (step 4), and this counter-example can be played out state by state by showing a
runtime model for each state (step 5). The properties P2 and P4 yield a counter-example,
one of which is shown in Fig. 6 at the bottom. The trace represents a sequence of five
states, leading to the undesirable state (the last one, where the state is Bending, but the
nbarrow variable has value 0). Each state can be mapped to Fig. 2, and the current state
is highlighted, as well as the current input gesture. Because of these counter-examples,
we were able to find and fix an error in our bow model of Fig. 2, namely that picking
up an arrow (represented by the MoveGesture to the left of sheated) is not required.
In another instance, we were able to find and correct an error in one of the operational
semantics’ rules.</p>
      <p>
        In comparison to [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], we made some changes that influence the performance, such as
splitting up quantified rules into several LTL formulae (e.g., Prop. 3). The performance
in terms of time and memory consumption is good: evaluation never takes more than a
second, and never requires more than 100 MB of memory. Also, the search tree depth
never exceeds 4000, and the number of states that are visited stays well under 20000.
6
      </p>
    </sec>
    <sec id="sec-5">
      <title>Related Work</title>
      <p>
        In the last decade, a plethora of language-specific approaches have been presented to
specify and verify properties for different kinds of design-oriented languages. A
subset of these approaches verify component-based systems [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], concurrent systems [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]
and architectural models expressed in UML [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Gabmayer et al. survey approaches
aiming at specifying and verifying temporal model properties by model checkers [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
These approaches offer either language-specific property languages, or LTL properties
have to be defined directly on the formal representation, thus not aiming at supporting
DSMLs engineers in the task of building domain-specific property languages.
      </p>
      <p>
        Generic solutions shift the specification and verification tasks to the model level in a
more generalized manner. Some approaches propose OCL extensions for defining
temporal properties (TOCL) on models [
        <xref ref-type="bibr" rid="ref13 ref14">13, 14</xref>
        ]. Combemale et al. propose a pattern-based
extension to modelling languages aiming at supporting temporal property verification
using TOCL, while producing model-based input and output automatically for model
checking purposes [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Klein et al. [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] present an approach to define properties at the
model level in a generic way, by extending a language for specifying structural patterns
based on Story Diagrams with support for specifying temporal patterns.
7
      </p>
    </sec>
    <sec id="sec-6">
      <title>Conclusion and Future Work</title>
      <p>
        This article reported on a practical application of the ProMoBox approach [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] for
verifying temporal properties on DSMLs. A small number of models is required as input
to specify properties and transform them to SPIN, verify them and visualise possible
counter-examples, while the user is shielded from the underlying formal model
checking intricacies. GISMO, a DSML for specifying executable models of gestural
interaction applications, was used as a case study. We illustrated how verifying properties
on GISMO models can be realised with ProMoBox, after applying a series of
necessary simplifications on theGISMO metamodel to ensure that the model is bounded and
to avoid a combinatorial explosion of the model checking. We conclude that applying
ProMoBox to GISMO is feasible. Annotating the GISMO metamodel to enable the
automatic generation of a property language is straightforward. Simplifying the metamodel
to enable the model checker to verify properties in a reasonable time took some more
effort and reflection. Nevertheless, this is a common step when applying model checking.
Lifting the power of model checking to the level of domain-specific models is possible,
and the expressiveness of the properties is only limited by the template metamodels of
ProMoBox, that can be easily extended to include all the concepts of model-checking
formalisms such as LTL and Promela.
      </p>
      <p>In future work, we are interested in broadening the types of languages that are
supported by ProMoBox, e.g. languages and properties that explicitly include time. Also,
we will investigate alternative approaches to model checking, such as the generation
and execution of test cases, so that the approach becomes more scalable.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. France, R.,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Model-driven development of complex software: A research roadmap</article-title>
          .
          <source>In: 2007 Future of Software Engineering. FOSE '07</source>
          , Washington, DC, USA, IEEE Computer Society (
          <year>2007</year>
          )
          <fpage>37</fpage>
          -
          <lpage>54</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Risoldi</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A methodology for the development of complex domain-specific languages</article-title>
          .
          <source>PhD thesis</source>
          , University of Geneva (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Meyers</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Deshayes</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lucio</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Syriani</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wimmer</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vangheluwe</surname>
          </string-name>
          , H.:
          <article-title>ProMoBox: A framework for generating domain-specific property languages</article-title>
          .
          <source>In: Int'l Conf. Software Language Engineering (SLE)</source>
          .
          <article-title>(</article-title>
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Syriani</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vangheluwe</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mannadiar</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hansen</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mierlo</surname>
            ,
            <given-names>S.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ergin</surname>
          </string-name>
          , H.:
          <article-title>AToMPM: A Web-based Modeling Environment</article-title>
          . In: MoDELS Demonstrations. (
          <year>2013</year>
          )
          <fpage>21</fpage>
          -
          <lpage>25</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Holzmann</surname>
            ,
            <given-names>G.J.:</given-names>
          </string-name>
          <article-title>The model checker spin</article-title>
          .
          <source>IEEE Trans. Softw. Eng</source>
          .
          <volume>23</volume>
          (
          <year>1997</year>
          )
          <fpage>279</fpage>
          -
          <lpage>295</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Deshayes</surname>
            ,
            <given-names>R.:</given-names>
          </string-name>
          <article-title>A domain-specific modeling approach for gestural interaction</article-title>
          . In:
          <article-title>Visual Languages and Human-Centric Computing (VL/HCC)</article-title>
          .
          <article-title>(</article-title>
          <year>2013</year>
          )
          <fpage>181</fpage>
          -
          <lpage>182</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Deshayes</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mens</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palanque</surname>
            ,
            <given-names>P.:</given-names>
          </string-name>
          <article-title>A generic framework for executable gestural interaction models</article-title>
          .
          <source>In: Visual Languages / Human Centric Computing</source>
          . (
          <year>2013</year>
          )
          <fpage>35</fpage>
          -
          <lpage>38</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Navarre</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Palanque</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ladry</surname>
            ,
            <given-names>J.F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barboni</surname>
          </string-name>
          , E.:
          <article-title>ICOs: A model-based user interface description technique dedicated to interactive systems addressing usability, reliability and scalability</article-title>
          .
          <source>ACM Trans. Comput.-Hum. Interact</source>
          .
          <volume>16</volume>
          (
          <year>2009</year>
          )
          <volume>18</volume>
          :
          <fpage>1</fpage>
          -
          <lpage>18</lpage>
          :
          <fpage>56</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Cimatti</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mover</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tonetta</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Proving and explaining the unfeasibility of message sequence charts for hybrid systems</article-title>
          .
          <source>In: Proceedings of the International Conference on Formal Methods in Computer-Aided Design. FMCAD</source>
          '
          <volume>11</volume>
          (
          <year>2011</year>
          )
          <fpage>54</fpage>
          -
          <lpage>62</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Li</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hu</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhao</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zheng</surname>
          </string-name>
          , G.:
          <article-title>Consistency checking of concurrent models for scenario-based specifications</article-title>
          .
          <source>In: SDL</source>
          <year>2005</year>
          :
          <article-title>Model Driven</article-title>
          . Volume
          <volume>3530</volume>
          of Lecture Notes in Computer Science. Springer Berlin Heidelberg (
          <year>2005</year>
          )
          <fpage>298</fpage>
          -
          <lpage>312</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Pelliccione</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Inverardi</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Muccini</surname>
          </string-name>
          , H.:
          <article-title>Charmy: A framework for designing and verifying architectural specifications</article-title>
          .
          <source>IEEE Trans. Softw. Eng</source>
          .
          <volume>35</volume>
          (
          <year>2009</year>
          )
          <fpage>325</fpage>
          -
          <lpage>346</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Gabmeyer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Kaufmann,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Seidl</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A classification of model checking-based verification approaches for software models</article-title>
          .
          <source>In: Proceedings of the STAF Workshop on Verification of Model Transformations (VOLT</source>
          <year>2013</year>
          ).
          <article-title>(</article-title>
          <year>2013</year>
          )
          <fpage>1</fpage>
          -
          <lpage>7</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Ziemann</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Ocl extended with temporal logic</article-title>
          . In Broy,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Zamulin</surname>
          </string-name>
          , A., eds.:
          <source>Perspectives of System Informatics. Volume 2890 of Lecture Notes in Computer Science</source>
          . Springer Berlin Heidelberg (
          <year>2003</year>
          )
          <fpage>351</fpage>
          -
          <lpage>357</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Bill</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gabmeyer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Kaufmann,
          <string-name>
            <given-names>P.</given-names>
            ,
            <surname>Seidl</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>OCL meets CTL: Towards CTL-Extended OCL Model Checking</article-title>
          .
          <source>In: Proceedings of the MODELS 2013 OCL Workshop. Volume 1092 of CEUR Workshop Proceedings</source>
          . (
          <year>2013</year>
          )
          <fpage>13</fpage>
          -
          <lpage>22</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Combemale</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          , Cre´gut,
          <string-name>
            <given-names>X.</given-names>
            ,
            <surname>Pantel</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>A Design Pattern to Build Executable DSMLs</article-title>
          and
          <string-name>
            <surname>Associated</surname>
            <given-names>V&amp;V</given-names>
          </string-name>
          <string-name>
            <surname>Tools</surname>
          </string-name>
          . In:
          <string-name>
            <surname>Asia-Pacific Softw</surname>
          </string-name>
          .
          <source>Eng. Conf. (APSEC)</source>
          .
          <article-title>(</article-title>
          <year>2012</year>
          )
          <fpage>282</fpage>
          -
          <lpage>287</lpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Klein</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Giese</surname>
          </string-name>
          , H.:
          <article-title>Joint structural and temporal property specification using timed story scenario diagrams</article-title>
          .
          <source>In: Proceedings of the 10th International Conference on Fundamental Approaches</source>
          to Software Engineering. FASE'
          <volume>07</volume>
          (
          <year>2007</year>
          )
          <fpage>185</fpage>
          -
          <lpage>199</lpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>