<!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>Dealing with Deviations on Software Process Enactment : Comparison Framework</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Manel Smatti LSI-USTHB Algiers</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Algeria msmatti@usthb.dz</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Mohamed Ahmed Nacer LSI-USTHB Algiers</institution>
          ,
          <country country="DZ">Algeria</country>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2014</year>
      </pub-date>
      <fpage>2</fpage>
      <lpage>4</lpage>
      <abstract>
        <p>- Software development is a collective and complex task carried out through the cooperation of human agents and automated tools, this interaction defines the software process. PSEE (Process-centered Software Engineering Environment) are environments designed to support the creation and exploitation of software process models that define the expected behaviors of process agents. However, human agents may deviate from the process model; therefore, the PSEE should be flexible enough to cope with these unexpected actions. This paper deals with the problem of deviation during software process enactment; it gives an overview of significant research works that have been proposed to support deviations in the context of software process execution.</p>
      </abstract>
      <kwd-group>
        <kwd>- Software Process (SP)</kwd>
        <kwd>Software Process Enactment</kwd>
        <kwd>Process-centered Software Engineering Environments (PSEE)</kwd>
        <kwd>Deviation</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>1. INTRODUCTION</title>
      <p>
        Software development is defined as a collection
of procedures accomplished through the
cooperation and interaction of human agents and
automated tools. Therefore, the quality of the
final product depends always on the quality of
the software process used to deliver it. However,
the complexity of software products and the
involvement of human in these processes made
them more complex and difficult to manage.
Furthermore, software development is a
recurrent process; thus, pursuing a defined
model in such case has become more than
crucial. A software process model is an abstract
representation of the software process; it is a
description of the process expressed in a
suitable Process Modeling Language (PML) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]
whose main objective is to provide required
means to enact the process.
      </p>
      <p>
        Process-Centered Software Engineering
Environments (PSEEs) [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] are meant to
support the creation and the exploitation of
software processes; they are based on the
explicit representation of the process and are
centered on a PML interpreter that includes
mechanisms to enact the process model.
Despite their great support for software
development, PSEEs have not acquired an
industrial success. This is mainly due to their
rigidity and their lack of agility that is known to
be inescapable in every software product.
Moreover, software products have become
increasingly complex; their development
processes are extending over several months or
even several years, which lead them to deviate
from their initial model. Deviations are known to
be actions performed by process agents and
which are not described or allowed in the
process model. As a result of these actions, the
quality of software products, delivery time and
costs are affected. Finding solutions to cope with
such problem has become more than important
in order to guide software development.
Several research works have attempted to
address this issue by classifying these
deviations, proposing mechanisms to detect
them and finding out solutions to cope with this
problem. In this context, we will give in this
paper an insight about the relevant approaches
that have been proposed in this field.
      </p>
      <p>The paper is organized as follows. Section 2
gives an overview of software process
enactment domain, dedicated environments,
and some related problems. Section 3 deals with
the deviation problem during software process
enactment by introducing the deviation concept
and giving an illustrative example. Section 4
highlights some relevant works proposed to
support deviations during software process
execution, these approaches are discussed with
respect to some criteria we have defined. The
paper is concluded in section 5.</p>
    </sec>
    <sec id="sec-2">
      <title>2. SOFTWARE PROCESS ENACTMENT</title>
      <p>
        Software Engineering Environments (SEEs) are
meant to support software development. Most of
them are based on a predefined software
process model [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]. Process-centered Software
Engineering Environments (PSEEs) give up the
notion of a predefined process model, they
support variety of processes. A PSEE is
basically centered on a Process Modeling
Language (PML) [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ] and it provides tools to
validate process models and enact them.
Using different PMLs, each of these
environments is based on a different syntax.
Though, they are all designed around the
following three parts defined in [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] and taken
back by recent approaches:
i. Process model: a static description of
the process using a PML.
ii. Actual process: the process as it is
performed in real world.
iii. Observed process: a reflected view of
the actual process in the PSEE.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ], these different views of a software
process are related through a consistency
relationship that determines the ideal execution
of a software process. Based on this
consistency relationship, many problems,
related to software process enactment, may be
defined.
Despite the large number of prototypes that
have been proposed in order to provide an
environment that could be adopted by the
business community, these attempts are
remained and operated in the field of
academia. This failure is due, particularly, to the
rigidity of PSEEs which tend to provide more
details to allow process execution.
      </p>
      <p>Many research works have focused on solving
problems related to software process
enactment. For instance, the problem of
heterogeneous formalisms used to describe
software processes, the problem of geographic
distribution and the problem of deviations. The
present paper focuses on the latter category; we
introduce in the following sections the concept of
deviation and most important contributions to
solve this problem.</p>
    </sec>
    <sec id="sec-3">
      <title>3. DEVIATION CONCEPT</title>
    </sec>
    <sec id="sec-4">
      <title>3.1. Definition</title>
      <p>
        A deviation is known as a performed action that
is not described in the predefined process model
or that violates some of the constraints
expressed in the process [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. For example,
launching an activity of which preconditions are
false, assigning an activity to a person other
than the authorized ones or an invalid number of
consumed or generated resources ...etc. A more
detailed example taken from [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] is given below.
We have noticed that the definition given above
can refer to the term inconsistency in some
approaches. For instance, in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] a deviation is
defined as an inconsistency that may occur
during process enactment. On the other hand, in
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ] an inconsistency is known as the state of
software process resulting from a process
deviation and it is the difference between the
actual value of a system variable and the
expected value in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
      </p>
    </sec>
    <sec id="sec-5">
      <title>3.2. Example of deviation</title>
      <p>Lots of approaches have been proposed to
support deviations during software process
enactment. These approaches differ in their
procedures when detecting deviations and in
supports they offer to correct the resulting
inconsistencies.</p>
      <p>
        As an example, we take back the following
simple software process proposed by Da Silva
et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] and we explain how authors proceed to
detect deviations.
      </p>
      <p>According to the authors, a deviation occurs
when one of these three verifications performed
by the PSEE fails. These verifications are
performed for each activity as follows:
i. When it is launched: the PSEE verifies if
the required artifacts for its beginning,
according to the process model, are
available.
ii. During its execution: the PSEE verifies
that the execution steps are
corresponding to those described in the
process model.
iii. At its end: the PSEE verifies if the
artifacts delivered by the activity are
those expected according the process
model.</p>
      <p>In this contribution, authors have focused on
artifacts consumed and delivered by the
software process activities to detect deviations.
However, experiences have shown that the
problem of deviation is not related just to
artifacts, but also to agents and resources
involved. More details will be discussed bellow.</p>
    </sec>
    <sec id="sec-6">
      <title>4. COMPARISON FRAMEWORK</title>
      <p>The deviation problem during process
enactment is not a recent one. In 90s, many
research works have attempted to find out some
solutions and propose prototypes to solve this
problem.</p>
      <p>
        For instance, The SPADE environment [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ],
which is based on a process modeling language
called SLANG (SPADE LANGuage), is a
highlevel Petri nets based formalism that uses an O2
object-oriented database for the storage of
process data. Although it offers an extended
support to process evolution through the
reflectivity features of the SLANG, SPADE
assumes that humans involved in the
development process do not change the way
they work unless they change the process
model.
      </p>
      <p>
        SENTINEL [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] is a PSEE prototype based on
LATIN activity-based language, it adopts
ClientServer architecture and records the relevant
events occurred during enactment in a
knowledge base. In SENTINEL, a history of the
entire process execution is stored and analyzed
off-line to discover deviations.
      </p>
      <p>
        PROSYT [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ], which is, especially, conceived to
support any kind of distributed business
processes, adopts an artifact-based language
called PLAN. One of the key features of
PROSYT is its ability to modify the level of
enforcement adopted and the consistency
handling policy at enactment-time. Table 1
summarizes some relevant approaches that
have been proposed in the 90s to deal with
deviations during software process enactment.
      </p>
      <sec id="sec-6-1">
        <title>Endeavors [4] Bolcer and Taylor</title>
        <p>1998
Defined using a fully reflective language (SLANG) that is built
over a high-level extension of Petri nets. SPADE includes
mechanisms to integrate the definition of the process of
changing as well as the development process (meta-process).
Based on the LATIN language, a knowledge base is used to
record relevant events occurred during enactment to perform a
pollution analysis, using a temporal-logic based approach, to
detect and tolerate some deviations.</p>
        <p>An open, extensible, Internet-based PSEE. It supports an
object-oriented definition of SP and both distribution of people
and artifacts. To support on the fly deviations handling, it allows
dynamic modification of object fields, methods and behaviors at
runtime.</p>
        <p>A framework that aims to support heterogeneous PSEE and to
support process evolution. Thanks to the process server, each
component (PSEE) can change the current process as well as
the process model.</p>
        <p>Built around the PLAN language, it adopts an artifact-based
approach and it supports geographical distributed workgroups. It
allows process managers to define a deviation handling and a
consistency checking policies.</p>
      </sec>
    </sec>
    <sec id="sec-7">
      <title>4.1. Criteria</title>
      <p>In the remainder of this section, we will be
interested to recent contributions proposed to
solve the deviation problem during software
process enactment. These approaches are
based on former ones. Six solutions are
discussed and compared with respect to a set of
criteria we have defined, including:
i. Proposed classification: to better
support deviations, some authors
propose to classify them with respect to
constraints they are violating or
consistency relationships are breaking
down, others based their solutions on
what has been already proposed. So, in
a classification, more than one type is
identified.
ii. Type of deviations covered: based on
the classification adopted, more than
one type of deviation can be considered
by the proposed approach.
iii. Support type: the goal of most solutions,
considered in this paper, is not just to
detect deviations that may arise during
software process enactment, but also to
provide a reconciliation mechanism
between the process being enacted and
the model initially adopted. This
reconciliation can be automatic,
semiautomatic or ad-hoc.</p>
    </sec>
    <sec id="sec-8">
      <title>4.2. Discussions</title>
      <p>
        4.2.1. Classification and considered deviations
Many deviation classifications have been
proposed in the literature. In [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ], deviations have
been classified into: (1) actual process deviation
which is an action that breaks the consistency
relationship between the actual process and the
process model, (2) observed process deviation:
an action performed within the PSEE and that is
not reflected in the process model, and (3)
environment deviation that breaks the
consistency relationship between the actual
process and the observed process. This
classification is taken back by the approach
proposed in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
In [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ], a deviation can be either
environmentlevel or domain-level. Environment-level
deviation refers to an inconsistency between the
software performance and the process
enactment whereas a domain-level deviation is
the violation of a property defined in the
performance model. According to the definitions
given in this paper, software performance,
process enactment and performance model
refer to actual process, observed process and
process model, respectively. Notice that this
classification has been proposed in [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
      </p>
      <p>
        A more detailed classification has been
proposed by Bendraou et al. in [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. A deviation
may be organizational, behavioral or structural.
An organizational deviation occurs when an
activity’s deadline is not respected or because of
a misallocation of roles...etc. Behavioral
deviation may be micro or macro one. The micro
behavioral one appears when violating
methodological guidelines or business
constraints while macro one arises when
developers change activities’ order. Finally, a
structural deviation is gotten when
inconsistencies are found in a delivered model.
4.2.2. How to detect deviations and when?
Deviations can be detected either on the fly i.e.
during process enactment, or at the end of the
execution by analyzing data gathered during the
process enactment. To do that, PSEE performs
a set of comparisons between the process
model and the process as it is performed which
allows to measure the distance between the
actual process state and the expected one.
To treat structural and micro behavioral
deviations in the context of multi-viewpoint
development processes [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], each modeling
action is represented using Praxis that has been
extended to represent the viewpoint in which it
has been performed. Praxis rules is the
rulebased language that is used by the PSEE to
detect deviations. To do that, the PSEE
compares each rule with the praxis trace
captured from the process execution. Praxis
rules can be:
i. Activity post-condition rules: define
structural constraints over a sequence
of praxis actions.
ii. Activity invariant rules: define behavioral
constraints over a sequence of praxis
actions.
      </p>
      <p>
        Deviation rules are associated with the process
model as logical formulas in the approach
proposed by Da Silva et al. [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. To detect
deviation, the PSEE performs three kinds of
verification for each activity: 1) when it is
launched, 2) during its execution and 3) when it
finishes. The failure of one of these verifications
means that the agent is deviating from the
process model.
      </p>
      <p>
        Logical formulas are also used by Kabbaj et al.
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Each activity is associated with a set of pre
and post conditions and a set of invariants. The
transformation of the process model, defined as
a UML profile, to logical formulas is obtained
automatically using XMI. An action is considered
as a deviation if it is not deductible from the
state that preceded its execution.
      </p>
      <p>
        In [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], a list of deviation types is integrated into
the process model. Rule-sets that define pre and
post conditions are associated with each activity.
Activity conditions are made up of N number of
rule sets. For a condition to pass, at least one
rule set defined in the condition must pass.
Otherwise, a deviation is generated.
      </p>
      <p>
        An algebraic approach based on the polyadic
has been proposed in [
        <xref ref-type="bibr" rid="ref14">14</xref>
        ] to detect
environment-level and domain-level deviations.
To not be faced to the complexity of the
, a visualization support, TRISO/ML
(TRidimensional Integrated Software
development model/Modeling Languages) has
been used, and a set of rules has been
proposed for mapping software processes
modeled in TRISO/ML onto
processes. The model checking
allows detecting inconsistencies; also, some
properties are used to detect enduring
inconsistencies as control flow, data
dependency ...etc.
      </p>
      <p>
        The solution proposed in [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] is based on
software visualization techniques. It is a set of
steps that are performed in parallel with SP
enactment. The approach identifies a partial set
of nonconformities that are initially used by the
PSEE. The approach is artifact-based, i.e. to
detect deviations, it does not take into account
the activity performed, but just the outputs. So,
the approach can only be applied when results
are available.
4.2.3.
      </p>
      <p>Dealing with deviations
The increasing complexity of software products
has made the issue of their creation complex
and difficult to manage. Therefore, the goal is no
longer to define the problems that may arise
during software development but rather to find
solutions to address these issues in order to
have high quality products.</p>
      <p>Most of the solutions mentioned above aimed to
propose mechanisms that facilitate the detection
of deviations that may occur during software
development, but also to find out some solutions
to reconcile the process with its initial model,
which defines the expected process.</p>
      <p>
        When a deviation is detected, two policies are
widely adopted [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]:
ii.
      </p>
      <sec id="sec-8-1">
        <title>Change the initial model, so it can</title>
        <p>support the carried out process.</p>
        <p>Tolerate this deviation as much as it
does not affect the expected process;
i.e. its execution does not have great
impact on the process.</p>
        <p>Notice that approaches which report the
detection of deviations until the end of the
process, by analyzing data collected and stored
during enactment, or those which do not give
any support to correct deviations while
enactment, even if they are able to detect them
as they occur, do not offer great advantage
because solutions they propose are either
pieces of advice to prevent future deviations or
to change the model. More detailed are given
forward.</p>
        <p>
          The approach proposed in [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] applies both
solutions mentioned above. Each deviation type,
among the thirties identified, is associated with a
tolerance value interval and a qualification,
minor or major. So, when detected, a deviation
is analyzed, with respect to these criteria, and
either tolerated or not. If not, changing the model
is adopted.
        </p>
        <p>
          A function generator is used in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] to define a
mapping between the observed process and
deviation causes to generate correction plans
that are proposed to the process agent. To do
that, the PSEE continuously displays the set of
detected deviations with their associated risks.
So, at each moment, the process agent may ask
the PSEE to guide him to fix detected deviations
by generating a correction plan.
No automatic guidelines have been given to
correct a deviation when it is logged in [
          <xref ref-type="bibr" rid="ref13">13</xref>
          ]. The
detection engine compares data collected by the
monitoring engine with the properties defined in
the process model. If any deviation is logged, an
alert appears.
        </p>
        <p>
          A model checking approach is applied to detect
deviations in software processes modeled with
the [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ]. Processes are defined as
a combination of activities and roles to which a
set of rules is applied.
        </p>
        <p>
          Zazworka et al. [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ] use a conformance
approach to detect deviations during software
process enactment. It is a set of steps that
accompany the enacting process. A partial set of
nonconformities is defined to estimate the
conformance between the enacting process and
the expected one. The approach is not applied
on activities themselves but to artefacts that
result from them.
        </p>
      </sec>
    </sec>
    <sec id="sec-9">
      <title>5. CONCLUSION</title>
      <p>Developing high quality software products
requires the cooperation of several factors.
Although new technologies have brought a lot of
facilities and improvement in these development
processes, the human factor still plays a major
role in their success.</p>
      <p>Supporting human actors to achieve the
required quality products has led to propose
dedicated environments called
Processcentered Software Engineering Environments
(PSEEs). Having a description of the process
model to enact, the PSEE is supposed to guide
human agents to achieve the required quality of
a software product.</p>
      <p>
        The trend of PSEEs towards modeling software
processes details has made them inflexible and
rigid. People often need to deviate from the
process model to cope with unexpected events
that may occur during software process
enactment. Thus, providing mechanisms to deal
with these deviations has become crucial.
In this paper, we have given an overview of
deviation problem during software process
enactment through an illustrative example [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ].
Some relevant research works have been briefly
presented and discussed. Three major criteria
have been considered when discussing these
approaches: (1) deviation types treated by the
approach; (2) how to proceed to detect these
deviations and (3) what mechanisms have been
adopted to deal with detected deviations.
Almost all solutions have been validated through
prototypes with small executed examples.
However, software processes are, usually, very
complex and extended over several years. So,
validating these solutions on real software
projects may help integrating these
environments into industrial fields.
Technologies: Infrastructure for
Collaborative Enterprises, 1999. (WET ICE
’99) Proceedings. IEEE 8th International
Workshops on, pages 32–39, 1999.
      </p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>M.A. Almeida da Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Bendraou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Robin</surname>
          </string-name>
          , and
          <string-name>
            <given-names>X.</given-names>
            <surname>Blanc</surname>
          </string-name>
          .
          <article-title>Flexible deviation handling during software process enactment</article-title>
          .
          <source>In Enterprise Distributed Object Computing Conference Workshops (EDOCW)</source>
          ,
          <year>2011</year>
          15th IEEE International, pages
          <fpage>34</fpage>
          -
          <lpage>41</lpage>
          ,
          <year>Aug 2011</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bandinelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. Di</given-names>
            <surname>Nitto</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Fuggetta</surname>
          </string-name>
          .
          <article-title>Supporting cooperation in the spade-1 environment</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>22</volume>
          (
          <issue>12</issue>
          ):
          <fpage>841</fpage>
          -
          <lpage>865</lpage>
          ,
          <year>1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>S.</given-names>
            <surname>Bandinelli</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghezzi</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fuggetta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>L</given-names>
            <surname>Lavazza</surname>
          </string-name>
          .
          <article-title>SPADE: An environment for software process analysis, design, and enactment</article-title>
          .
          <source>In Software Process Modeling and Technology</source>
          , pages
          <fpage>223</fpage>
          -
          <lpage>248</lpage>
          . Wiley,
          <year>1994</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>G. A.</given-names>
            <surname>Bolcer</surname>
          </string-name>
          and
          <string-name>
            <given-names>R. N.</given-names>
            <surname>Taylor</surname>
          </string-name>
          , “
          <article-title>Endeavors: A Process System Integration Infrastructure”</article-title>
          .
          <source>In Proceedings of the Fourth International Conference on Software Process (ICSP4)</source>
          , Brighton,
          <string-name>
            <surname>UK</surname>
          </string-name>
          ,
          <year>December 1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>R.</given-names>
            <surname>Bendraou</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. A.</given-names>
            <surname>Almeida da Silva</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M. P.</given-names>
            <surname>Gervais</surname>
          </string-name>
          , and
          <string-name>
            <given-names>X</given-names>
            <surname>Blanc</surname>
          </string-name>
          .
          <article-title>Support for deviation detections in the context of multi-viewpointbased development processes</article-title>
          .
          <source>In CAiSE Forum</source>
          , pages
          <fpage>23</fpage>
          -
          <lpage>31</lpage>
          ,
          <year>2012</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>G.</given-names>
            <surname>Cugola</surname>
          </string-name>
          .
          <article-title>Tolerating deviations in process support systems via flexible enactment of process models</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          ,
          <volume>24</volume>
          (
          <issue>11</issue>
          ):
          <fpage>982</fpage>
          -
          <lpage>1001</lpage>
          ,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>G.</given-names>
            <surname>Cugola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E. Di</given-names>
            <surname>Nitto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>A.</given-names>
            <surname>Fuggetta</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghezzi</surname>
          </string-name>
          .
          <article-title>A framework for formalizing inconsistencies and deviations in humancentered systems</article-title>
          .
          <source>ACM Trans. Softw</source>
          . Eng. Methodol.,
          <volume>5</volume>
          (
          <issue>3</issue>
          ):
          <fpage>191</fpage>
          -
          <lpage>230</lpage>
          ,
          <year>July 1996</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>G.</given-names>
            <surname>Cugola</surname>
          </string-name>
          and
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghezzi</surname>
          </string-name>
          .
          <article-title>Design and implementation of prosyt: a distributed process support system</article-title>
          . In Enabling
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>G.</given-names>
            <surname>Cugola</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.Di</given-names>
            <surname>Nitto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Ghezzi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Mantione</surname>
          </string-name>
          .
          <article-title>How to deal with deviations during process model enactment</article-title>
          .
          <source>17th International Conference on Software Engineering</source>
          , pages
          <fpage>265</fpage>
          -
          <lpage>265</lpage>
          ,
          <year>1995</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>S.</given-names>
            <surname>Dami</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Estubler</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Amiour</surname>
          </string-name>
          .
          <article-title>Apel: A graphical yet executable formalism for process modeling</article-title>
          . In E. Nitto and
          <string-name>
            <surname>A</surname>
          </string-name>
          . Fuggetta, editors,
          <source>Process Technology</source>
          , pages
          <fpage>61</fpage>
          -
          <lpage>96</lpage>
          . Springer US,
          <year>1998</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>V.</given-names>
            <surname>Gruhn</surname>
          </string-name>
          .
          <article-title>Process-centered software engineering environments, a brief history and future challenges</article-title>
          .
          <source>Annals of Software Engineering</source>
          ,
          <volume>14</volume>
          (
          <issue>1-4</issue>
          ):
          <fpage>363</fpage>
          -
          <lpage>382</lpage>
          ,
          <year>December 2002</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>M.</given-names>
            <surname>Kabbaj</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Lbath</surname>
          </string-name>
          , and
          <string-name>
            <given-names>B.</given-names>
            <surname>Coulette</surname>
          </string-name>
          .
          <article-title>A deviation-tolerant approach to software process evolution</article-title>
          . In Ninth international workshop on Principles of
          <article-title>software evolution: in conjunction with the 6th ESEC/FSE joint meeting</article-title>
          ,
          <source>IWPSE '07</source>
          , pages
          <fpage>75</fpage>
          -
          <lpage>78</lpage>
          . ACM,
          <year>July 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          [13]
          <string-name>
            <given-names>S.</given-names>
            <surname>Thompson</surname>
          </string-name>
          ,
          <string-name>
            <given-names>T.</given-names>
            <surname>Torabi</surname>
          </string-name>
          , and
          <string-name>
            <given-names>P.</given-names>
            <surname>Joshi</surname>
          </string-name>
          .
          <article-title>A framework to detect deviations during process enactment</article-title>
          .
          <source>In Computer and Information Science</source>
          ,
          <year>2007</year>
          .
          <source>ICIS</source>
          <year>2007</year>
          . 6th IEEE/ACIS International Conference on, pages
          <fpage>1066</fpage>
          -
          <lpage>1073</lpage>
          ,
          <year>July 2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          [14]
          <string-name>
            <given-names>Q.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>Q.</given-names>
            <surname>Wang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>G.</given-names>
            <surname>Yang</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Zhai</surname>
          </string-name>
          ,
          <string-name>
            <given-names>J.</given-names>
            <surname>Li</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hou</surname>
          </string-name>
          , and
          <string-name>
            <given-names>Y.</given-names>
            <surname>Yang</surname>
          </string-name>
          .
          <article-title>An algebraic approach for managing inconsistencies in software processes</article-title>
          .
          <source>In Software Process Dynamics and Agility</source>
          , pages
          <fpage>121</fpage>
          -
          <lpage>133</lpage>
          ,
          <year>2007</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          [15]
          <string-name>
            <given-names>K. Z.</given-names>
            <surname>Zamli</surname>
          </string-name>
          and
          <string-name>
            <given-names>P. A.</given-names>
            <surname>Lee</surname>
          </string-name>
          .
          <article-title>Taxonomy of process modeling languages</article-title>
          .
          <source>In Computer Systems and Applications</source>
          , ACS/IEEE International Conference on.
          <year>2001</year>
          , pages
          <fpage>435</fpage>
          -
          <lpage>437</lpage>
          , June 25-29
          <year>2001</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          [16]
          <string-name>
            <given-names>N.</given-names>
            <surname>Zazworka</surname>
          </string-name>
          ,
          <string-name>
            <given-names>V.R.</given-names>
            <surname>Basili</surname>
          </string-name>
          , and
          <string-name>
            <given-names>F.</given-names>
            <surname>Shull</surname>
          </string-name>
          .
          <article-title>Tool supported detection and judgment of nonconformance in process execution</article-title>
          .
          <source>In Empirical Software Engineering and Measurement</source>
          ,
          <year>2009</year>
          .
          <source>ESEM</source>
          <year>2009</year>
          . 3rd International Symposium on, pages
          <fpage>312</fpage>
          -
          <lpage>323</lpage>
          ,
          <year>Oct 2009</year>
          .
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>