<!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>Goal-driven elaboration of OCL enriched UML class diagrams</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Robert Darimont</string-name>
          <email>robert.darimont@respect-it.be</email>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Christophe Ponsard</string-name>
          <email>christophe.ponsard@cetic.be</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Michel Lemoine</string-name>
          <email>michel.lemoine@gmail.com</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>CETIC Research Centre</institution>
          ,
          <addr-line>Gosselies</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Independent Consultant</institution>
          ,
          <addr-line>Toulouse</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>Respect-IT S.A.</institution>
          ,
          <addr-line>Louvain-la-Neuve</addr-line>
          ,
          <country country="BE">Belgium</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>UML class diagrams (or equivalent) are used to build a structural model of the system under design, including constraints captured using OCL. Being more focused on design, UML lacks support to make sure the model systematically captures the relevant domain concepts and properties in a traceable way, which is crucial for the subsequent design or testing steps. This paper shows how to apply goal-oriented requirements engineering techniques (GORE) to build UML class diagrams that are as complete as possible and consistent w.r.t. system goals and requirements captured using OCL. A mapping between both representations is de ned and implemented based on the KAOS meta-model and USE textual syntax. In addition, the GORE process also enables to consider di erent alternatives before selecting a speci c one and deriving specialised strengthenings of pre and post-conditions operations to enforce the system properties. The proposed approach is illustrated on excerpts of a railway system.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Model-Driven Engineering (MDE) has become popular for developing
softwarebased systems and is widely adopted to various extents in the industry [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
It is primary used in the design phase and possibly in connection with other
development and testing phases using model transformation, code generation,
model-based testing. The Uni ed Modelling Language (UML) has become the
common general purpose modelling language in software engineering [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] and
has been further extended into Systems Modeling Language (SysML) for system
engineering applications [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ].
      </p>
      <p>
        UML and SysML are not perfect, of course. Their latest evolutions have
improved by providing better de ned notations and related semantics using the
UML superstructure. More formal semantics have also been de ned for a
number of diagrams. In addition, the Object Constraint Language (OCL) improved
expressiveness to state richer properties that cannot be captured using the
graphical syntax [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
      <p>Nevertheless, a weak point of UML is its limited support for requirements
engineering:
{ about notations, UML has the concept of requirement. The Use Case
diagram enables a partial capture of main functionalities with limited
structuring and only coarse grained interactions between the system and its
environment. The class Diagram enables to capture the domain model and a
number of related properties, possibly with OCL. The dynamic behaviour of
a system can be speci ed using more speci c diagrams such the sequence,
activity or state machine diagrams, but those are already directed towards
solution design. SysML improves slightly over UML by providing a
Requirements diagram with limited structuring capabilities.
{ about the modelling process, a number of methods have been de ned and can
be driven by use cases, business processes or a domain analysis. However,
such methods usually fail to precisely record the rationale that triggered
the identi cation of a concept which should be related to the expression of
some properties, either descriptive (i.e. domain properties) or prescriptive
(i.e. requirements).</p>
      <p>
        In the scope of this paper, we will show how to achieve systematic identi
cation and speci cation of requirements using standard UML class diagrams. Such
diagrams can be used to build a domain model (i.e. at problem level) and/or
a conceptual design of the information system (i.e. at solution level). In both
cases, a key point is to model the relevant concepts without unnecessary noise.
Our focus is on building high quality UML class diagrams (or equivalent)
integrating a rich set of descriptive and prescriptive properties in a consistent way
with pre and post-conditions. For this purpose, we will rely on goal-oriented
requirements engineering (GORE) de ned in languages like KAOS [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], i* [
        <xref ref-type="bibr" rid="ref25">25</xref>
        ], or
URN/GRN [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. The key point of using such frameworks is that only the
reference to goals make it possible to claim a speci cation is complete [
        <xref ref-type="bibr" rid="ref26">26</xref>
        ]. We will
rely here on the KAOS variant which already includes a conceptual modelling
close to UML class diagram and has a well documented process [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Our main
contribution is to derive a more complete UML model using OCL to capture
properties and pre/post conditions using the textual speci cation de ned by the
UML Speci cation Environment (USE) has target language [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>The structure of our paper follows a model construction process. We assume
the reader is familiar with UML/OCL. Section 2 rst introduces the GORE
modelling notations and presents the requirements of a small underground
transportation system used as running example. Section 3 explains our mapping and
implementation through USE. Section 4 and 5 respectively detail how to deal
with operations and alternatives. Section 6 discusses the bene ts and limitation
of our approach in the light of related work. Finally Section 7 concludes and
present our future work. The whole paper will rely on di erent excerpts of a
railway system in order to illustrate the proposed approach.</p>
    </sec>
    <sec id="sec-2">
      <title>Goal-oriented requirements engineering with KAOS</title>
      <p>
        Goals capture, at di erent levels of abstraction, the various objectives the
system under consideration should achieve. GORE is concerned with the use of
goals for eliciting, elaborating, structuring, specifying, analysing, negotiating,
documenting, and modifying requirements [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
{ The agent model identi es the agents of both the system and the
environment as well as their interface and responsibilities. They can be shown
as part of goal graphs or in more speci c diagrams. Agents are represented
using an hexagonal shape.
{ The operations model describes how agents functionally cooperate to
ensure the ful lment of the requirements assigned to them and hence the
system goals. Operations are graphically represented using ovals. Functional
ow diagrams can be used between them.
      </p>
      <p>The di erent abstraction levels to express goals can range from high-level
strategic goals like \Maintain[Underground Safety] " down to more operational
goals such as \Avoid[travellers falling on tracks] " or \Avoid[train collisions] " as
depicted in Figure 2. High-level goals can be progressively re ned into more
concrete and operational ones through relationships linking a parent goal to several
sub-goals, with di erent ful lment conditions using either \AND-re nement" (all
sub-goals need to be satis ed) or \OR-re nement" (a single sub-goal is enough,
i.e. possible alternatives). For example, to avoid train collision di erent design
can be used like xed block systems or moving block systems. Later in the paper,
we will also see how to address the problem of a train that is longer than the
platform (modelled as an obstacle in Figure 2).</p>
      <p>The \WHY" and \HOW" questions can be used to conveniently navigate to
parent and sub-goals, respectively. The goal decomposition stops when reaching
a goal controllable by an agent, i.e. answering the \WHO" questions about
responsibility assignment. These goals are either requirements on software or
hardware components to design, or expectations on the behaviour of agents in
the environment (e.g. the train driver). Domain properties can also be involved
in a re nement. Such properties are intrinsically valid, like \A train can only be
at one location at a time" or be assumed like the fact that the train length is
shorter than the length of all platforms. In this case they need to be challenged
about their validity.</p>
      <p>Based on properties expressed in the goal model, one can start identifying
concepts and structuring them into the relevant concepts of the object model (i.e.
UML class diagram). Analysing the requirement Maintain[Door Closed While
Moving] will result in the identi cation of a Train entity. Moreover the Train
entity will be bound to a Door entity through a composition relationship with
obviously at least one door. The modelling approach is minimalist: only what
is strictly needed is modelled. For instance, at this point there are no other
concept identi ed and only two attributes are necessary the Door state (e.g. a
Boolean to represent a Door is closed) and the Train movement state (e.g. a
Real representing its speed). The resulting object model is depicted in Figure 2.
Note that a trace link between the Train entity and requirements involving it is
added using the \Concerns" link. This also allows to formalise that requirement
in the context of that Entity using the following OCL statement (also depicted
has pop-up property in Figure 2):</p>
      <sec id="sec-2-1">
        <title>Requirement 1 (Maintain Doors Closed While Moving)</title>
        <p>InformalDef: The train doors must be kept closed while it is moving
FormalDef: (self.speed &lt;&gt; 0) implies self.doors-&gt;forAll (closed)</p>
        <p>An agent is a software, device, or human component of the system that plays
some speci c role in goal satisfaction. It controls behaviours by performing
operations and run concurrently with each other. An agent is modelled by
responsibility links to goals. As stated earlier requirements di er from expectation based
on the fact the responsibility is on the system or the environment. In our case,
the Train Controller System (TCS) will be responsible of the \Maintain[Doors
Closed While Moving]] " requirement based on its capability to operate the
OpenDoors operation. Operations control state transitions and can be speci ed using
trigger/pre/post conditions either unconstrained or required to enforce a speci c
requirements. This will be further detailed in Section 4.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Generation UML class diagram with USE</title>
      <p>
        UML Speci cation Design Environment (USE) was mainly designed to validate
and verify speci cations consisting of class diagrams together with OCL
invariants and pre- and postconditions [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]. It provides support for instance of class
diagrams (i.e. UML object diagrams), including the ability to generate model
instances. It also has a nice textual syntax both for model and instance levels.
Once loaded into the tool, those models can be inspected visually using di
erent standard diagrams and with some automated layout support. The tool also
provide a control over the instance level and a command line interface allowing
one to load models and perform checks. The USE tool is implemented in Java
and available in Open Source license [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ].
      </p>
      <p>
        Table 1 de nes how to map a GORE object model into a UML class
diagram. This mapping covers the various constructs like entities, associations,
inheritance, di erent kind of goal concepts (Requirement, DomProp,...) and
operations. It was implemented using a Java plug-in for the Objectiver tool that
supports the KAOS method [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ].
GORE (KAOS) UML (USE)
Entity/Agent class
Obj1 isA Obj2 ; Obj1 isA Obj3 class Obj1 &lt;Obj2, Obj3
Binary Association without attributes but association
with association type, ie. association, com- composition
position, aggregation aggregation
Binary Association with attributes associationclass
N-ary Association rel without attributes association
N-ary Association rel with attributes associationclass
Operation Operation of the class associated to the
(and related pre/post-condition) agent performing the operation
FormalDomInvar of Entity/Agent Clause inv: in the class of the entity/Agent
FormalDomInvar of N-AryAssociation Clause inv: in the association class
FormalDef of Requirement/DomProp Clause inv: in the constraints section
      </p>
      <p>Applying the above mapping to the KAOS object model of Figure 2 yields
the following UML model. At this point, traceability is ensured by the same
naming convention, although more speci c identi er could also be added later
to guarantee a better and round-trip model synchronisation.</p>
      <sec id="sec-3-1">
        <title>Model 1 Translation of basic UML class Diagram</title>
        <p>Model UndergroundTransportationSystem
class Train
attributes</p>
        <p>speed : Integer
end
class Door
attributes</p>
        <p>closed : Boolean
end
composition Rel_1 between</p>
        <p>
          Train[
          <xref ref-type="bibr" rid="ref1">1</xref>
          ]
        </p>
        <p>Door[1..*] role doors
end
class TCS
operations
openDoors (tr: Train)
-- &lt;operation will be defined in section 4&gt;
end
constraints
context Train
-- train doors must be kept closed while the train is moving.
inv DoorsClosedWhileMoving:</p>
        <p>(self.speed &lt;&gt; 0) implies self.doors-&gt;forAll(closed)
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Deriving pre and post-conditions</title>
      <p>A KAOS operation is a state transition inside the system that can be controlled
by some agent. The unconstrained operation is speci ed using domain
preconditions (i.e. necessary condition) and post-conditions (resulting state). Note
that we will not consider trigger conditions (i.e. su cient conditions) because it is
not supported by UML. For the OpenDoors operation, the domain pre and
postconditions are: tr.doors-&gt;forAll(closed) and tr.doors-&gt;forAll(not closed)</p>
      <p>We need to be sure that the operation ful ls all the invariant properties
dened (through the requirements). Hence, each time we introduce an operation
with its domain pre- and postconditions into a formal system, we need to be
sure that the operation execution will preserve the system invariant in any
circumstances. This can induce to specify complementary conditions that must be
ful lled before the operation execution (additional preconditions) and/or specify
complementary conditions that must be ful lled by the result of the operation
to be compliant with the requirements. In those cases, the conditions are named
required pre- and postconditions.</p>
      <p>
        Such required conditions can actually be computed using speci c reasoning
techniques called goal regression detailed in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Speci c patterns are also
available. To illustrate, let us start by the comparison of Requirement 1:
tr.doors-&gt;exists (not closed) implies (tr.speed = 0) (1)
As speci ed above, the OpenDoors operation opens all doors:
      </p>
      <p>post: tr.doors-&gt;forAll(not closed) (2)
As there is at least one door in the train, we can assert:</p>
      <p>tr.doors-&gt;forall(not closed) implies tr.doors-&gt;exist(not closed) (3)
Hence, when TCS performs an OpenDoors operation for a train tr, we get a
state in which the following assertion is veri ed:</p>
      <p>tr.doors-&gt;forAll (not closed) (4)
Due to (3), this implies that:</p>
      <p>tr.doors-&gt;exist (not closed) (5)
And in order to preserve Requirement 1, we need to have:
pre DoorsClosedWhileMoving: tr.speed = 0 (6)</p>
      <p>The resulting UML operation corresponding to the KAOS operation (as
dened in the mapping of Table 1) is described below. It is bound to the T CS UML
class which is mapped on the T CS agent in KAOS. Note that the rationale for
this additional precondition is explicitly traced in the OCL speci cation.
Model 2 Strengthened OpenDoors Operation
openDoors (tr: Train)
pre: tr.doors-&gt;forAll (closed)
-- DoorsClosedWhileMoving: The train must be stopped.
pre DoorsClosedWhileMoving: tr.speed = 0
post: tr.doors-&gt;forAll (not closed)
5</p>
    </sec>
    <sec id="sec-5">
      <title>Selecting among alternatives</title>
      <p>Now let us focus on a more speci c safety goal that our system should enforce
in the case the train is stopped at a station.</p>
      <sec id="sec-5-1">
        <title>Goal 1 (Avoid Passengers on Tracks At Station)</title>
        <p>InformalDef: Passenger should never be allowed to step out of the train on the
tracks when the train is stopped at the station.</p>
        <p>Obstacles analysis can be applied to enforce this goal with a maximal level of
safety, Figure 2 shows how when starting from the negation of the goal, di erent
problems can be identi ed, such as the train being longer than the platform
length or being stopped at the wrong place. In the rest of this section, we will
reason about the platform length problem assuming the driving is stopping at
the right place. We will explore two possible alternative designs that can address
the problem. A few extra concepts are required and will enrich our KAOS object
model and the corresponding USE/UML class diagram, like the association at
between a train and a station as well as the platformLength of a station. Those
are depicted in Figure 3 and 4.
5.1</p>
      </sec>
      <sec id="sec-5-2">
        <title>Alternative 1 : train shorter than platform length</title>
        <p>Let us assume the length is standard on all stations. A domain invariant could
be the following one (both in natural language and in OCL):</p>
      </sec>
      <sec id="sec-5-3">
        <title>DomInvar 1 (StandardPlatformLength)</title>
        <p>InformalDef: Platforms are always 100m long
FormalDef: Context Station
inv: self.platformLength = 100</p>
        <p>We could also assume the train length is compliant with this.</p>
      </sec>
      <sec id="sec-5-4">
        <title>Assumption 1 (CompliantTrainLength)</title>
        <p>InformalDef: Train length is always less than platform length
FormalDef: Context Train
inv: self.at&lt;&gt;NULL implies (self.length &lt;= self.at.platformLength)
Such an assumption could become a requirement on another agent, i.e. the
agent that is responsible for assembling the trains. For example, the enforced
rule might be the following one:</p>
      </sec>
      <sec id="sec-5-5">
        <title>Requirement 2 (TrainLength)</title>
        <p>InformalDef: All trains are between 55m and 75m long
FormalDef: Context Train
inv: self.length &gt;= 55 and self.length &lt;= 75</p>
        <p>The resulting model is depicted in Figure 3 without considering the \No
doors opening outside of platform" at this point. We can see the object model was
enriched with a few attributes like Station.platformLength and Train.length. The
resulting (right) re nement is easy to manually prove correct as the maximum
length is less than 100. The translation into the USE tool can also check the
invariant but on a speci c instantiation, thus acting more as a runtime monitor.</p>
      </sec>
      <sec id="sec-5-6">
        <title>Alternative 2 : forbid doors opening outside of platform</title>
        <p>The previous example is based on the hypothesis that all trains are between 55m
and 75 m long. What happens if we rule out this hypothesis, by not requiring
any maximal train length? As trains can now be more than 100m long, we need
to nd another way to guarantee the No passenger going out on track at station
requirement. With such a train stopped in a station, according to the fact that,
so far, all train doors are either all opened or closed, passengers being in the
part of the train out of platform could go down on the tracks. We need therefore
to forbid opening doors in the out of platform part of the train. In the Figure 4,
an alternative re nement and a new requirement have been introduced to this
aim.</p>
        <p>This second design is more complex but can actually be stated in a single
requirement:</p>
      </sec>
      <sec id="sec-5-7">
        <title>Requirement 3 (NoDoorOpeningOutOfPlatform)</title>
        <p>InformalDef: When a part of a train stopped at a platform is not within the
platform length, then those doors should not open</p>
        <p>FormalDef: Context Train
inv: self.doors-&gt;forAll (d:Door |</p>
        <p>d.position &gt; self.at.platformLength implies d.closed)</p>
        <p>Using similar regression techniques than in section 3, one can show that in
this case the strengthened operation is the following one:</p>
        <sec id="sec-5-7-1">
          <title>Model 3 Strengthened OpenDoors Operation for Alternative 2</title>
          <p>OpenDoors (tr: Train, selectedDoors: Set(Door))
pre AllClosed: tr.doors-&gt;forAll(closed)
pre Consistency: tr.doors-&gt;includesAll(selectedDoors)
pre ZeroSpeed: selectedDoors-&gt;notEmpty implies tr.speed = 0
pre OutOfPlatform:
tr.doors-&gt;forAll(d:Door | not selectedDoors-&gt;includes(d)</p>
          <p>implies d.position &gt; tr.at.platformLength)
post: tr.doors-&gt;forAll(d:Door | d.closed</p>
          <p>implies not selectedDoors-&gt;includes(d))</p>
          <p>Looking at the resulting model, one can see both designs are overlapping: the
Door.position attribute of the second design is not required in the rst design.
This is not altering the behaviour but just introducing some noise. The problem
is di erent if we consider the OpenDoors operation has other sets of additional
preconditions involved. Generating a consistent UML diagram requires to make
a decision about one of the alternatives. This process can be error prone but
can be automated by computing the recursive closure of all related concepts of a
design, except those that are shared. Such an alternative selection mechanism is
supported by the developed plugin. Visually, the discarded concepts are greyed
out. Actually in Figure 4, the rst design presented in Figure 3 is greyed out
except for shared concepts like the PlatformLength assumption and the Station
entity.
6</p>
        </sec>
      </sec>
    </sec>
    <sec id="sec-6">
      <title>Discussion w.r.t. related work</title>
      <p>
        Previous work has already considered how to bridge the gap between
requirements and UML. As stated in the introduction, use cases are quite popular and
usually combine the Use Case diagram with more speci c templates with
approaches like Cockburn's explicitly capturing relevant goals [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. However this
approach is lightweight, mainly functional and does not cope with any
formalisation of the domain.
      </p>
      <p>
        Another approach is to try to develop a GORE approach directly inside UML
through the stereotype-based extension mechanisms provided by UML. Such an
approach was proposed by Heaven and Finkelstein [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. It eases the translation
with UML. However, the GORE notations can only partially be captured using
such mechanisms. For example, AND-OR relationships for alternatives are
difcult to represent, especially to capture the strengthened pre/post-conditions.
It also comes at the price of developing the extension, unless it is already
available, for example the RE tool provides GORE support for i* and KAOS inside
StarUML [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. Even in this case this still requires to develop more complex
features such as the alternative selection mechanism.
      </p>
      <p>
        Problem Frames, another famous requirements based approach, has also
considered an UML mapping [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. Problem Frames have less commonalities with
UML than methods such as KAOS whose object model is a superset of the
UML class diagram. As a result, they are rarely adopted in UML-based software
development processes employing UML. A UML bridge has thus potentially a
larger impact here but the adoption can be also more di cult so we believe an
approach based on a closer language like KAOS, i* or GRL is probably better.
Nevertheless the mapping implemented is interesting because it considers
components diagrams which can lay good architectural grounds rather than going
into conceptual modelling which usually result jumping too fast in an
objectoriented development.
      </p>
      <p>
        Interestingly, the problem frame mapping does not consider OCL for
formalising properties but OTL Object Temporal Logic. This removes our limitation
of only addressing invariants (i.e. safety requirements in our running example).
However this extension is not standard; actually, other temporal extensions for
OCL have been proposed, e.g. TOCL [
        <xref ref-type="bibr" rid="ref27">27</xref>
        ], OCL/RT [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], as part of ReqMon
for goal monitoring [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. They lack tool support which limits their usefulness.
This limitation can be alleviated to some extend by translating such extension
in standard OCL over an enhanced UML model using the so-called
lmstripping technique, i.e. explicitly modelling state snapshots. It was applied to the
USE framework [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]. However we did not try to consider it at this point because
enforcing liveness properties would also require to introduce trigger-conditions
which is not part of the standard UML speci cation of operations. As invariants
are the most critical properties to consider, hence to model formally, we believe
this limitation is acceptable. Actually other formal languages like Event-B [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]
su er from the same limitation. For this language, UML and GORE mappings
are also available [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ][
        <xref ref-type="bibr" rid="ref24">24</xref>
        ].
      </p>
      <p>
        For fully dealing with formalised requirements, it is still possible to carry
out the reasoning at the GORE level. A number of frameworks have developed
speci c tool support for temporal logic for example Formal Tropos [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] or the
FAUST toolset for verifying mission critical systems [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. Such early
formalisation tools do not however seem to receive industrial adoption. Our approach
to address most critical requirements with decent guidelines and support using
standard UML seem to make sense. For system requiring high assurance, formal
methods and tools will be applied by experts in that area starting from good
requirements model consistently coupled with a UML design model as we are
advocating for here.
7
      </p>
    </sec>
    <sec id="sec-7">
      <title>Conclusion</title>
      <p>Building high quality UML class diagrams is a di cult task because modelling
needs to be carried out with a speci c purpose in mind. Without analysing the
requirements while building the model, it is easy to miss important concepts or
introduce irrelevant ones. In this paper, we have shown how to conduct such
a process guided by a speci c goal-oriented requirements engineering method
and relying on the USE framework for easing the mapping. However, we believe
the methods and guidelines detailed here can be applied more widely with the
limitation they only consider safety properties. A key point is that the explicit
capture of properties helps to expose their degree of robustness and to decide how
to improve the design. Using obstacle analysis, a systematic questioning can be
applied, e.g. what is the doors would not close (due to mechanical failure), how
should the system react in this case, what information is required, etc. This will
result in an update of the UML model in terms of its structure and operations.</p>
      <p>Our mapping has been implemented as a plugin for the Objectiver tool.
However, it is currently limited to the export from a requirements to UML while
it would be interesting to retro-engineer existing UML models or more tightly
integrate both approaches for a full roundtrip engineering. This would also enable
the use of veri cation and validation tools available at both levels. Dealing the
larger set of progress properties would also be interesting but would require
nonstandard temporal extensions to OCL and add more complexity, reducing the
interest of the approach. This work was also limited to functional requirements
and dealing with non-functional requirements (NFR) can also be investigated,
for example in the way they drive the identi cation of alternatives. Although less
easy to manage in a model, OCL can be helpful to query model characteristics
than can drive the evaluation of some categories of NFR. Last but not least, we
plan to conduct a comparative validation experiment to assess the quality of the
resulting model with and without the use of the proposed technique and plugin.
This will take place in the scope of the training and coaching the authors are
organising both at academic and industrial levels in Belgium and France.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Abrial</surname>
            ,
            <given-names>J.R.</given-names>
          </string-name>
          :
          <article-title>Modeling in Event-B: System</article-title>
          and
          <string-name>
            <given-names>Software</given-names>
            <surname>Engineering</surname>
          </string-name>
          . Cambridge University Press, New York, NY, USA, 1st edn. (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Cengarle</surname>
            ,
            <given-names>M.V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Knapp</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Towards ocl/rt</article-title>
          . In
          <source>: Proc. of the International Symposium of Formal Methods Europe on Formal Methods - Getting IT Right</source>
          . pp.
          <volume>390</volume>
          {
          <fpage>409</fpage>
          . FME '
          <volume>02</volume>
          , Springer-Verlag, London, UK, UK (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Cockburn</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <string-name>
            <surname>Writing E ective Use</surname>
          </string-name>
          <article-title>Cases</article-title>
          .
          <string-name>
            <surname>Addison-Wesley Longman</surname>
          </string-name>
          Publishing Co., Inc., Boston, MA, USA, 1st edn. (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Dardenne</surname>
          </string-name>
          , A.,
          <string-name>
            <surname>van Lamsweerde</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fickas</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Goal-directed requirements acquisition</article-title>
          .
          <source>Sci. Comput</source>
          . Program.
          <volume>20</volume>
          (
          <issue>1-2</issue>
          ),
          <volume>3</volume>
          {
          <fpage>50</fpage>
          (Apr
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <given-names>Fabian</given-names>
            <surname>Buttner</surname>
          </string-name>
          and
          <article-title>others: Use tool</article-title>
          . https://sourceforge.net/projects/useocl (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Fuxman</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Liu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pistore</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roveri</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Traverso</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Specifying and analyzing early requirements in tropos</article-title>
          .
          <source>Requirements Engineering</source>
          <volume>9</volume>
          (
          <issue>2</issue>
          ),
          <volume>132</volume>
          {
          <fpage>150</fpage>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <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>Science of Computer Programming</source>
          <volume>69</volume>
          (
          <issue>1</issue>
          ),
          <volume>27</volume>
          {
          <fpage>34</fpage>
          (
          <year>2007</year>
          ), http://www.sciencedirect.com/science/article/pii/S0167642307001608, special issue on
          <source>Experimental Software and Toolkits</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Heaven</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finkelstein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>A uml pro le to support requirements engineering with kaos</article-title>
          .
          <source>In: IEE Proceedings - Software</source>
          . p.
          <volume>1</volume>
          (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Hilken</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gogolla</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Verifying linear temporal logic properties in uml/ocl class diagrams using lmstripping</article-title>
          .
          <source>In: 2016 Euromicro Conference on Digital System Design (DSD)</source>
          . pp.
          <volume>708</volume>
          {
          <issue>713</issue>
          (Aug
          <year>2016</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Hutchinson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whittle</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Rounce eld, M.:
          <article-title>Model-driven engineering practices in industry: Social, organizational and managerial factors that lead to success or failure</article-title>
          .
          <source>Science of Computer Programming</source>
          <volume>89</volume>
          ,
          <issue>144</issue>
          {
          <fpage>161</fpage>
          (
          <year>2014</year>
          ), special issue on Success Stories in Model Driven Engineering
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11. International Telecommunication Union: Recommendation Z.
          <volume>151</volume>
          (
          <issue>10</issue>
          /12),
          <article-title>User Requirements Notation (URN) Language Def</article-title>
          . (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>van Lamsweerde</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Goal-oriented requirements engineering: a guided tour</article-title>
          .
          <source>In: Fifth IEEE Int. Symposium on Req. Eng</source>
          . pp.
          <volume>249</volume>
          {
          <issue>262</issue>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>van Lamsweerde</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Requirements Engineering - From System Goals to UML Models to Software Speci cations</article-title>
          .
          <source>Wiley</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Lavazza</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Del Bianco</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Combining problem frames and uml in the description of software requirements</article-title>
          .
          <source>In: Proc. of the 9th International Conference on Fundamental Approaches to Software Engineering</source>
          . pp.
          <volume>199</volume>
          {
          <fpage>213</fpage>
          . FASE'06,
          <string-name>
            <surname>SpringerVerlag</surname>
          </string-name>
          , Berlin, Heidelberg (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Letier</surname>
          </string-name>
          , E.,
          <string-name>
            <surname>van Lamsweerde</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Deriving operational software speci cations from system goals</article-title>
          .
          <source>In: Proc. of the 10th ACM SIGSOFT Symposium on Foundations of Software Engineering</source>
          . pp.
          <volume>119</volume>
          {
          <fpage>128</fpage>
          .
          <string-name>
            <surname>ACM</surname>
          </string-name>
          , New York, NY, USA (
          <year>2002</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>OMG:</surname>
          </string-name>
          <article-title>Object Constraint Language (OCL) - Version 2.4</article-title>
          . https://www.omg.org/ spec/OCL (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>OMG: System Modelling Language (SysML</surname>
          </string-name>
          ) - Version 1.5. http://www.omgsysml. org (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. OMG: Uni ed Modelling
          <source>Language (UML) - Version 2.5</source>
          .1. http://www.omg.org/ spec/UML (
          <year>2017</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Ponsard</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Devroey</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          :
          <article-title>Generating high-level event-b system models from KAOS requirements models</article-title>
          . In:
          <article-title>Actes du XXIXeme Congres INFORSID</article-title>
          , Lille, France,
          <fpage>24</fpage>
          -
          <lpage>25</lpage>
          mai
          <year>2011</year>
          . pp.
          <volume>317</volume>
          {
          <issue>332</issue>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Ponsard</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Massonet</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Molderez</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rifaut</surname>
          </string-name>
          , A.,
          <string-name>
            <surname>van Lamsweerde</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Van</surname>
            ,
            <given-names>H.T.</given-names>
          </string-name>
          :
          <article-title>Early veri cation and validation of mission critical systems</article-title>
          .
          <source>Formal Methods in System Design</source>
          <volume>30</volume>
          (
          <issue>3</issue>
          ),
          <volume>233</volume>
          {
          <fpage>247</fpage>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Respect-IT</surname>
          </string-name>
          : Objectiver. http://www.objectiver.com
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Robinson</surname>
            ,
            <given-names>W.N.</given-names>
          </string-name>
          :
          <article-title>Extended ocl for goal monitoring</article-title>
          .
          <source>ECEASST 9</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <article-title>Sam Supakkul and others: Re tool</article-title>
          . http://www.utdallas.edu/ supakkul/tools/RETools (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Snook</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Butler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Uml-b: A plug-in for the event-b tool set1</article-title>
          .
          <source>In: ABZ2008 Conference</source>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Yu</surname>
            ,
            <given-names>E.S.K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
          </string-name>
          , J.:
          <article-title>Enterprise modelling for business redesign: The i* framework</article-title>
          .
          <source>SIGGROUP Bull</source>
          .
          <volume>18</volume>
          (
          <issue>1</issue>
          ),
          <volume>59</volume>
          {63 (Apr
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref26">
        <mixed-citation>
          26.
          <string-name>
            <surname>Yue</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>What Does It Mean to Say that a Speci cation is Complete?</article-title>
          <source>In: Fourth International Workshop on Software Speci cation and Design (IWSSD-4)</source>
          , Monterey, USA (
          <year>1987</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref27">
        <mixed-citation>
          27.
          <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>
          ,
          <string-name>
            <surname>A.V.</surname>
          </string-name>
          <article-title>(eds.) Perspectives of System Informatics</article-title>
          . pp.
          <volume>351</volume>
          {
          <fpage>357</fpage>
          . Springer Berlin Heidelberg, Berlin, Heidelberg (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>