<!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>Object Event Modeling for DES and IS Engineering</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Gerd Wagner</string-name>
          <email>g.wagner@b-tu.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Brandenburg University of Technology</institution>
          ,
          <addr-line>P. O. Box 101344, 03013 Cottbus</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>Information Systems Engineering</institution>
          ,
          <addr-line>Discrete Event Simulation</addr-line>
          ,
          <country>Object Event Modeling</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We propose Object Event Modeling as a new approach to Discrete Event Simulation (DES) engineering and Information Systems (IS) engineering using UML class diagrams for information modeling and BPMN-style process diagrams for process modeling. We consider the case where for a given business system, both a performance analysis is to be conducted with the help of a DES project and an IS is to be constructed with the help of an IS engineering project. Both the DES design model and the IS design model are representations of the same system. We argue that both DES modeling and IS modeling have a substantial overlap and, hence, can learn from each other. While research in DES has focused on events and processes, neglecting objects, IS engineering research has focused on objects, neglecting events.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. Introduction</title>
      <p>2022 Copyright for this paper by its authors.</p>
      <p>
        Unlike in IS engineering, there are no widely accepted modeling languages for making conceptual
models and design models in DES engineering [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Typically, in DES, neither conceptual nor design
models are made, or they are made in a sketchy manner only, not using any well-defined modeling
language, but rather simulation developers jump from their mental model, or sketch, to an
implementation in some target technology platform, calling the resulting code “the simulation model”.
      </p>
      <p>OEM&amp;S is the first DES engineering approach based on conceptual modeling and design modeling
using well-defined modeling languages (UML/OEM Class Diagrams and BPMN/DPMN Process
Diagrams) as a basis for developing an executable simulation model. As opposed to a model as code,
these models are more comprehensible and easier to communicate, share, reuse, maintain and evolve,
while they can still be used for obtaining implementations for specific simulation platforms with the
help of model transformations and code generation, as proposed in model-driven engineering.</p>
      <p>Since both discrete event simulations and information systems are complex representations of real
world systems, sharing the need of conceptual modeling as a prerequisite of design, it is natural to
investigate the relationship between them. Concerning the various options for using IS and DES
modeling, possibly in combination, we can distinguish the following cases:
1. Make an IS model for an organization that does not yet have an IS for automating its business
processes.
2. Make a DES model for an organization that does not yet have an IS and wants to analyze its
business processes.
3. Make a DES model of an organization’s business processes and then make an IS model by
reusing as many DES modeling artifacts as possible.
4. First make an IS model for automating an organization’s business processes and then make a</p>
      <p>DES model of the IS-supported business processes for testing/evaluating the IS.</p>
      <p>Consider the case where both a DES of an organization’s business processes and an IS supporting
these processes are to be developed. Then we may ask questions like:
1. Can we use (a) the same conceptual modeling language and (b) the same conceptual model both
for the DES sub-project and for the IS sub-project?
2. Can we use (a) the same design modeling language and (b) the same design model both for the</p>
      <p>DES sub-project and for the IS sub-project?
3. How can the two sub-projects benefit from each other?</p>
      <p>OEM&amp;S allows answering questions 1a and 2a with yes, and 1b as well as 2b with no. However,
answering question 3 requires more research. It is startling that the relationship between these two
related research areas, which have been developed largely independently of each other and have
achieved many deep results during their histories of more than 60 years in the case of DES and more
than 45 years in the case of CM for IS engineering, has not yet been investigated much.</p>
    </sec>
    <sec id="sec-2">
      <title>2. Events in IS Engineering</title>
      <p>
        As pointed out in [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], there have been a few proposals in the field of IS and Software Engineering
in the 1980s and 1990s to model events as entities, but they have not been adopted in any standard
modeling language (neither in UML, nor in BPMN). In BP modeling languages, which are typically
based on the concept of activities, following the tradition of “flowcharts”, events (and activities) are not
modeled as entities. This is not surprising since these languages are not concerned with modeling
entities and only contain rudimentary concepts of entity types. But even in UML, with its Class Diagram
language for modeling entity types, events are not modeled as entities. An exception is the conceptual
modeling language of the Object-Process Method (OPM) [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], where process types, which can be
considered as special types of events, are modeled as entity types (with attributes and operations).
      </p>
      <p>
        The authors of [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] argue that modeling events as entities provides substantial benefits for CM. Based
on, and strengthened by, the ontological analysis of the concept of events in [
        <xref ref-type="bibr" rid="ref5 ref6">5, 6</xref>
        ], we share their insight
and extend it to the discipline of DES.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ], and in the field of DES, events are considered to be instantaneous. A general concept of
events subsumes, however, both instantaneous events and events with durations (like walks or
weddings), and the latter ones subsume activities as special types of events. Notice that this distinction
is orthogonal to the distinction between atomic and composite events, as pointed out in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. An
instantaneous event may be composed of several simultaneous component events, and an event with
duration need not be composite.
      </p>
      <p>Despite the fact that UML does not provide built-in support for modeling event types as classes in
information models, it is clear that in many real-world IS, certain types of events are modeled and
implemented as special classes having an attribute for the occurrence time of events. Examples of such
events are paper submissions in the case of a conference organization IS or car returns in the case of a
car rental IS.</p>
      <p>In an IS, the current populations of object types represent the current state of affairs in the domain
of the IS, as opposed to the populations of event types, which represent history information. Compare
this with a running DES where the current state of the simulated system is also described by the
populations of object types, while events are either currently occurring (being processed by the
simulator) or scheduled to occur in the future when they are in the Future Event List.</p>
      <p>
        In the field of information modeling for the Web, there have been various proposals how to represent
event information on websites with the help of special vocabularies or information schemas like the
Event Ontology [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] or the generic Event class defined by the search vocabulary schema.org [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]
maintained by a consortium of web search vendors. Notice that in this field, the goal is not to define a
generic event concept, but rather to define a feature-rich concept of social events, either historical or
planned. Schema.org events have a start date/time, a duration and an end date/time.
      </p>
      <p>
        The IS engineering approach of MERODE [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] takes business events into account as first-class
citizens, along with business objects, for modeling the state structure and the behavior of a system. In
MERODE, like in OEM&amp;S, objects participate in events, which may create, update or destroy them,
thus changing the state of an IS.
      </p>
      <p>
        Remarkably, in the professional community of software engineers/architects, there has been a recent
movement to complement OO modeling and programming with event-based approaches, such as Event
Sourcing [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] and Event Modeling [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ]. This shows that events are at the heart of IS engineering, and
a more complete treatment of events, as provided by OEM&amp;S, is a current topic.
      </p>
      <p>
        The Enterprise Application Architecture pattern of Event Sourcing [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] ensures that all changes to
the state of an IS (or Enterprise Application system) are stored as a sequence of events that can be
queried and used for reconstructing past states. This is similar to the event log in DES. An Event
Sourcing architecture supports building systems that need an audit trail.
      </p>
      <p>
        Event Modeling [
        <xref ref-type="bibr" rid="ref20">20</xref>
        ] considers the business events created by user actions typically performed by
pushing user interface buttons after providing data within form fields as fundamental.
      </p>
    </sec>
    <sec id="sec-3">
      <title>3. Objects in DES Engineering</title>
      <p>The term Discrete Event Simulation (DES) has been established as an umbrella term subsuming
various kinds of computer simulation approaches, all based on the general idea of modeling a discrete
dynamic system by modeling its state as a set of state variables, and modeling its dynamics by modeling
the events that are responsible for its state changes and how they do this. There is, however, no generally
accepted definition of DES. Simulation textbooks and tutorials avoid defining the term “DES” in a
precise way.</p>
      <p>
        Pegden [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] describes three fundamental DES paradigms, which have shaped the 60-year history of
DES: Markowitz, Hausner, and Karr [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ] pioneered Event-Based Simulation with SIMSCRIPT (1962),
Gordon [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] pioneered Processing Network Simulation with GPSS (1961), and Dahl and Nygaard [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
pioneered Object-Orientation (OO) and the computational concept of co-routines for asynchronous
programming with Simula (1967).
      </p>
      <p>In the Event-Based Simulation (ES), or Event Scheduling, paradigm, the system under investigation
is viewed as a series of instantaneous events that change the state of the system over time. The modeler
defines the system’s state structure with the help of state variables and models the system’s state
changes by defining the types of events that occur in the system and the state changes of affected state
variables caused by their occurrences.</p>
      <p>In the Processing Network Simulation (PNS) paradigm, the system under investigation is described
as a processing network where “entities flow through the system” or, more precisely, processing objects
are routed through the network and are subject to a series of processing steps performed at processing
nodes through processing activities, typically requiring resources and inducing queues of processing
objects waiting for the availability of resources. This approach allows high-level modeling with
semivisual languages and is therefore the most widely used DES approach today, in particular in
manufacturing industries and service industries. Simulation software packages based on this paradigm
may or may not support OO modeling and programming.</p>
      <p>
        According to Pegden [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], ES has been widely used during the first 20 years of simulation, due to its
great flexibility allowing to efficiently model a wide range of complex systems. Later, however, the
PNS paradigm, implemented by tools like Arena, FlexSim, Simio and AnyLogic, became the dominant
approach in practical applications of simulation because it is based on the higher-level concept of
processing activities and allows no-code (or low-code) simulation engineering with graphical user
interfaces and appealing visualizations.
      </p>
      <p>
        According to Pegden [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], ES is the most fundamental paradigm since other DES paradigms also use
events, at least implicitly. However, ES does not include the modeling concepts of objects and classes,
which have been introduced some years later with the simulation language Simula and have become
popular in the field of information technology only in the 1980s and 90s with the programming
languages Smalltalk, C++ and Java and the OO modeling language UML.
      </p>
      <p>After OO had been established as the predominant paradigm in software engineering in the 1990s,
it was also adopted by many simulation tools, which have used it as the basis of their PNS approach.
Consequently, modern DES tools allow combining PNS models with OO modeling and some form of
event scheduling.</p>
      <p>In BPM, the modeling concept of objects (with attribute-value slots and links to other objects) is
neither well supported in Petri-Net-based approaches nor in BPMN. It is common to make the
simplifying assumption that a task requires just one resource object and a resource object cannot be
used in more than one task at the same time. Due to the resulting simplistic concept of business
processes, BPMN-based business process simulation (e.g., in Signavio) is very limited and cannot
compare to business process simulation in DES.</p>
    </sec>
    <sec id="sec-4">
      <title>4. From Event Graphs via Object Event Graphs to Activity Networks</title>
      <p>
        The visual modeling language of Event Graphs proposed by Schruben [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] in 1983 allows
specifying ES models, and its formal semantics provides a formal semantics of ES. While Event Graphs
have been adopted as a modeling language to some degree in the field of DES, mainly in Operations
Research, they have been ignored in Computer Science and Information Systems, including the field of
BPM, despite the fact that they are a process modeling language with a formal semantics supporting
parallelism, like Petri Nets. It has been an unfortunate course of the history of science that Event Graphs
have not become more well-known and, instead of Event Graphs, Petri Nets have been chosen as the
standard semantics of BP models, despite the fact that Event Graphs would have been a much more
natural choice.
      </p>
      <p>DPMN is incrementally constructed from Event Graphs by adding increasingly high-level modeling
concepts in two steps: in the first step, the concept of objects is added, resulting in Object Event Graphs,
and in the second step, the concept of (resource-constrained) activities is added, resulting in Activity
Networks. Both Object Event Graphs and Activity Networks are special forms of DPMN process
models. Their execution semantics is based on the concept of an Object Event (OE) model of a system
under investigation, which is a triple ⟨ OT, ET, R ⟩ where
1. OT is a set of object types defining the state structure of the system;
2. ET is a set of event types;
3. R is a set of event rules (expressed in terms of OT and ET) defining the dynamics of the system,
such that R contains a rule for each event type in ET.</p>
      <p>An OE model, together with an initial state (consisting of initial objects and initial events), defines
an Object Event Simulation (OES) system, which is a transition system where
1. the state of a simulation consists of two parts: (a) a system state given by the union of the sets
of all attribute-value slots of all objects, and (b) a set of time-stamped events called the Future
Events List (FEL);
2. transitions are provided by event occurrences triggering event rules that change the simulation
state by changing the system state (by changing the states of affected objects) and the FEL (by
adding follow-up events).</p>
      <p>
        We have shown in [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] that the transition system defined by an OES system is an Abstract State
Machine (ASM) in the sense of Gurevich [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ].
      </p>
      <p>Instead of defining a new modeling language for OEM&amp;S, it is preferable to re-use languages that
are already well-established, such as UML and BPMN, and modify them if necessary. Both the object
types OT and the event types ET of an OE model can be defined as classes of an information model in
the form of an OE class diagram. The event rules R can be defined as an OE Graph that is decomposable
into a set of OE Graphs, one for each event circle representing a triggering event variable and defining
an event rule, such that the rules’ conditions, state change statements and follow-up event scheduling
expressions may refer to the elements defined in the underlying OE class model.
4.1.</p>
    </sec>
    <sec id="sec-5">
      <title>From Event Graphs to Object Event Graphs</title>
      <p>Event Graphs define graphically, which state changes and follow-up events are triggered by an
event. The Event Graph shown in Figure 1 models a manufacturing workstation, which is part of a
manufacturing business system (viewed as a basic queuing system in Operations Research). It defines
(a) two state variables: L for the length of an arrival queue and B for a performer being busy or not, as
well as (b) three event variables representing Arrival, ProcessingStart and ProcessingEnd events, in the
form of circles. In addition, it defines the sequencing of events of those types with the help of Event
Scheduling arrows, together with caused state changes in the form of (possibly conditional) variable
assignments (underneath event circle names).</p>
      <p>Event Graphs provide a visual modeling language with a precise semantics that captures the
fundamental ES paradigm. However, Event Graphs are a rather low-level DES modeling language: they
lack a visual notation for (conditional and parallel) branching, do not support OO state structure
modeling (with attributes of objects taking the role of state variables) and do not support the concept of
activities.</p>
      <p>In OEM&amp;S, object types and event types are modeled as special categories of classes («object type»
and «event type») in a special kind of UML Class Diagram/Model, called OE Class Diagram/Model.
Random variables are modeled as a special category of class-level operations («rv») constrained to
comply with a specific probability distribution such that they can be implemented as static methods.
Finally, event rules are modeled in DPMN process diagrams (and possibly also in pseudo-code), such
that they can be implemented in the form of special onEvent methods of event classes.</p>
      <p>In a simulation model, certain types of events are characterized as exogenous, while the others are
endogenous (or caused by previous events). In an OE class model, we therefore categorize event types
as either «exogenous event type» or just «event type». The exogenous events of a DES model
correspond to the Start events of a BPMN process model, whereas the caused events correspond to
BPMN Intermediate or End events.</p>
      <p>In the OE class model shown in Figure 2, PartArrival, ProcessingStart and ProcessingEnd events
are associated with a WorkStation object (as their only participant). This is the workstation where these
events happen. As a class for exogenous events, the PartArrival class defines a random variable
recurrence, which generally determines the recurrence frequency of exogenous events (the elapsed time
between two consecutive events of the given type, also called inter-occurrence time). The
ProcessingStart event class defines a random variable processingTime.</p>
      <p>Object Event (OE) Graphs, as a basic type of DPMN process diagrams, extend the Event Graph
diagram language by adding object rectangles containing declarations of typed object variables and
state change statements, as well as gateway diamonds for expressing conditional and parallel branching.</p>
      <p>A DPMN process model, such as an OE Graph, is based on an underlying information model
defining the types of its objects and events. The process model shown in Figure 3 is an OE Graph that
is based on the OE class model shown in Figure 2.</p>
      <p>Notice that in the OE Graph of Figure 3, the state variables of the Event Graph of Figure 1, L and B,
have been replaced by the attributes inputBufferLength and status defined in the OE class model of
Figure 2.</p>
      <p>OE Graphs are a conservative extension of Event Graphs. This means that an OE Graph can be
transformed to an Event Graph preserving its dynamics by replacing its objects with corresponding sets
of state variables.</p>
      <p>
        Like Petri Nets, OE Graphs have a formal semantics. But while Petri Nets are an abstract
computational (“token flow”) formalism without an ontological foundation, OE Graphs are based on
the ontological categories of objects, events and causal regularities such that an OE Graph can be
decomposed into a set of event rules, representing causal regularities, which define the transitions of an
Abstract State Machine [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>An OE Graph specifies a set of chained event rules, one rule for each event circle of the model. The
above OE Graph specifies the following three event rules:
1. On each PartArrival event, the inputBufferLength attribute of the associated WorkStation object
is incremented and if the workstation's status attribute has the value AVAILABLE, then a new
ProcessingStart event is scheduled to occur immediately.
2. When a ProcessingStart event occurs, the associated WorkStation object's status attribute is
changed to BUSY and a ProcessingEnd event is scheduled with a delay provided by invoking
the processingTime function defined in the ProcessingStart event class.
3. When a ProcessingEnd event occurs, the inputBufferLength attribute of the associated
WorkStation object is decremented and if the inputBufferLength attribute has the value 0, the
associated WorkStation object's status attribute is changed to AVAILABLE. If the
inputBufferLength attribute has a value greater than 0, a new ProcessingStart event is scheduled
to occur immediately.</p>
      <p>These event rules can be implemented as onEvent methods of their triggering event classes. The
resulting model can be run at https://sim4edu.com/oesjs/core1/workstation-1/ as a web-based
simulation.</p>
      <p>DPMN consists of three layers. The first layer, for modeling OE Graphs, corresponds to an extension
of Event Graphs by adding the concept of Objects. The second layer (DPMN-A), for modeling Activity
Networks, adds the concepts of Resource-Constrained Activities and Resource-Dependent Activity
Scheduling based on resource roles and resource pools, while the third layer (DPMN-PN), for modeling
Processing Networks, adds the concepts of Processing Objects, Processing Activities and Processing
Flows.
4.2.</p>
    </sec>
    <sec id="sec-6">
      <title>From Object Event Graphs to Activity Networks</title>
      <p>
        In [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ], we have shown how to extend OE Graphs by adding support for resource-constrained
activities, resulting in OEM/DPMN-A, comprised of three new information modeling elements (Activity
Type, Resource Role, Resource Pool) and two new process modeling elements (Activity and
ResourceDependent Activity Scheduling Arrow). DPMN-A diagrams allow modeling Activity Networks.
      </p>
      <p>Conceptually, an activity is a composite event with a non-zero duration that is composed of, and
temporally framed by, a pair of instantaneous start and end events. In the OE class model of Figure 4
below, the pair of ProcessingStart and ProcessingEnd event types of the model of Figure 2 is replaced
with a corresponding Processing activity type. This replacement pattern is an essential part of the
semantics of activities in DPMN: by reduction to a pair of corresponding start and end events.</p>
      <p>The Activity-Start-End Rewrite Pattern exemplified in figures 4 and 5 can also be applied in the
inverse direction, replacing an Activity rectangle with a pair of Event circles. It allows reducing an
Activity Network model with Activity rectangles to an OE Graph as a basic DPMN diagram without
Activity rectangles.</p>
      <p>The target model of Figure 5 specifies two event rules:
1. On each PartArrival event: (a) if the workstation's status is AVAILABLE, then a local rule
variable wsAllocated is set to true and the workstation's status is set to BUSY, else the
workstation's inputBufferlength is incremented; (b) if the wsAllocated variable has the value
true, then a new Processing activity is scheduled to start immediately (with a duration provided
by invoking the duration function defined in the Processing activity class).
2. When a Processing activity ends: (a) if the workstation's inputBufferlength is equal to 0, then
the workstation's status is set to AVAILABLE, else the local rule variable wsAllocated is set to
true and the inputBufferlength is decremented; (b) if the wsAllocated variable has the value
true, a new Processing activity is scheduled to start immediately (with a duration provided by
invoking the duration function defined in the Processing activity class).</p>
    </sec>
    <sec id="sec-7">
      <title>5. Case Study: Making an Object Event Model of a Public Library</title>
      <p>We consider the case of a public library as an example of a business system, for which we make
both an OES model and an IS model for investigating the research questions posed in the Introduction.</p>
    </sec>
    <sec id="sec-8">
      <title>Making an IS Model</title>
      <p>As a result of requirements and domain analysis, we have obtained the conceptual information model
shown in Figure 6, describing 9 entity types with attributes and associations.</p>
      <p>The 9 entity types described by this model include 3 potential event types: book pickup notifications,
book lendings and book returns. However, from an IS modeling point of view, these entity types may
also be viewed as types of objects that represent documents recording events. This interpretation (of
events as document objects) is, in fact, supported by the presence of date/time attributes in these entity
types and by the many multiplicity in their participation associations with object types.</p>
      <p>Observation 1: Since, ontologically, objects participate in events, the associations between object
types and event types are participation associations.</p>
      <p>Compare the one-to-many association between library users and book returns in Figure 6 with the
one-to-one association between WorkStation objects and PartArrival events in Figure 4. When an event
class is populated with current events only (according to the standard snapshot semantics of UML class
models), a participation association between an object class and that event class is functional (x-to-one),
while it is non-functional (x-to-many) in the case of an event document class populated with an event
history (in the form of objects representing event documents).</p>
      <p>1
book lendings
requested books
date
library users
user ID
* 1 address</p>
      <p>people
name
birth date
1..* *
book returns
date
1
*
*</p>
      <p>authors
biography
book pickup notifications *
date *</p>
      <p>publishers
name
address
*
0..1
1
book copies
id
books
ISBN
title
1 * publication year
*</p>
      <p>Observation 2: An information model for an IS typically represents event types in the form of event
document object classes for recording event histories, while an information model for an OES
represents event types as classes with snapshot populations. In the case of an IS model, participation
associations are non-functional, while they are functional in the case of an OES model.</p>
      <p>An information design model for an IS for the public library based on the conceptual information
model of Figure 6 is shown in Figure 7.</p>
      <p>Notice that while historic lending events are stored in the population of BookLending, current
lendings, which still need to be completed, are recorded in the multivalued Book attribute lendings. This
allows the IS to periodically check if users have to be reminded to return lended books. The multivalued
Book attribute reservations allows to check if a returned book copy has to get the status RESERVED
and the corresponding user has to be notified to pick up the reserved book.
5.2.</p>
    </sec>
    <sec id="sec-9">
      <title>Making an OES Model</title>
      <p>The conceptual information model shown in Figure 8 describes the relevant entity types of an OES
model, where the date/time attributes of the event types described in the IS model of Figure 6 have been
dropped and the many multiplicities of the participation associations described in the IS model of Figure
6 have been replaced with 0..1 multiplicities.</p>
      <p>Notice that in addition to the three event types described by the IS model of Figure 6, the OES model
in Figure 8 includes two further event types, which are essential for capturing the dynamics of a library
as a business system: user arrivals and user departures. These two event types, which are important for
capturing user behavior in the simulation model, would normally only be included in an IS model, if
the IS is connected to member card scanners for automatically recording the entry and exit of users.</p>
      <p>While user arrivals and book pickup notifications are instantaneous events, book lendings and book
returns may be modeled either as instantaneous events or as activities. This consideration explains that
we have a choice to make an OE Graph or an Activity Network as a process model for the public
library. We start with an OE Graph in Section 5.2.1 followed by an Activity Network in Section 5.2.2.
«event type»</p>
      <p>BookReturn
id : Integer {id}
date : Date
«object type»</p>
      <p>Publisher
name : String {id}
address : String
id : Integer {id}
date : Date</p>
      <p>*
*</p>
      <p>1
«object type»</p>
      <p>
        Book
isbn[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] : String {id}
title[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] : String
year[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] : Integer
lendings[*] : Lending
reservations[*] : Reservation
1..**
      </p>
      <p>*
«record datatype»</p>
      <p>
        Lending
userId[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] : Integer
date[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] : Date
«record datatype»
      </p>
      <p>
        Reservation
userId[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] : Integer
date[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] : Date
      </p>
      <p>1
0..1 1
1
0..1
1</p>
      <p>1
user ID
address
library users
1
0..1
book returns
publishers
name
address
1 *</p>
      <p>books
ISBN
title
publication year
*</p>
      <p>people
name
birth date
*</p>
      <p>authors
biography</p>
    </sec>
    <sec id="sec-10">
      <title>5.2.1. Modeling the Public Library Process as an OE Graph</title>
      <p>Based on the conceptual information model for OES shown in Figure 8, we can now make a
conceptual process model for an OE simulation of the public library in the form of an OE Graph as
shown in Figure 9.</p>
      <p>This model describes the possible flows of events, assuming that book lendings and book returns are
instantaneous events. When users arrive, two events may happen in any order, as indicated by the
Inclusive OR Gateway: they may return any number of books in a book return event, or they may lend
any number of books in a book lending event. When a book is returned for which a reservation has been
made, then a book pickup notification event happens.</p>
    </sec>
    <sec id="sec-11">
      <title>5.2.2. Modeling the Public Library Process as an Activity Network</title>
      <p>Modeling book lendings and book returns as instantaneous events abstracts away from the duration
these events have in reality and does not allow modeling the library’s service desk involved in these
events as a resource that can be busy and thus create waiting lines. In a more realistic model, these
events should be modeled as activities depending on an available service desk as a resource.</p>
      <p>The two event types book lendings and book returns can also be modeled as activity types, as in
Figure 10.</p>
      <p>Compared to the model of Figure 9, turning book lendings and book returns into activities implies
that they have some duration as the time between their (implicit) start and end events. Typically, in an
OES model, the duration of activities of a certain type is defined in the form of a random variable (with
an underlying probability distribution) in an OE class model.</p>
      <p>This model describes the possible flows of events and activities. When users arrive, they can return
any number of books with a book return activity, or they can lend any number of books with a book
lending activity.</p>
      <p>While we can use the same information design modeling language both for the IS project and for
the OES project, we cannot use the same information design model for both projects. Rather, based on
Observation 2, we can derive the OES class design model from the IS class design model by
1. Dropping the event types’ ID and date/time attributes, since these attributes are implicit in OE
class models.
2. Changing the event multiplicities of participation associations from * to 0..1.
3. Adding those further event types that are essential for capturing the dynamics of the system
under investigation.
4. Designating the exogenous event types, for which a recurrence function has to be specified
(typically representing a random variable).
5. Defining a random variable duration function for all activity types.</p>
      <p>The result is the OE class design model shown in Figure 11.</p>
      <p>Notice that, like in the IS model of Figure 7, the Book attribute reservations allows checking if a
returned book copy has to get the status RESERVED and a BookPickupNotification event has to be
created for notifying the corresponding user. The attribute lendings has been moved from Book to
LibraryUser where it allows the OES to periodically check if users have to go to the library for returning
lended books.</p>
      <p>«exogenous event type»</p>
      <p>UserArrival
«event type»</p>
      <p>UserDeparture
«rv» recurrence() : Decimal
getNextUser() : LibraryUser</p>
      <p>While in the library IS, the periodic checks if book copies need to be returned are performed by the
library, which sends out reminder messages to the users concerned, the library OES takes care of this
by modeling users that periodically check their lending records for making sure that they don’t miss a
due date. In the UserArrival event class, a getNextUser method has been added for selecting a user,
either on the basis of a current due date or at random. This method is also in charge to create a list of
requested books (at random) to be passed to the follow-up LendBook activity.</p>
      <p>Finally, the Activity Network design model shown in Figure 12 is derived from the conceptual
process model of Figure 10 on the basis of the OE class design model of Figure 11 by expressing the
event rules for UserArrival events and for LendBook and ReturnBook activity end events, such that
these rules are triggered on completion of these activities. For instance, the LendBook activity end event
rule is specified by (1) the l:LendBook activity rectangle declaring the activity variable l as representing
the current LendBook activity; (2) the u:LibraryUser object rectangle introducing the activity variable
u as bound to the user object referenced by the expression l.user, which denotes the user involved in
the current LendBook activity; (3) the state change code of the annotation attached to the object
rectangle; and (4) a follow-up event of type UserDeparture.</p>
    </sec>
    <sec id="sec-12">
      <title>6. Using OEM&amp;S and DPMN for IS Engineering</title>
      <p>
        While OEM&amp;S and DPMN have been conceived for DES engineering, due to the large overlap
between DES engineering and IS engineering, they can also be used for IS engineering. While the
activities in a DPMN process model for a DES engineering project are supposed to be executed by a
simulator (based on their duration random variable), the activities in a DPMN process model for an IS
engineering project are to be executed by (typically human) performers, which requires that they can
interact with the IS for getting information from the IS and for providing information to the IS via a
suitable user interface (UI) that can be dynamically generated for each activity type on the basis of the
underlying OE class model and DPMN process model. When the user completes the activity by a
performing a suitable UI action (such pushing a button), the IS can execute the activity’s state change
statements and initiate any follow-up activity user interactions or perform any follow-up action events
specified for it in the DPMN process model. This is similar to what a “process-aware” IS based on the
workflow management paradigm is doing, but its operational semantics is more general, since it is based
on Object Event Graphs [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
      </p>
      <p>The semantics of OE class models and of queries/conditions in OEM&amp;S and DPMN are based on
predicate logic. Each object type/class and each event type/class defines a corresponding unary
predicate, while their attributes define binary predicates. A condition expressed in terms of these
predicates holds in a system state when the state’s populations of all object classes form a model that
satisfies the condition.</p>
      <p>
        The formal semantics of DPMN process models (in the form of OE Graphs and Activity Networks)
is provided by mapping their implicit event rules to transitions of an Abstract State Machine, see [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ].
As opposed to Petri-Net-based BPM approaches, such as BPMN, the OEM&amp;S/DPMN approach is
ontologically well-founded on the ontological categories of objects, events and causal regularities.
      </p>
    </sec>
    <sec id="sec-13">
      <title>7. Related Work</title>
      <p>We briefly discuss the most relevant related works: UML State Machines, MERODE, OPM, and
data/object/entity-based BPM. Notice that, as opposed to OEM&amp;S/DPMN, neither of them supports
event-based simulation modeling.</p>
      <p>
        UML State Machine diagrams describe finite state automata in terms of named object states and
state transitions, which are triggered by message (or operation call) events. They are based on Harel’s
Statecharts formalism [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] and typically used for defining the behavior of the instances of an object
class. In State Machines, a State models a situation during which some invariant condition holds. In
most cases this condition is not explicitly defined, but is implied, usually through the name of the State.
A Transition represents a specific form of event rule: it is bound to a source State and leads to a target
State, if it is triggered by a specific message event and its ‘guard’ condition holds.
      </p>
      <p>Compared to OEM&amp;S/DPMN, UML State Machines are based on the abstract computational
concepts of States and Transitions, and not on the fundamental ontological categories of Objects,
Events, and Causal Regularities. They do not include a general concept of events as first class citizens
and they require to identify a small number of relevant object states that can be named for forming the
States of the State Machine.</p>
      <p>
        Two well-established approaches resulting from IS engineering research, OPM [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] and MERODE
[
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], take events or processes into account as first-class citizens, along with objects, for modeling the
structure and behavior of a system.
      </p>
      <p>
        The IS engineering approach of MERODE [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ] assumes that each type of object participating in an
event of type evt defines an operation with the (same) name evt, such that at execution time, when an
event of type evt occurs, the evt operations of all participating objects are invoked. This approach to
behavior/process modeling, called ‘multiparty interaction’, has been adopted from process algebras like
CSP [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ] where the term ‘events’ stands for inter-process message events. In MERODE, it takes the
form of Object-Event Tables, which express, for each business event type, which objects are affected
in which way (Create/Update/Destroy) by the occurrence of an event of that type, and is combined with
UML State Machines, where events are the triggers for transitions from one named state to another.
      </p>
      <p>However, MERODE’s Object-Event Tables allow only to capture restricted forms of event rules that
do not allow to specify follow-up events and require to split up a rule’s cross-object state change
statements into a set of object-specific state change statements, while the use of UML State Machines
requires the identification of a small number of named states, which may be difficult and artificial in
many cases.</p>
      <p>
        The IS engineering approach of OPM [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] allows the integrated modeling of a system’s structure and
behavior. The basic building blocks of OPM are objects (with named states) and processes.
      </p>
      <p>However, OPM only has a limited concept of events (as provided by an object entering/exiting a
named state or a process starting/ending, not modeling event types as first class citizens), does not
distinguish between activities and processes, and requires, like State Machines, to identify a small
number of relevant object states that can be named. Also, the Event-Condition-Action (ECA) rules of
OPM represent a restricted form of OEM’s event rules, which split up the Action part into state change
statements and follow-up events for creating an explicit trace of event causation.</p>
      <p>
        There are several proposals for data/object/entity-based BPM, often motivated by allowing more
flexible types of BPs. E.g., the approach of [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ] is based on Business Entities with Lifecycles (BELs),
previously also called ‘artifacts’, where lifecycle stages are similar to the named object states in State
Machines and OPM. The operational semantics of this approach is based on ECA rules, like in OPM,
but its process models are not visual, as in DPMN, but purely textual (consisting of ECA rule code).
      </p>
    </sec>
    <sec id="sec-14">
      <title>8. Conclusions</title>
      <p>In this paper, we have started to investigate the complementary model-based engineering of a DES
and of an IS for a given business system. By allowing to capture general forms of event rules in OE
Graphs or Activity Networks, DPMN process models can be used to model the dynamics of an IS by
focusing on business events/activities and their causal regularities.</p>
    </sec>
    <sec id="sec-15">
      <title>9. References</title>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Casati</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Varzi</surname>
          </string-name>
          , Events, in: E.N.
          <string-name>
            <surname>Zalta</surname>
          </string-name>
          (Ed.),
          <source>The Stanford Encyclopedia of Philosophy</source>
          ,
          <year>2015</year>
          , URL: http://plato.stanford.edu/archives/win2015/entries/events/
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <surname>Robinson</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Arbez</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.G.</given-names>
            <surname>Birta</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Tolk</surname>
          </string-name>
          , and G. Wagner, Conceptual Modeling: Definition, Purpose and Benefits, in L. Yilmaz,
          <string-name>
            <given-names>W. K. V.</given-names>
            <surname>Chan</surname>
          </string-name>
          , I. Moon,
          <string-name>
            <surname>T. M. K. Roeder</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          <string-name>
            <surname>Macal</surname>
          </string-name>
          , and
          <string-name>
            <surname>M. D. Rossetti</surname>
          </string-name>
          (Eds.),
          <source>Proc. of the 2015 Winter Simulation Conference</source>
          , IEEE,
          <year>2015</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <surname>Olivé</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>R.</given-names>
            <surname>Raventós</surname>
          </string-name>
          ,
          <article-title>Modeling events as entities in object-oriented conceptual modeling languages</article-title>
          ,
          <source>Data &amp; Knowledge Engineering</source>
          <volume>58</volume>
          :
          <fpage>3</fpage>
          ,
          <year>2006</year>
          ,
          <fpage>243</fpage>
          -
          <lpage>262</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Dori</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          <string-name>
            <surname>Object-Process Methodology</surname>
          </string-name>
          :
          <article-title>A Holistic Systems Paradigm</article-title>
          . Berlin, Germany: Springer,
          <year>2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Guizzardi</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          and
          <string-name>
            <given-names>G.</given-names>
            <surname>Wagner</surname>
          </string-name>
          .
          <year>2013</year>
          .
          <article-title>“Dispositions and Causal Laws as the Ontological Foundation of Transition Rules in Simulation Models”</article-title>
          .
          <source>In Proceedings of the 2013 Winter Simulation Conference</source>
          , in R. Pasupathy et al (Eds.) ,
          <fpage>1335</fpage>
          -
          <lpage>1346</lpage>
          , IEEE.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <surname>Guizzardi</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          , G. Wagner,
          <string-name>
            <given-names>R.</given-names>
            <surname>Falbo</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.P.</given-names>
            <surname>Almeida</surname>
          </string-name>
          and
          <string-name>
            <given-names>R.</given-names>
            <surname>Guizzardi</surname>
          </string-name>
          .
          <article-title>Towards Ontological Foundations for the Conceptual Modeling of Events</article-title>
          . In: J.
          <string-name>
            <surname>C. Trujillo</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          <string-name>
            <surname>Ng</surname>
            and
            <given-names>V.</given-names>
          </string-name>
          <string-name>
            <surname>Storey</surname>
          </string-name>
          (Eds.),
          <source>Proceedings of 32nd International Conference on Conceptual Modeling</source>
          ,
          <year>2013</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <surname>Raimond</surname>
            , Y. and
            <given-names>S.</given-names>
          </string-name>
          <string-name>
            <surname>Abdallah</surname>
          </string-name>
          , The Event Ontology,
          <year>2007</year>
          , accessed
          <issue>on July 25</issue>
          ,
          <year>2022</year>
          , URL: http://motools.sourceforge.net/event/event.html.
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <surname>Schema</surname>
          </string-name>
          .org website,
          <source>accessed on June 26</source>
          ,
          <year>2022</year>
          , URL: https://schema.org/Event
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <surname>Pegden</surname>
            ,
            <given-names>C.D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Advanced</surname>
            <given-names>Tutorial</given-names>
          </string-name>
          : Overview of Simulation World Views, in B. Johansson et al (Eds.),
          <source>Proceedings of the 2010 Winter Simulation Conference</source>
          ,
          <volume>643</volume>
          −
          <fpage>651</fpage>
          , IEEE,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <surname>Markowitz</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <given-names>B.</given-names>
            <surname>Hausner</surname>
          </string-name>
          , and
          <string-name>
            <given-names>H.</given-names>
            <surname>Karr</surname>
          </string-name>
          ,
          <article-title>SIMSCRIPT: A simulation programming language, Englewood Cliffs</article-title>
          ,
          <string-name>
            <given-names>N. J.: Prentice</given-names>
            <surname>Hall</surname>
          </string-name>
          ,
          <year>1962</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <surname>Gordon</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>A general purpose systems simulation program</article-title>
          ,
          <source>in Proceedings of the Eastern Joint Computer Conference</source>
          , Washington, D.C.,
          <year>1961</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <surname>Dahl</surname>
            ,
            <given-names>O.-J</given-names>
          </string-name>
          . and
          <string-name>
            <given-names>K.</given-names>
            <surname>Nygaard</surname>
          </string-name>
          , Simula 67,
          <source>IFIP TC 2 Working Conference on Simulation Languages, Oslo</source>
          ,
          <year>1967</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <surname>Schruben</surname>
            ,
            <given-names>L.W.</given-names>
          </string-name>
          ,
          <source>Simulation Modeling with Event Graphs</source>
          ,
          <source>Communications of the ACM</source>
          <volume>26</volume>
          :
          <fpage>957</fpage>
          -
          <lpage>963</lpage>
          ,
          <year>1983</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <surname>Wagner</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>Information and Process Modeling for Simulation - Part I: Objects and Events</article-title>
          ,
          <source>Journal of Simulation Engineering</source>
          <volume>1</volume>
          ,
          <fpage>1</fpage>
          -
          <lpage>25</lpage>
          ,
          <year>2018</year>
          , URL: https://articles.jsime.org/1/1/
          <string-name>
            <surname>Modelingfor-Simulation-</surname>
          </string-name>
          Part-I.
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <surname>Wagner</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>An Abstract State Machine Semantics for Discrete Event Simulation</article-title>
          . In W. K. V.
          <string-name>
            <surname>Chan</surname>
          </string-name>
          et al (Eds.),
          <source>Proceedings of the 2017 Winter Simulation Conference</source>
          ,
          <volume>762</volume>
          -
          <fpage>773</fpage>
          , IEEE,
          <year>2017</year>
          , URL: https://www.informs-sim.org/wsc17papers/includes/files/056.pdf.
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <surname>Gurevich</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <source>A new thesis</source>
          , American Mathematical Society Abstracts, page
          <volume>317</volume>
          ,
          <year>August 1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          [17]
          <string-name>
            <surname>Wagner</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <article-title>Business Process Modeling and Simulation with DPMN: Resource-Constrained Activities</article-title>
          , In K.
          <string-name>
            <surname>-H. Bae</surname>
          </string-name>
          et al (Eds.),
          <source>Proceedings of the 2020 Winter Simulation Conference</source>
          ,
          <volume>762</volume>
          -
          <fpage>773</fpage>
          , IEEE,
          <year>2020</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          [18]
          <string-name>
            <surname>Snoeck</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <source>Enterprise Information Systems Engineering - The MERODE Approach</source>
          , Springer Cham,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          [19]
          <string-name>
            <surname>Fowler</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Event</surname>
            <given-names>Sourcing</given-names>
          </string-name>
          ,
          <source>web page, 12 December</source>
          <year>2005</year>
          ,
          <source>accessed on July 25</source>
          ,
          <year>2022</year>
          , URL: https://martinfowler.com/eaaDev/EventSourcing.html.
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          [20]
          <string-name>
            <surname>Dymitruk</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          , “Event Modeling: What is it?”, blog post,
          <year>2019</year>
          , accessed
          <issue>on July 25</issue>
          ,
          <year>2022</year>
          , URL: https://eventmodeling.org/posts/what-is
          <string-name>
            <surname>-</surname>
          </string-name>
          event-modeling/.
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          [21]
          <string-name>
            <surname>Harel</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <article-title>Statecharts: A Visual Formalism for Complex Systems</article-title>
          ,
          <source>Science of Computer Programming</source>
          <volume>8</volume>
          (
          <issue>3</issue>
          ),
          <fpage>231</fpage>
          -
          <lpage>274</lpage>
          ,
          <year>1987</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          [22]
          <string-name>
            <surname>Hoare</surname>
            ,
            <given-names>C.A.R.</given-names>
          </string-name>
          , Communicating sequential processes, Prentice-Hall International, Series in Computer Science,
          <year>1985</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          [23]
          <string-name>
            <surname>Hull</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          , et al,
          <article-title>Introducing the Guard-Stage-Milestone Approach for Specifying Business Entity Lifecycles</article-title>
          ,
          <source>in Proc. Int. Workshop on Web Services and Formal Methods (WS-FM)</source>
          ,
          <source>SpringerVerlag LNCS 6551</source>
          ,
          <year>2010</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>