<!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>The Role of Invariants in the Co-evolution of Business and Technical Service Speci cation of an Enterprise</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Biljana Baji´c-Bizumi´c</string-name>
          <email>biljana.bajic@epfl.ch</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Irina Rychkova</string-name>
          <email>irina.rychkova@univ-paris1.fr</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alain Wegmann</string-name>
          <email>alain.wegmann@epfl.ch</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="editor">
          <string-name>Alloy, Declarative Speci cation, Model Checking, Business Rules</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Centre de Recherche en Informatique, Universite Paris 1 Pantheon - Sorbonne</institution>
          ,
          <addr-line>90, rue Tolbiac, 75013 Paris</addr-line>
          ,
          <country country="FR">France</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>LAMS, Ecole Polytechnique Federale de Lausanne (EPFL) Lausanne</institution>
          ,
          <country country="CH">Switzerland</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We explore invariants as a linking mechanism between the business and technical service perspectives: From the business perspective, invariants can be used to model (business) requirements of an enterprise; from the technical perspective, invariants express the properties that must hold during the execution of a service. We propose an approach to enterprise service design that can be described as an iterative introduction and a modi cation of invariants in response to the evolution of business and/or technical service speci cations. We formalize the service speci cations in Alloy and demonstrate how each design iteration can be simulated, visualized and validated with the Alloy analyzer tool. We illustrate our ndings with the example of Order Creation service.</p>
      </abstract>
      <kwd-group>
        <kwd />
        <kwd>Enterprise Modeling</kwd>
        <kwd>Service Design</kwd>
        <kwd>Service Simulation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1 Introduction</title>
      <p>
        A considerable gap between business and technical worlds (often referred to
as the business/IT alignment problem [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]) represents a serious issue for
implementing the “co-evolution” of business and technical specification of a service in
service design and development. Therefore, we explore the invariants as a linking
mechanism between business and technical service perspectives.
      </p>
      <p>
        We propose a method for agile service specification that extends Systemic
Enterprise Architecture Method (SEAM) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. SEAM models can be used by
business and technical specialists to visually describe an enterprise system, its
structure and services it provides. We propose a method that allows us to
simulate and validate visual service specifications defined in SEAM. It defines five
design activities (design, simulation and simulation-based testing, analysis and
anomaly resolution, validation, refinement) that can be performed sequentially
or iteratively, forming a design spiral, similarly to [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Within this spiral, an
initial service model evolves in response to the changing business requirements and
also makes these requirements evolve by revealing flaws and inconsistencies in
them. This way, the partial specification is validated, verified and improved.
      </p>
      <p>We illustrate our method with the example of an “Order Creation” service,
specified for G´en´erale Ressorts SA - the Swiss manufacturer of watch springs.
This example is based on the consulting project we conducted with this company.
The SEAM model for ”Order Creation” and the transformation of this model to
Alloy remains beyond the scope of this article.</p>
      <p>This paper (a) explores the power of Alloy beyond the technical domain (b)
investigates how invariants can be used as a linking mechanism between business
and technical service perspectives for improved business/IT alignment.</p>
      <p>The remainder of this paper is organized as follows: In Section 2 we explain
our motivation and discuss the related works. In Section 3, we present the Alloy
language and discusses the role of invariants in service design. In Section 4, we
introduce our method for service design. In Section 5, we illustrate this method
on the case study. In Section 6, we present our conclusions.</p>
    </sec>
    <sec id="sec-2">
      <title>2 Motivation and Related Work</title>
      <p>
        Since the first methods dealing with enterprise modeling (EM) that emerged
in 1970s, a multitude of enterprise modeling approaches have been developed.
e3Value [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] provides an ontology to conceptualize and visualize eBusiness idea
and to be able to do an analysis and profitability assessment of the eBusiness
model for all parties involved. The i* framework [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] focuses on modeling
properties such as goals, beliefs, abilities, commitments; and on modeling strategic
relationships. Enterprise Knowledge Development (EKD) [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] is a multi-model,
participatory EM approach that involves a model for conceptual structures, and
interlinked sub-models for goals, actors, business rules, business processes and
requirements to be stated. Business Motivation Model (BMM) [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] models several
concepts from goals, down to processes and technologies. The methodology that
focuses more on business processes is Dynamic Essential Modeling of
Organizations (DEMO) [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], which models, (re)designs and (re)engineers organizations.
      </p>
      <p>
        SEAM [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] integrates the main principles of the well known EM methods by
proposing three different types of models: SAR (business value between different
stakeholders-similar to e3Value), goal-belief (goals and beliefs of the stakeholders
and their relation-similar to i*), and behavior model (services and processes that
implement them-similar to DEMO). In this work, we extend SEAM with the
spiral design process that allows simulation and validation of SEAM models in
the early stage of the design. This way, the examples of the partial specification
could help the designer to realize what constraints are missing in the model. i*
uses the similar approach the Formal Tropos [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] to do the model-checking of
the models defined in i*. However, it focuses on the agent properties such as
goals, beliefs and abilities.
      </p>
      <p>
        Invariants have been used both in the business and technical world: to
represent and check constraints [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ], to model business rules [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], process invariants
related to beliefs [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] etc. In requirements engineering, KAOS methodology uses
invariants for object specification, domain properties specification, and indirectly
for goal specification [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ]. In this work, we use invariants as a a pivotal concept in
improving business/IT alignment and in supporting the co-evolution of technical
and business specifications.
      </p>
      <p>Our method is based on Alloy, a lightweight formal specification language.
The area of Alloy application is very large1. To the best of our knowledge, all
current Alloy applications in the domain of EM target technical specialists. In this
paper, we present an agile EM method where Alloy diagrams serve as a means
for communicating and evaluating both business and technical design decisions.
Within our approach, the role of Alloy diagrams is two-fold: They provide an
instant visual feedback to a designer that suggest new constraints to be added;
They represent design artifacts for validation and can drive improvements of
both technical and business specifications (like UML, BPMN).</p>
    </sec>
    <sec id="sec-3">
      <title>3 Foundations</title>
      <sec id="sec-3-1">
        <title>3.1 Alloy</title>
        <p>
          Alloy [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] is a declarative specification language for expressing complex structural
constraints and behavior based on first-order logic.
        </p>
        <p>
          The Alloy Analyzer [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ] is a tool for the automated analysis of models
written in the Alloy language. Given a logical formula and a data structure that
defines the value domain for this formula, the Alloy Analyzer decides whether
this formula is satisfiable. Mechanically, the Alloy Analyzer tries to find a model
instance - a binding of the variables to values making the formula true [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ].
        </p>
        <p>
          Alloy reusable expressions (i.e., functions) and constraints (i.e., facts,
predicates and assertions) [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ] can be used to reason about data structures. Fact is a
model invariant: a constraint that holds permanently. Predicate is a constraint
that holds in a specific context or for a specific part of the model only. It can
be seen as a contextual invariant. Assertion is a property that the designer
believes should be implied from the model; he can check if it can be deduced
from the other (permanent or contextual) constraints.
        </p>
        <p>In our design process we use signatures, facts and predicates, first for partial
and then for refined service specification; we use assertions in order to validate
desired properties of our model.</p>
      </sec>
      <sec id="sec-3-2">
        <title>3.2 The Role of Invariants</title>
        <p>In computer science, an invariant is a condition that must hold during the
execution of a program. Along these lines, in our design process, an invariant defines a
1 http://alloy.mit.edu/alloy/applications.html
condition that must hold for all model instances that result from simulation. We
define the role of invariants in our design process as follows: First, they
implement the constraints required by business specification. For example, “The order
can be placed for the existing parts only”; Second, they enable the designer to
efficiently manage the model complexity by assuming that some of its
properties always hold during an execution. For example, “To simplify the model, let’s
consider that the part’s id provided by a customer is always correct ” (i.e., exists
in the database).</p>
        <p>These roles correspond to the business and technical perspective. Therefore,
in this approach we use them as a linking mechanism between these two worlds to
restrict a model prohibiting some (invalid) instances identified during simulation
(not necessarily covered by the explicit business specification).</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>4 Service Design Spiral</title>
      <p>We introduce the five activities of our design approach, which can be performed
sequentially or iteratively, forming the loops of a spiral as shown in Fig. 1a.</p>
      <sec id="sec-4-1">
        <title>4.1 Model Design</title>
        <p>We define a partial model of a service in Alloy: we specify its data structures,
the initial predicate and make initial assumptions about our model defining
model invariants. These invariants replace the properties required by the business
specification and are used to control the model complexity.</p>
      </sec>
      <sec id="sec-4-2">
        <title>4.2 Model Simulation</title>
        <p>We simulate our partial model by using the Alloy Analyzer tool. Technically,
a partial model written in Alloy represents a logical formula; model simulation
means searching for a model instance that satisfies this formula. If it exists, it
indicates that the formula is consistent (i.e., no contradictory constraints are
specified). In our design process, we first check our model for consistency, and
then test if it corresponds to the requirements and if there are some anomalies
by studying the random set of model instances generated by Alloy Analyzer.</p>
      </sec>
      <sec id="sec-4-3">
        <title>4.3 Model Analysis and Anomaly Resolution</title>
        <p>There are two types of anomalies that can be observed: anomalies due to
underspecification and anomalies due to overspecification.</p>
        <p>Underspeci cation means that some model instances that are prohibited
by the specification still appear during the simulation. In this case, we restrict
the model by adding new invariants.</p>
        <p>Overspeci cation means the opposite: some expected model instances are
not observed during the simulation. The modeler then has to relax invariant,
i.e. to replace an Alloy fact “X always holds” with an Alloy predicate “X holds
when. . . ” that can be activated in specific parts of the model only.</p>
      </sec>
      <sec id="sec-4-4">
        <title>4.4 Model Validation</title>
        <p>We make assertions about our model in order to test some desirable properties
and business rules. Alloy Analyzer validates our assertion by searching for a
counterexample: a model instance for which our assertion does not hold. If no
such counterexample is found, then our assertion is valid within a given value
domain. In the opposite case, the model has to be revised.</p>
      </sec>
      <sec id="sec-4-5">
        <title>4.5 Model Re nement</title>
        <p>In this activity, we implement new business requirements and extend our
partial model. We introduce new elements in a data structure and specify new
constraints. Refinement increases both the model complexity and its level of
details, bringing it closer to its business specification. The complete design process
is illustrated in Fig. 1a.</p>
        <p>(a) Service design process spiral.</p>
        <p>(b) Design process for "Order Creation"
service.
In this section, we present an example of using our method for enterprise design,
which involves both a technical and a business expert working together to define
a complete service specification while maintaining business/IT alignment. We
implement our service design process spiral step by step (Figure 1b).</p>
      </sec>
      <sec id="sec-4-6">
        <title>5.1 Case Study: Generale Ressorts</title>
        <p>
          G´en´erale Ressorts SA is the market leader in watch barrel springs and a
firstclass manufacturer of tension springs, coil springs, shaped springs and industry
components [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ]. We illustrate our process by applying it to the design of the
“Order Creation” service for G´en´erale Ressorts SA (GR). “Order Creation” is a
part of an “Order Processing”; it is followed by “Order Delivery” and
“Accounting” (order-to-cash cycle).
        </p>
        <p>An overview of “Order Creation” service is: “The company gets a request
from a customer (OrderRequest -with customer name, address, partID and
partInfo2) for manufacturing a specific watch component identified by its ID
(partID ). A company agent (OrderEntryPerson) identifies the customer and the part
to be manufactured by entering the customer’s name and the partID into the
enterprise information system (EIS ). The process terminates with a creation and
confirmation of a customer order (OrderCon rmed ) in the EIS.”</p>
        <p>We specify the following business rules for our process:
– BR1: The created order must include the complete part specification (to be
used for the order fulfillment) and the complete customer details (to be used
for product delivery);
– BR2: The order can be confirmed only when the customer exists in the system;
– BR3: The order can be placed for the existing parts only;
– BR4: The company has to guarantee ”no faulty delivery”.</p>
      </sec>
      <sec id="sec-4-7">
        <title>5.2 Order Creation: Model Design</title>
        <p>The data structure for the “Order Creation” service is modeled using Alloy
signatures:
g
one sig GR_pre extends GR f</p>
        <p>orderRequest: one OrderRequest
g
one sig GR_post extends GR fg</p>
        <p>Alloy signatures (sig) can be abstract or concrete, can have explicit
cardinalities (e.g., only one OrderRequest object can be treated by the service at a
time), and can contain one or multiple fields (as classes and attributes in
objectoriented (OO) languages). We can also define additional constraints on the initial
data structure with the invariants.</p>
        <p>We express the behavior in terms of a state transition: we define a pre-state
that describes the state of a system before the service has been performed and
the post-state that describes the condition that must hold for the system upon
the service termination - the service result. Note, that following the declarative
modeling paradigm, we do not specify how the service will change the system’s
state.</p>
        <p>We model the “Order Creation” service as a corresponding predicate in Alloy.
2 We put in italic the names that will appear in the Alloy models.</p>
        <p>This predicate shows a transition between GR pre and GR post states; these
states are indicated as predicate parameters (line 1). In this predicate, the
variables are declared (line 2), the customer and the part are found in the set (lines
4-5) and the order is created (line 6) and added to the set (line 7), as described
in the case study.</p>
      </sec>
      <sec id="sec-4-8">
        <title>5.3 Order Creation: Model Simulation and Anomaly Resolution</title>
        <p>We attempt to simulate this model in Alloy Analyzer: to check our model for
consistency and to test the random set of model instances to check for
overspecification and underspecification anomalies.</p>
      </sec>
      <sec id="sec-4-9">
        <title>Example 1. \Missing Customer" anomaly Fig. 2 illustrates an anomaly in</title>
        <p>our model behavior: In a pre-state we have Customer0, in a post-state we have
Customer1. As we show exactly one execution of the service “Order Creation”,
we expect both the customerSet and the partSet to remain the same in pre- and
post-state. However, the generated instance suggests the opposite.</p>
        <p>NOTE: the inputs and outputs in our diagrams (e.g,, OrderRequest and
OrderCon rmed in Fig. 2) are depicted with black rectangles; customer data
(Customer, Name, Address ) and part data (Part, PartID, PartInfo) are depicted with
parallelograms and diamonds, respectively. We depict the pre-state (prior to the
order creation service execution) and post-state (upon the service termination) of
the GR company with “houses” and the corresponding labels: GR pre, GR post.
This anomaly indicates that some constraints, which should prevent the
customer set and the part set from changing during the service execution, have to
be specified. Thus, it is an anomaly due to the underspeci ed model.</p>
        <p>In fact, the declarative specification principles oblige us to explicitly state the
elements that must remain “unchanged” during the state transition. Therefore,
we need to add an invariant that states that the customerSet in post-state is the
same as the customerSet in pre-state. The same applies to part set.
fact customerSetSamef GR_post.customerSet = GR_pre.customerSetg</p>
        <p>In order to validate that we have resolved the “Missing Customer” anomaly,
we create an Alloy assertion that claims that for all Order Creation executions
(i.e., model instances), the customer set will remain the same in pre- and
poststates of GR.
customerPrePostSame: checkf
all aGR_pre:GR_pre,aGR_post:GR_post |
orderCreation[aGR_pre, aGR_post] =&gt; aGR_post.customerSet=aGR_pre.customerSetg
Checking this assertion, we find no counterexamples.</p>
        <p>Executing ``Check customerPrePostSame'' Solver=sat4j Bitwidth=4 MaxSeq=4 SkolemDepth=1
Symmetry=20 1014 vars. 109 primary vars. 1750 clauses. 32ms.</p>
        <p>No counterexample found. Assertion may be valid. 12ms.</p>
        <p>This confirms the assertion validity (for a given model scope). We repeat the
simulation until all anomalies are resolved (“design loop” in Fig. 1).</p>
      </sec>
      <sec id="sec-4-10">
        <title>5.4 Order Creation: Model Validation and Anomaly Resolution</title>
        <p>We check the validity of each of the business rules from Section 5.1, using Alloy
assertions. We show an example of BR4 validation (”no faulty delivery”).
Example 2. \Delivery to the Wrong Address" anomaly As
OrderConrmed is used for delivery, to ensure “no faulty deliveries” (BR4), we check that
the customer and part data in the confirmed order are exactly the same as in the
requested order. The assertion “orderConfirmedCorrect” is defined to validate
this BR:
orderConfirmedCorrect: check f
all aGR_pre:GR_pre,aGR_post:GR_post,oReq:OrderRequest, oCurrent:CurrentOrderConfirmed |
orderCreation[aGR_pre, aGR_post] =&gt; (oCurrent.ocCustomer.name=oReq.name and
oCurrent.ocCustomer.address=oReq.address and
oCurrent.ocPart.partID=oReq.requestedPartID and oCurrent.ocPart.partInfo=oReq.partInfo)g
When we run the assertion, we obtain the counterexamples. Fig. 3 shows an
example of the incorrect delivery: the order is created on the correct customer’s
name, but the delivery address associated with this name does not correspond to
the address provided in the OrderRequest. Therefore, the part can be delivered to
the wrong address. The anomaly observed is due to model underspeci cation.</p>
        <p>In order to resolve the detected anomaly, we add a new invariant
”noOldAddress” that states that we cannot have a customer in the system with the name
given in the requested order, but with an old/invalid address and vice versa:
fact noOldAddressfall c:Customer | c.address=OrderRequest.address&lt;=&gt;c.name=OrderRequest.nameg</p>
        <p>If we check now the assertion “orderConfirmedCorrect”, we get the result
“No counterexample found. Assertion may be valid.”, meaning that this assertion
holds in a given domain, and all orders will be delivered to the correct customers
to the correct address.</p>
        <p>We continue “debugging” the model by running the simulations, checking
if we have introduced some new unwilling behavior. We repeat the process for
other BRs. After validating all BRs and finding no anomalies, we conclude that
the designed model meets its business requirements at a given level of details.</p>
      </sec>
      <sec id="sec-4-11">
        <title>5.5 Order Creation: Model Re nement</title>
        <p>At the refinement, we can add new data structures and behavior to our model.
Then, we resolve all added anomalies, if any, in the “design loop”. The next
step is to check if the BRs still hold by repeating the “BR validation loop”
until all the BRs hold. The refinement specifies a new iteration on the spiral
(Fig. 1). The designer can continue refining the model until the desired level of
detail is achieved. The design process we propose will ensure that, upon each
iteration, the model remains consistent and has no anomalies. Refinement of
“Order Creation” service will not be considered in this paper. The resulting
design process of ”Order Creation” (Fig. 1b) represents an instance of the spiral
process illustrated in Fig. 1a.</p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>6 Conclusion</title>
      <p>We have presented a lightweight, interactive and visual method for service design
that supports the co-evolution of technical and business service specifications of
an enterprise. In particular, we have explored the power of Alloy formal method
beyond the technical domain and how it can be used as a toolbox for both
technical and business specialists.</p>
      <p>The evolution of service model in Alloy can be seen as an iterative
introduction and modification of logical invariants. Invariants represent the assumptions
about business or technical properties of a modeled service and, consequently,
play the role of a linking mechanism between business and technical perspectives.</p>
      <p>This work has illustrated how Alloy can be used as a design environment
for both technical and business specialists. For now, we expect that the Alloy
diagrams are interpreted and analyzed by designers and business analysts. These
specialists trace the observed scenarios back to the specification for its
improvement. Automated interpretation and traceability between scenarios generated
by Alloy and their specifications (business requirements, business rules, etc) is
a subject of our future research.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Luftman</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Papp</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Brier</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Enablers and inhibitors of business-it alignment</article-title>
          .
          <source>Communications of the AIS</source>
          <volume>1</volume>
          (
          <issue>3es</issue>
          ) (
          <year>1999</year>
          )
          <fpage>1</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Wegmann</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>On the Systemic Enterprise Architecture Methodology (SEAM)</article-title>
          .
          <source>In: ICEIS</source>
          . (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Jackson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Schechter</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Shlyakhter</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>ALCOA: The Alloy constraint analyzer</article-title>
          .
          <source>In: Proceedings of the 22nd International Conference on Software Engineering (ICSE)</source>
          , Limerick, Ireland (
          <year>June 2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Boehm</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>A Spiral Model of Software Development and Enhancement</article-title>
          .
          <source>ACM SIGSOFT Software Engineering Notes</source>
          <volume>11</volume>
          (
          <issue>4</issue>
          ) (
          <year>August 1986</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Gordijn</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Akkermans</surname>
          </string-name>
          , J.:
          <article-title>Value-based requirements engineering: Exploring innovative e-commerce ideas</article-title>
          .
          <source>Requirements engineering 8(2)</source>
          (
          <year>2003</year>
          )
          <volume>114</volume>
          {
          <fpage>134</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Yu</surname>
          </string-name>
          , E.: i*
          <article-title>- an agent- and goal-oriented modelling framework</article-title>
          . http://www.cs.toronto.edu/km/istar/ (page visited
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Kirikova</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bubenko</surname>
            ,
            <given-names>J.A.</given-names>
          </string-name>
          :
          <article-title>Enterprise modelling: improving the quality of requirements speci cations</article-title>
          . (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Montilva</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barrios</surname>
          </string-name>
          , J.:
          <article-title>Bmm: A business modeling method for information systems development</article-title>
          .
          <source>the Clei Electronic Journal</source>
          <volume>7</volume>
          (
          <issue>2</issue>
          ) (
          <year>2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Dietz</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          :
          <article-title>Understanding and modelling business processes with demo</article-title>
          .
          <source>In: Conceptual ModelingER99</source>
          . Springer (
          <year>1999</year>
          )
          <volume>188</volume>
          {
          <fpage>202</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Fuxman</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Pistore</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mylopoulos</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Traverso</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Model checking early requirements speci cations in tropos</article-title>
          .
          <source>In: Requirements Engineering</source>
          ,
          <year>2001</year>
          . Proceedings. Fifth IEEE International Symposium on,
          <source>IEEE</source>
          (
          <year>2001</year>
          )
          <volume>174</volume>
          {
          <fpage>181</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Reynolds</surname>
            ,
            <given-names>M.C.</given-names>
          </string-name>
          :
          <article-title>Lightweight modeling of java virtual machine security constraints</article-title>
          . In: Abstract State Machines, Alloy, B and
          <string-name>
            <surname>Z</surname>
          </string-name>
          . Springer (
          <year>2010</year>
          )
          <volume>146</volume>
          {
          <fpage>159</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Kilov</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Simmonds</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Business rules: from business speci cation to design</article-title>
          . Springer (
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Regev</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bider</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wegmann</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>De ning business process exibility with the help of invariants</article-title>
          .
          <source>Software Process: Improvement and Practice</source>
          <volume>12</volume>
          (
          <issue>1</issue>
          ) (
          <year>2007</year>
          )
          <volume>65</volume>
          {
          <fpage>79</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>van Lamsweerde</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Letier</surname>
          </string-name>
          , E.:
          <article-title>Handling obstacles in goal-oriented requirements engineering</article-title>
          .
          <source>Software Engineering</source>
          , IEEE Transactions on
          <volume>26</volume>
          (
          <issue>10</issue>
          ) (
          <year>2000</year>
          )
          <volume>978</volume>
          {
          <fpage>1005</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Jackson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Alloy Analyzer tool</article-title>
          . http://alloy.mit.edu/alloy/ (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Rychkova</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Formal Semantics for Re nement Veri cation of Enterprise Models</article-title>
          .
          <source>PhD thesis</source>
          , EPFL (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Jackson</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          :
          <article-title>Software Abstractions- Logic, Language and Analysis</article-title>
          . MIT Press (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18. GR:
          <article-title>Generale ressorts site</article-title>
          . http://www.generaleressorts.com/ (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Hevner</surname>
            ,
            <given-names>A.R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>March</surname>
          </string-name>
          , S.T.,
          <string-name>
            <surname>Park</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ram</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Design science in information systems research</article-title>
          .
          <source>MIS quarterly 28(1)</source>
          (
          <year>2004</year>
          )
          <volume>75</volume>
          {
          <fpage>105</fpage>
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>