<!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>A Framework for Specifying and Analyzing Temporal Properties of UML Class Models</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Mustafa Al-Lail Colorado State University Computer Science Department</institution>
          ,
          <country country="US">USA</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Software designers widely use UML Class Models to specify the static structure of object-oriented systems. Temporal properties of class models can be expressed using the TOCL, an extension of OCL with elements of a linear temporal logic. Speci cation and veri cation of temporal properties expressed in TOCL is non-trivial and no automated tools exist that aid such veri cation. Existing approaches rely on transforming the UML models to other languages that have automated analysis support. Such transformation is complex and can introduce errors. Towards this end, this paper proposes a framework for specifying and directly analyzing temporal properties expressed in TOCL. The framework was validated using two demonstration case studies and in both cases, the approach uncovered design faults.</p>
      </abstract>
      <kwd-group>
        <kwd>Analysis</kwd>
        <kwd>Veri cation</kwd>
        <kwd>Class Model</kwd>
        <kwd>Temporal Properties</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Problem and motivation</title>
      <p>
        UML Class Models are probably the most common speci cation diagrams used
in the software industry. Automated analysis of class models often uncovers
design problems in a timely manner and therefore saves time and e ort.
Specifying and analyzing temporal properties of class models is non-trivial due to
the following challenges. First, specifying temporal properties in formal
temporal logic notations, such as LTL and CTL, can be challenging [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ], speci cally
for most Model-Driven Engineering (MDE) practitioners. Second, existing
approaches (e.g., see [2{10]) rely on transforming the UML behavioral models to
another language that supports automated analysis. Such transformation is
complex and can introduce errors due to the gaps in semantics between UML and
the target languages. Third, given the complex state spaces and the dynamic
nature of the allocation and deallocation of object-oriented systems, developing
model-checking support for such systems is challenging [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ].
      </p>
      <p>This research proposal presents a framework that addresses the preceding
challenges. In particular, the framework aims to provide the following results: (1) a
class model analysis approach that is UML-oriented, (2) an object-oriented
technique for specifying temporal properties, and (3) a development process with an
automated tool. A successful development of such framework will yield results
that can be utilized by MDE practitioners to develop reliable complex systems.</p>
    </sec>
    <sec id="sec-2">
      <title>Background and related work</title>
      <p>
        A number of model-checking-based techniques exist for specifying and analyzing
temporal properties in UML behavioral models, such as statemachines and
activity diagrams [2{10]. These techniques involve developing an exogenous
transformation process. Typically, the UML behavioral models are transformed to
languages that are supported by model checking tools. For example, the vUML [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]
tool automatically transforms UML statemachines to PROMELA speci cations.
A LTL temporal property is speci ed in PROMELA language as well. The SPIN
model checker is then invoked to verify the desired property.
      </p>
      <p>
        Three main shortcomings are associated with these approaches. First, e ective
use of these model-checking techniques requires developers to have specialized
skills that are not UML-related. Second, the correctness of the analysis results
depends on the correctness of the transformation and whether it preserves the
semantics of the source UML models. Third, the results of the analysis performed
by the back-end analysis tool must be presented to developers in UML terms in
order to be examined, thus requiring another transformation process.
The existing structural anlaysis tools of UML/OCL such as USE [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] and OCLE [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]
provide little support for temporal analysis. Towards this end, researchers have
demonstrated how scenarios can be statically modeled as a sequence of state
transition, which in turn, can be veri ed using USE and OCLE [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. However,
adapting such an approach for verifying temporal properties is still an ongoing
challenge. This research proposal aims to ll this gap.
3
3.1
      </p>
    </sec>
    <sec id="sec-3">
      <title>Approach and uniqueness</title>
      <p>
        The UML-based analysis approach
The research question that led to this approach is the following: Given a UML
design class model, and a temporal property, is there a scenario, which is supported
by the class model, that violates the property? A design class model speci es the
set of all possible states of a system and includes operations contracts to specify
the system behavior. A scenario is a sequence of state transition supported by
the class model. A temporal property is speci ed in TOCL, which is a temporal
logic extension of OCL [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Fig. 1 presents an overview of the approach. At
the front-end of the approach, a system designer is responsible for 1) creating a
design class model, and 2) specifying a temporal property in TOCL. Then, the
system designer utilizes the USE Model Validator at the back-end to generate a
number of behavioral scenarios against which the temporal property is checked.
If any of the scenarios violates the TOCL property, the tool returns it as a
counterexample. The back-end processing is transparent to the system designer. The
approach consists of the following four major steps:
Step1: Unfolding of Application Design Class Model. This step takes
a design class model as input and produces a transition-based class model of
      </p>
      <sec id="sec-3-1">
        <title>Application Design Class Model</title>
        <p>Operation OCL Constraints
context A::Aop():void
pre:self.b→notEmpty()
pre:self.A_att=false
post:self.A_att=true
context B::Bop():int
pre:self.a.A_att =true</p>
        <p>A
-A_att : Boolean
+Aop(in k : Boolean)
-a 0. 1
-b 0. 1</p>
        <p>B
-B_att : Boolean
+Bop() : int
creates
System specified in
designer
specifies B_att becomes true in next state
in response to A_att being true
in current state.
--------------------------------context A
inv: self.A_att= true implies
next self.b.B_att=true</p>
      </sec>
      <sec id="sec-3-2">
        <title>TOCL Temporal Property</title>
        <sec id="sec-3-2-1">
          <title>Step1</title>
          <p>Snapshot Transition Model(STM)
context Snapshot::getNext():Snapshot = self.nextT.nextS
context Snapshot::futureClosure(sp : Set(Snapshot)) : Set(Snapshot)= if
sp→includesAl (sp→col ect(sn:Snapshot | sn.getNext())→asSet()) then sp else
futureClosure(sp→union (sp→col ect(t:Snapshot| t.getNext())→asSet()))endif
context Snapshot::getPost(): Set(Snapshot) = self.futureClosure(Set{self.getNext()})
{-obredfoerreedS} 1 Before Aop</p>
          <p>Snapshot 0.T1ransi{toio-rnndeexretTd} ---kAAPP:roBesot:o:AleAan
OCL Constraints
context Aop
inv: APre.b→notEmpty()
inv:APre.A_att =false
inv:APost.A_att=true
context Bop
inv:BPre.a.A_att=true</p>
        </sec>
        <sec id="sec-3-2-2">
          <title>Step2</title>
          <p>a:A
A_at :Boolean</p>
          <p>b:B
B_at :Boolean</p>
          <p>Bop
-b{oerfdoerereTd} 0. 1 -BPre : B
-BPost : B
1 {o-rndeexrteSd} After specified in -ret : int
context A
inv: let CurrentSnapshot: Snapshot = self.getCurrentSnapshot()
in let NextSnapshot:Snapshot=CurrentSnapshot.getNext()
in self.A_att=true implies NS.b.B_att=true</p>
        </sec>
      </sec>
      <sec id="sec-3-3">
        <title>OCL Property</title>
      </sec>
      <sec id="sec-3-4">
        <title>Sequence of snapshot transition counterexample</title>
        <p>ao1:Aop
APre:A=a1
APost:A=a2
k:Boolean=true
bo1:Bop
BPre:B=b2
BPost:B=b3
ret:int=1</p>
      </sec>
      <sec id="sec-3-5">
        <title>USE Model</title>
      </sec>
      <sec id="sec-3-6">
        <title>Validator</title>
        <sec id="sec-3-6-1">
          <title>Step3</title>
          <p>a:A
b:B
Aop()
Bop()</p>
        </sec>
      </sec>
      <sec id="sec-3-7">
        <title>Sequence diagram counterexample</title>
        <sec id="sec-3-7-1">
          <title>Step4</title>
          <p>s1:Snapshot
s2:Snapshot
s3:Snapshot
A_at :Boao1le:aAn=false B_at :Bobo1le:aBn=false</p>
          <p>a2:A
A_at :Boolean=true</p>
          <p>b2:B
B_at :Boolean=false</p>
          <p>A_at :Boao3le:aAn=true B_at :Boobl3ea:nB=false
In the application model, the designer forgot to specify a postcondition of the Bop to assert that
the B_att becomes true, which results in B_att does not become true of the next state in which</p>
          <p>
            A_att becomes true. This violates the specified temporal property.
behavior, which is called a Snapshot Transition Model (ST M ). The ST M is a
class model that characterizes the unfolding of the behavior of the design class
model as valid sequences of state transitions caused by executions of operations.
A state is called a snapshot and it is a structured class that represents a con
guration of objects. The ST M is formed by (1) creating a Snapshot class whose
instances represent states in a transition system, (2) creating a hierarchy of
transition classes that represents operation invocations, (3) converting the
operations' contract conditions to invariants of the transition subclasses, and (4)
de ning traversal query operations between snapshots. The ST M is
mechanically generated from the design class model [
            <xref ref-type="bibr" rid="ref14">14</xref>
            ].
          </p>
          <p>The approach utilizes the snapshots traversal operations to specify and analyze
temporal properties in OCL. Speci cally, the operation getNext() returns the
next snapshot and the operation getPost() returns the set of all snapshots
that come after a snapshot. The operations getPrevious() and getPre() are
de ned similarly.</p>
          <p>Step2: Interpreting TOCL as OCL property. The unfolding of the
transition system of the design class model results in linear traces (sequence of
snapshots represented by the ST M ) that can be constrained by OCL. The approach
thus interprets the TOCL property, speci ed in the class model, as OCL
rstorder constraint that is de ned in the context of the SM T . Fig. 1 shows an
example. The TOCL and OCL properties are instances of formal property
speci cation patterns, discussed in Section 3.2.</p>
          <p>
            Step 3: Analysis. The approach uses the USE Model Validator [
            <xref ref-type="bibr" rid="ref16">16</xref>
            ] to produce
scenarios (e.g., instances of the ST M ) and check if any of them violates the OCL
property generated in Step 2. The Model Validator uses boolean satis ability
(SAT) solver to perform the analysis. The tool generates a constrained number
of scenarios, not all possible scenarios. The designer uses scopes to restrict the
number of instances that each class can have and limit the number of transitions
in a scenario. As such, the Model Validator enumerates all possible scenarios
within the de ned scopes and checks them against a given property. When no
counterexample is found, the scopes can be increased to provide the system
designer with higher con dence that the property holds on the model; but that
does not guarantee that there is no counterexample in bigger scopes. Provided
the right tool, the analysis could also be performed by more powerful solvers
such as Satis ability Modulo Theories (SMT) solvers.
          </p>
          <p>
            Step 4: Extracting sequence diagrams. A big number of objects and
transitions produces a counterexample that is complicated and di cult to examine. To
make the analysis result more readable, an algorithm was developed to extract
a sequence diagram from a scenario [
            <xref ref-type="bibr" rid="ref17">17</xref>
            ].
3.2
          </p>
          <p>
            The temporal property speci cation technique
Many software designers nd specifying temporal properties, in a formal
notation, challenging [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ]. The research question that led to this technique is:How can
we accommodate UML modelers who are unfamiliar with formal temporal
language notations? Dwyer et. al [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ] designed a number of property speci cation
patterns to aid in specifying temporal properties in di erent formal notations
such as LTL and CTL. To address the above question, the patterns of Dwyer
et al. [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ] are de ned in the two object-oriented notations, TOCL and OCL. A
user of the technique determines the pattern that best ts the requirement and
then uses the corresponding TOCL pattern to write the intended property. The
OCL property is then systematically generated from the TOCL.
A total of eight patterns are proposed by Dwyer et al. [
            <xref ref-type="bibr" rid="ref18">18</xref>
            ] among which the
response pattern is the most widely used in practice [
            <xref ref-type="bibr" rid="ref1">1</xref>
            ]. The response pattern
captures the requirement that a state condition eventually holds in response to
another condition. Pattern scopes specify the portion of the system execution in
which a property must hold. Table 1 gives the TOCL and OCL patterns of the
response pattern in two scopes. The expression Sj= P indicates that the property
P holds in the snapshot S. In instances of the patterns, the approach generates
the OCL condition that asserts that P is satis ed in S. Refer to Table 1 for an
example.
- Scope
Globally
The main contribution of this research is a framework for specifying and
analyzing temporal properties of the UML class models. The framework provides three
results. First, the analysis approach does not require exogenous transformation
to other languages, nor does it require that system designers to be familiar
with notations other than UML and TOCL. Therefore, the analysis approach
is totally UML-oriented. Second, software design patterns are good solutions to
some software engineering problems. In the framework, the problem of specifying
temporal properties is addressed by de ning TOCL speci cation patterns. UML
modelers can employ these TOCL patterns that represent a set of commonly
occurring properties to correctly and concisely specify temporal properties in
object-oriented notation. Third, the development of a tool that fully automates
the procedures and the algorithms is still ongoing, although a large portion of
the framework has been implemented.
          </p>
          <p>
            This research is validated by applying it to the speci cation and veri cation of
two demonstration case studies [
            <xref ref-type="bibr" rid="ref17 ref19">19, 17</xref>
            ]. The rst case study is based on the
Generalized Spatio-Temporal Role-Based Access Control Model(GSTRBAC) [
            <xref ref-type="bibr" rid="ref20">20</xref>
            ].
The second case study is based on the Steam Boiler Control System speci
cation problem [
            <xref ref-type="bibr" rid="ref21">21</xref>
            ]. The results of the studies show that all the temporal properties
of the two systems can be expressed by the property speci cation technique, and
that the analysis approach is capable of uncovering errors.
          </p>
          <p>Future work will concentrate on improving the framework and addressing its
limitations. First, the approach is lightweight and only checks nite scenarios;
therefore, unbounded liveness properties that require in nite scenarios can not be
checked. Investigation will be performed on how the approach can be extended to
support such properties. Second, the scalability and the e ciency of the property
speci cation and analysis approaches will be investigated. Speci cally, a slicing
technique will be developed to verify properties on large class models.</p>
        </sec>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Dwyer</surname>
            ,
            <given-names>M.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Avrunin</surname>
            ,
            <given-names>G.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corbett</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          :
          <article-title>Patterns in property speci cations for nite-state veri cation</article-title>
          .
          <source>In: ICSE</source>
          . (
          <year>1999</year>
          )
          <volume>411</volume>
          {
          <fpage>420</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Lilius</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Porres</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Paltor</surname>
            ,
            <given-names>I.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Centre</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Science</surname>
          </string-name>
          , C.:
          <article-title>vUML: a Tool for Verifying UML Models</article-title>
          .
          <article-title>(</article-title>
          <year>1999</year>
          )
          <volume>255</volume>
          {
          <fpage>258</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Eshuis</surname>
          </string-name>
          , R.:
          <article-title>Symbolic model checking of uml activity diagrams</article-title>
          .
          <source>ACM Trans. Softw. Eng. Methodol</source>
          .
          <volume>15</volume>
          (
          <year>January 2006</year>
          )
          <volume>1</volume>
          {
          <fpage>38</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>S.J.</given-names>
          </string-name>
          , Liu,
          <string-name>
            <surname>Y.</surname>
          </string-name>
          :
          <article-title>An Automatic Approach to Model Checking UML State Machines</article-title>
          . In: SSIRI (Companion). (
          <year>2010</year>
          ) 1{
          <fpage>6</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5. Schafer, T.,
          <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>Electr. Notes Theor. Comput. Sci</source>
          .
          <volume>55</volume>
          (
          <issue>3</issue>
          ) (
          <year>2001</year>
          )
          <volume>357</volume>
          {
          <fpage>369</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Shen</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Low</surname>
            ,
            <given-names>W.L.</given-names>
          </string-name>
          :
          <article-title>Using Abstract State Machines to Support UML Model Instantiation Checking</article-title>
          .
          <source>In: IASTED Conf. on Software Engineering</source>
          . (
          <year>2005</year>
          )
          <volume>100</volume>
          {
          <fpage>105</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dubrovin</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Junttila</surname>
            ,
            <given-names>T.A.</given-names>
          </string-name>
          :
          <article-title>Symbolic Model Checking of Hierarchical UML State Machines</article-title>
          . In: ACSD. (
          <year>2008</year>
          )
          <volume>108</volume>
          {
          <fpage>117</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Raschke</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Translation of UML 2 Activity Diagrams into Finite State Machines for Model Checking</article-title>
          . In: EUROMICRO-SEAA. (
          <year>2009</year>
          )
          <volume>149</volume>
          {
          <fpage>154</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Niewiadomski</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Penczek</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Szreter</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A New Approach to Model Checking of UML State Machines</article-title>
          .
          <source>Fundam. Inform</source>
          .
          <volume>93</volume>
          (
          <issue>1-3</issue>
          ) (
          <year>2009</year>
          )
          <volume>289</volume>
          {
          <fpage>303</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Xie</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Levin</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Browne</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          :
          <article-title>Model checking for an executable subset of uml</article-title>
          . In: ASE. (
          <year>2001</year>
          )
          <volume>333</volume>
          {
          <fpage>336</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Distefano</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>On Model Checking the Dynamics of Object-Based Software - a Foundational Approach</article-title>
          .
          <source>PhD thesis</source>
          , University of Twente (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Buttner,
          <string-name>
            <given-names>F.</given-names>
            ,
            <surname>Richters</surname>
          </string-name>
          ,
          <string-name>
            <surname>M.:</surname>
          </string-name>
          <article-title>USE: A UML-based Speci cation Environment for Validating UML and OCL</article-title>
          .
          <source>Sci. Comput</source>
          . Program.
          <volume>69</volume>
          (
          <issue>1-3</issue>
          ) (
          <year>2007</year>
          )
          <volume>27</volume>
          {
          <fpage>34</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Chiorean</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pasca</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Ca^rcu,
          <string-name>
            <given-names>A.</given-names>
            ,
            <surname>Botiza</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            ,
            <surname>Moldovan</surname>
          </string-name>
          ,
          <string-name>
            <surname>S.</surname>
          </string-name>
          :
          <article-title>Ensuring UML Models Consistency Using the OCL Environment</article-title>
          .
          <source>Electron. Notes Theor. Comput. Sci</source>
          .
          <volume>102</volume>
          (
          <year>November 2004</year>
          )
          <volume>99</volume>
          {
          <fpage>110</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          , France, R.B.,
          <string-name>
            <surname>Ray</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghosh</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>A Rigorous Approach to Uncovering Security Policy Violations in UML Designs</article-title>
          . In: ICECCS. (
          <year>2009</year>
          )
          <volume>126</volume>
          {
          <fpage>135</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <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: Ershov Memorial Conference. (
          <year>2003</year>
          )
          <volume>351</volume>
          {
          <fpage>357</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Soeken</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wille</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kuhlmann</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drechsler</surname>
          </string-name>
          , R.:
          <article-title>Verifying uml/ocl models using boolean satis ability</article-title>
          .
          <source>In: MBMV</source>
          . (
          <year>2010</year>
          )
          <volume>57</volume>
          {
          <fpage>66</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Al-Lail</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abdunabi</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , France,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Ray</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          :
          <article-title>An Approach to Analyzing Temporal Properties in UML Class Models</article-title>
          . In: Submitted to MODEVVA workshop. (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Dwyer</surname>
            ,
            <given-names>M.B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Avrunin</surname>
            ,
            <given-names>G.S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Corbett</surname>
            ,
            <given-names>J.C.</given-names>
          </string-name>
          :
          <article-title>Property speci cation patterns for nite-state veri cation</article-title>
          .
          <source>In: FMSP</source>
          . (
          <year>1998</year>
          )
          <volume>7</volume>
          {
          <fpage>15</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Al-Lail</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Abdunabi</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , France,
          <string-name>
            <given-names>R.</given-names>
            ,
            <surname>Ray</surname>
          </string-name>
          ,
          <string-name>
            <surname>I.</surname>
          </string-name>
          :
          <article-title>Rigorous Analysis of Temporal Access Control Properties in Mobile Systems</article-title>
          . In: ICECCS. (
          <year>July 2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Ramadan</surname>
            <given-names>Abdunabi</given-names>
          </string-name>
          , Mustafa Al-Lail, Indrakshi Ray, Robert France:
          <article-title>Speci cation, Validation, and Enforcement of a Generalized Spatio-Temporal Role-Based Access Control Model</article-title>
          .
          <source>IEEE Systems Journal</source>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Abrial</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          , Borger, E.,
          <string-name>
            <surname>Langmaack</surname>
          </string-name>
          , H.:
          <article-title>The Stream Boiler Case Study: Competition of Formal Program Speci cation and Development Methods</article-title>
          . In:
          <article-title>Formal Methods for Industrial Applications</article-title>
          . (
          <year>1995</year>
          )
          <volume>1</volume>
          {
          <fpage>12</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>