<!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>Modeling Crisis Management System With the Restricted Use Case Modeling Approach</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gong Zhang</string-name>
          <email>zhanggong@sei.buaa.edu.cn</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Tao Yue</string-name>
          <email>tao@simula.no</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Shaukat Ali</string-name>
          <email>shaukat@simula.no</email>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>School of Computer Science and Engineering, Beihang University</institution>
          ,
          <addr-line>Beijing</addr-line>
          ,
          <country country="CN">China</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Simula Research Laboratory P.</institution>
          <addr-line>O. Box 134, Lysaker</addr-line>
          ,
          <country country="NO">Norway</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Use case modeling is commonly applied to document requirements. Use case specifications (UCSs) are usually structured, unrestricted textual documents complying with a certain template. However, because they remain essentially textual, ambiguities are inevitable. In our previous work, we proposed a new use case modeling approach, named as Restricted Use Case Modeling (RUCM), which is composed of a set of well-defined restriction rules and a new template. The goal was to reduce ambiguity and facilitate automated analysis. In our works, RUCM has been systematically and empirically evaluated through case studies to be easy to apply and leads to higher quality of UML analysis models. In this paper, we modeled the Crisis Management System (CMS) case study using RUCM and our experience proved that RUCM is easy to apply and sufficient to capture the requirements provided for the case study.</p>
      </abstract>
      <kwd-group>
        <kwd>Use Case</kwd>
        <kwd>Use Case Modeling</kwd>
        <kwd>Use Case Template</kwd>
        <kwd>Restriction Rules</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Restricted Use Case Modeling (RUCM) Approach</title>
      <p>In this section, we describe key constructs of the RUCM approach.
2.1</p>
      <sec id="sec-1-1">
        <title>Use case template</title>
        <p>Our use case template has eleven first-level fields (1st column in Table 1.). The last
four fields are decomposed into second-level fields (2nd column in the last four rows).
The last column of each row explains the corresponding field(s). There is no need to
further discuss the first seven fields since they are straightforward and commonly
encountered in many templates. Below we focus the discussion on the Basic Flow and
Alternative Flows fields.</p>
        <p>
          A basic flow describes a main successful path. It often does not include any
condition or branching [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]. It is recommended to describe separately the conditions
and branching in alternative flows. A basic flow is composed of a sequence of steps
and a postcondition. Each UCS can only have one basic flow. Alternative flows
describe all the other scenarios or branches, both success and failure. An alternative
flow always depends on a condition occurring in a specific step in a flow of reference,
referred to as reference flow, and that reference flow is either the basic flow or an
alternative flow itself. The branching condition is specified in the reference flow by
following restriction rules (R20 and R22—Section 2.2). We refer to steps specifying
such conditions as condition steps and the other steps as action steps. Similarly to the
basic flow, an alternative flow is composed of a sequence of numbered steps. The
action steps can be one of the following five interactions (which are reused from [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]
except for the fifth):
1) Primary actor ! system: the primary actor sends a request and data to the
system;
2) System ! system: the system validates a request and data;
3) System ! system: the system alters its internal state (e.g., recording or
modifying something);
4) System ! primary actor: the system replies to the primary actor with a
result; and
5) System ! secondary actor: the system sends requests to a secondary actor.
        </p>
        <p>All steps are numbered sequentially. This implies that each step is completed
before the next one is started. If there is a need to express conditions, iterations, or
concurrency, then specific keywords, specified as restriction rules should be applied.</p>
        <p>
          We classify alternative flows into three types: specific, global, and bounded
alternative flows. This classification is adapted from [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]. A specific alternative flow is
an alternative flow that refers to a specific step in the reference flow. A bounded
alternative flow is a flow that refers to more than one step in the reference flow–
consecutive steps or not. A global alternative flow (called general alternative flow in
[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]) is an alternative flow that refers to any step in the reference flow. Distinguishing
different types of alternative flows makes interactions between the reference flow and
its alternative flows much clearer. For specific and bounded alternative flows, a RFS
(Reference Flow Step) section, specified as rule R19, is used to specify one or more
(reference flow) step numbers. Whether and where the flow merges back to the
reference flow or terminates the use case must be specified as the last step of the
alternative flow. Similarly to the branching condition, merging and termination are
specified by following restriction rules (R24 and R25—Section 2.2). By doing so, we
can avoid potential ambiguity in UCSs caused by unclear specification of interactions
between the basic flow and its corresponding alternative flows. Each alternative flow
must have a postcondition (enforced by restriction rule R26—Section 2.2).
        </p>
        <p>It is usual to provide a postcondition describing a constraint that must be true
when a use case terminates. If the use case contains alternative flows, then the
postcondition of the use case should describe not only what must be true when the
basic flow terminates but also what must be true when each alternative flow
terminates. The branching condition to each alternative flow is then necessarily part
of the postcondition (to distinguish the different possible results). In such a case, the
postcondition becomes complex and the branching condition for each alternative flow
is redundantly described (both in the steps of flows and the postcondition), which
therefore increases the risk of ambiguity in UCSs. Our template enforces that each
flow of events (both basic flow and alternative flows) of a UCS contains its own
postcondition and therefore avoids such ambiguity.
2.2</p>
      </sec>
      <sec id="sec-1-2">
        <title>Restriction rules</title>
        <p>The restriction rules are classified into two groups: restrictions on the use of natural
language, and restrictions enforcing the use of specific keywords for specifying
control structures. The first group of restrictions is further divided into two categories
according to their location of application (see below). Each restriction rule is assigned
a unique number.</p>
        <p>Commonly required for
UCSs.</p>
        <p>Keep one term to describe one thing.</p>
        <p>Modal verbs and adverbs usually
indicate uncertainty; therefore
metrics should be used if possible.</p>
        <p>R12 Use simple sentences only. A simple sentence Reduce ambiguity and facilitate
must contain only one subject and one predicate. automated NL parsing.</p>
        <p>R13 Don’t use negative adverb and adjective (e.g.,</p>
        <p>hardly, never), but it is allowed to use not or no.</p>
        <p>R14 Don’t use pronouns (e.g. he, this).</p>
        <p>R15 Don’t use participle phrases as adverbial
modifier. For example, the italic-font part of the
sentence “ATM is idle, displaying a Welcome
message”, is a participle phrase.</p>
        <p>R16 Use “the system” to refer to the system under Keep one term to describe the
design consistently. system; therefore reduce ambiguity.</p>
        <p>
          Restriction rules R1-R16 in Table 2. constrain the use of natural language: the
table explains why they are needed to reduce ambiguity. Rules R1-R7 apply only to
action steps; they do not apply to condition steps, preconditions or postconditions.
Rules R8-R16 apply to all sentences in a UCS: action steps, condition steps,
preconditions, postconditions, and sentences in the brief description. Rules R8-R11
and R16 aim to reduce ambiguity of UCSs; the remaining rules (R12-R15) can help
reduce ambiguity and also facilitate automated generation of analysis models. Recall
that facilitating automated derivation of initial analysis models from UCSs is also one
of our goals, though this is not discussed in this paper. These two sets of restrictions
are thought to be good practice for writing clear and concise UCSs (e.g., [
          <xref ref-type="bibr" rid="ref1 ref3 ref5">1, 3, 5</xref>
          ])
except for R13 and R15. We add these two rules because we observed that negative
adverbs, negative adjectives, and participle phrases are very difficult to parse by
natural language parsers. R9 requires using words consistently to document UCSs. A
common approach to do so is to use a domain model and glossary (e.g., [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ], [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]) as a
basis to write UCSs.
        </p>
        <p>The remaining ten restriction rules (R17-R26) constrain the use of control
structures, except R26 that specifies that each basic flow and alternative flow should
have its own postcondition. R17 and R18 specify keywords to describe use case
dependencies include and extend. Sentences containing the keywords INCLUDE USE
CASE and EXTENDED BY USE CASE are referred to as dependency sentences.
R19 specifies keyword RFS, which is used in a specific (or bounded) alternative flow
to refer to a step number (or a set of step numbers) of a reference flow that this
alternative flow branches from. Rules R20-R23 specify the keywords used to specify
conditional logic sentences (IF-THEN-ELSE-ELSEIF-ENDIF), concurrency
sentences (MEANWHILE), condition checking sentences (VALIDATES THAT), and
iteration sentences (DO-UNTIL), respectively. Keyword VALIDATES THAT (R22)
specifies that a condition is evaluated by the system and must be true to proceed to the
next step. This rule also requires that an alternative flow describing what happens
when the validation fails (the condition does not hold) be described. Rules R24 and
R25 specify that an alternative flow ends with a step using either keyword ABORT or
keyword RESUME STEP, thereby clearly specifying whether the flow returns back to
the reference flow and where (using keyword RESUME STEP followed by a
returning step number) or terminates (using keyword ABORT).</p>
        <p>R17-R21 and R23 have been proposed in the literature and we reused them with
some variation. R22, R24 and R25 are newly proposed in this work for the purpose of
making the whole set of restrictions as complete as possible so that flows of events
and interactions between the basic flow and the alternatives can be clearly and
concisely specified. Applying these rules helps reducing ambiguity in UCSs, and also
facilitates automated NL processing (e.g., correctly parse sentences with our specified
keywords) and the generation of analysis models, especially sequence diagrams.</p>
        <p>
          The detailed description of RUCM is provided in [
          <xref ref-type="bibr" rid="ref7 ref8">7, 8</xref>
          ]. For transforming RUCM
models to UML class, sequence, activity and state machine diagrams, please refer to
our previous work [
          <xref ref-type="bibr" rid="ref10 ref6 ref9">6, 9, 10</xref>
          ].
3
        </p>
      </sec>
    </sec>
    <sec id="sec-2">
      <title>RUCM Model for the Crisis Management System</title>
      <p>
        In the requirements specification document of CMS, there is only one use case in the
provided case study and thus we don’t show the use case diagram. The RUCM model
for CMS is available in [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], and it is also presented in Appendix. In our model, we
describe how we used the RUCM template and restrictions to specify the use case
specification for use case “Communicate with Other Coordinator”. In addition, we
demonstrate how we use RUCM to specify non-functional requirements provided in
the case study document.
October 28, 2013,
http://www.cs.colostate.edu/remodd/v1/content/modelingcrisis-management-system-restricted-use-case-modeling-approach
      </p>
    </sec>
    <sec id="sec-3">
      <title>Appendix</title>
      <sec id="sec-3-1">
        <title>Use Case: Communicate with Other Coordinator</title>
        <p>The RUCM template and restriction rules were applied to specify the use case
specification for this use case as shown below. The use case specification is
composed of one basic flow, six specific alternative flows and two global alternative
flows. The control branches from the basic flow to all the alternative flows are clearly
specified using RUCM. Restriction rules on natural language were applied to make
English sentences more precise. Our own interpretation on some of the use case
specification provided in the workshop case study is reflected as part of the model.
Notice that we specified postconditions for each of the flow of events.</p>
      </sec>
      <sec id="sec-3-2">
        <title>Non-functional requirements</title>
        <p>This use case is used for capture non-functional requirements of the system. These
non- functional requirements are global for all the use cases in the use case model,
though currently there is only one use case in the use case model. Therefore, we used
Global Alternative Flows to capture each non-functional requirement provided in the
case study description. Notice that for each non- functional requirement, RUCM
naturally provides a mechanism to define an exception handler alternative flow, from
which one can describe the scenario when the non-functional requirement is not met.
As for specifying functional requirements, RUCM also enforces each flow of events
to their own postconditions. By modeling this case study, we are confident that
RUCM can also be used to either directly or with some adaption to capture
nonfunctional properties.</p>
      </sec>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bittner</surname>
            <given-names>K.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Spence</surname>
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Use Case Modeling</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Boston</surname>
          </string-name>
          (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bruegge</surname>
            <given-names>B.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Dutoit</surname>
            <given-names>A. H.</given-names>
          </string-name>
          :
          <article-title>Object-Oriented Software Engineering Using UML, Patterns, and</article-title>
          <string-name>
            <given-names>Java. Prentice</given-names>
            <surname>Hall</surname>
          </string-name>
          , 2nd
          <string-name>
            <surname>Edition</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Cockburn</surname>
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Writing effective use cases</article-title>
          . Addison-Wesley Boston (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Larman</surname>
            <given-names>C.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Applying</surname>
            <given-names>UML</given-names>
          </string-name>
          and
          <string-name>
            <surname>Patterns.</surname>
          </string-name>
          Prentice-Hall, 3rd
          <string-name>
            <surname>Edition</surname>
          </string-name>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Schneider</surname>
            <given-names>G.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Winters</surname>
            <given-names>J. P.</given-names>
          </string-name>
          :
          <article-title>Applying use cases: a practical guide</article-title>
          .
          <source>Object Technology</source>
          ,
          <source>AddisonWesley</source>
          (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Yue</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ali</surname>
            <given-names>S.</given-names>
          </string-name>
          and Briand L.:
          <article-title>Automated Transition from Use Cases to UML State Machines to Support State-based Testing</article-title>
          .
          <source>Proc. The Seventh European Conference on Modeling Foundations and Applications (ECMFA)</source>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Yue</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Briand</surname>
            <given-names>L.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Labiche</surname>
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Facilitating the Transition from Use Case Models to Analysis Models: Approach and Experiments</article-title>
          .
          <source>ACM Transactions on Software Engineering and Methodology (TOSEM)</source>
          , vol.
          <volume>22</volume>
          (
          <issue>1</issue>
          ). (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Yue</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Briand</surname>
            <given-names>L. C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Labiche</surname>
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>A Use Case Modeling Approach to Facilitate the Transition Towards Analysis Models: Concepts and Empirical Evaluation</article-title>
          .
          <source>Proc. MODELS2009</source>
          , 5795/
          <year>2009</year>
          , pp.
          <fpage>484</fpage>
          -
          <lpage>498</lpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Yue</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Briand</surname>
            <given-names>L. C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Labiche</surname>
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>An Automated Approach to Transform Use Cases into Activity Diagrams</article-title>
          .
          <source>Proc. 6th ECMFA, LNCS 6138</source>
          , pp.
          <fpage>337</fpage>
          -
          <lpage>353</lpage>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Yue</surname>
            <given-names>T.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Briand</surname>
            <given-names>L. C.</given-names>
          </string-name>
          and
          <string-name>
            <surname>Labiche</surname>
            <given-names>Y.</given-names>
          </string-name>
          :
          <article-title>Automatically Deriving a UML Analysis Model from a Use Case Model</article-title>
          . Simula Research Laboratory,
          <source>Technical Report</source>
          <year>2010</year>
          -
          <volume>15</volume>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. Gong
          <string-name>
            <given-names>Z.</given-names>
            ,
            <surname>Tao</surname>
          </string-name>
          <string-name>
            <given-names>Y.</given-names>
            and
            <surname>Shaukat</surname>
          </string-name>
          <string-name>
            <surname>A.</surname>
          </string-name>
          :
          <article-title>Modeling Crisis Management System with the Restricted Use Case Modeling Approach. Repository for Model-Driven Development (ReMoDD), October 21</article-title>
          . Retrieved
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>