<!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>Towards Cloud-Based Software Process Modelling and Enactment</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Sami Alajrami</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Alexander Romanovsky</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Paul Watson</string-name>
          <email>paul.watsong@ncl.ac.uk</email>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Andreas Roth</string-name>
          <email>andreas.roth@sap.com</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>SAP SE</institution>
          ,
          <addr-line>Karlsruhe</addr-line>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>School of Computing Science, Newcastle University</institution>
          ,
          <addr-line>Newcastle upon Tyne</addr-line>
          ,
          <country country="UK">UK</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>Model Driven Engineering (MDE) considers models as a key artifact in software processes, and focus on the creation of models and transformations between them in order to (semi) automatically generate code. In this paper, we step back and consider the software process model itself as a key artifact that can be enacted and semi automated. We support our vision by proposing an architecture for a cloud-based software processes modelling and enactment environment which integrates software development tools and maintains repositories of modelling artifacts and the history of development.</p>
      </abstract>
      <kwd-group>
        <kwd>Software Process Modelling</kwd>
        <kwd>Process Enactment</kwd>
        <kwd>Software Engineering</kwd>
        <kwd>Software Work ows</kwd>
        <kwd>Cloud computing</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        As software systems are becoming more pervasive, the complexity of these
systems has been increasing and the notion of systems of systems has been adopted.
This complexity makes producing software systems a di cult task due to the
increasing gap between the problem and the software implementation domains [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ].
Model-Driven Engineering (MDE) was introduced as an approach to bridge this
gap. MDE is driven by models which are used along with model transformation
techniques to (semi) automate the code generation.
      </p>
      <p>Models are used in most engineering domains to provide abstraction from the
real world. In software systems, models are used for di erent purposes such as:
documentation, testing, static analysis, and code generation. The use of models
helps in representing the problem in a systematic way and displays the right
amount of details for di erent perspectives and at di erent stages of
development.</p>
      <p>
        At the same time, the cloud computing paradigm has evolved to simplify
organizational IT management and maintenance and cut both operational and
expenditure costs. Cloud o ers computing resources on demand using di erent
service models (infrastructures, platforms, and software) and di erent
deployment models (public, private, community, and hybrid) [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        As the cloud is being widely adopted by both research and industry,
researchers have started investigating the potential of using it for some
software development phases (especially the computing intensive ones e.g.
testing) [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ], [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ], [
        <xref ref-type="bibr" rid="ref22">22</xref>
        ]. In general, there are two perspectives to realize the potential
collaboration between cloud and software engineering; (a) the use of cloud to
support the software development process, (b) advancing software development
methodologies to suite developing software for the cloud. The work presented in
this paper ts in the rst perspective.
      </p>
      <p>
        MDE is centred around the creation of models and their relevant
transformation techniques in order to automatically generate parts of models or code
from other models. Typically, the focus is on modelling of individual phases of
the software development process. In [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ], authors developed an enactment
environment for MDA processes, while authors in [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ] investigated the potential of
combining MDE and cloud, and proposed the notion of Modelling as a Service
(MaaS). In this paper, we focus on the software development process models
as a key software artifact, these models can be enacted and the non-interactive
or repetitive tasks can be automated. We propose an architecture for software
work ows enactment environment in the cloud.
      </p>
      <p>The rest of the paper is structured as follows: a background discussing the use
of cloud for software development and software process modelling is established
in section 2. Section 3 describes the general architecture for our cloud-based
software development platform. The paper concludes with a brief summary of
future work.
2
2.1</p>
    </sec>
    <sec id="sec-2">
      <title>Motivation and Background</title>
      <sec id="sec-2-1">
        <title>Software Engineering in the Cloud</title>
        <p>
          Today, Global Software Development (GSD) has become a popular development
model where teams are distributed (sometimes across continents) and use
different sets of tools to support and manage the development process. Developers
have their own computers and need to have the tools that they need installed and
con gured. In addition, each team needs access to shared repositories and
collaboration tools. The distribution in GSD brings multiple challenges to software
development processes such as: restricted communication, less shared project
awareness, and inconsistent builds [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ]. Provisioning of software development
environments in the cloud should proof bene cial as moving the development
process to the cloud not only can reduce the amount of resources (time, money, and
manpower) spent on the set up and con guration for each software project, but
also can address some of the GSD challenges as shown in [
          <xref ref-type="bibr" rid="ref14">14</xref>
          ].
        </p>
        <p>Cloud's accessibility facilitates distributed development by providing a shared
development environment (artifacts and tools). Furthermore, cloud can bridge
the gap between development and deployment environments. Having a virtually
unlimited pool of resources in the cloud helps in allocating su cient resources
to certain heavy computing software development tasks (e.g. model checking or
testing). Eventually, using the cloud to support software development processes
will help software teams to focus their e orts on the core problem rather than on
setting up and maintaining development environments. There are some
commercial cloud-based tools that support di erent phases of the software development
process such as: IDEs (e.g. codenvy 3), testing (e.g. BlazeMeter4), issue tracking
(e.g. JIRA 5). However, these tools are dedicated to support one or more phases
of the software development process but not the entire process.
2.2</p>
      </sec>
      <sec id="sec-2-2">
        <title>Software Process Modelling</title>
        <p>
          Despite the current trend of embedding high level abstractions in programming
languages to avoid code generation bottlenecks, Several approaches to MDE have
been introduced: Model-Driven Architecture (MDA) 6, Model-Driven Software
Development (MDSD) [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ], and Domain Speci c Modelling (DSM) [
          <xref ref-type="bibr" rid="ref17">17</xref>
          ].
However, the focus has always been on modelling individual phases of the software
development process rather than the process itself. Modelling software processes
has been investigated since late 80s. There are many motivations which led these
investigations including: a) improving the understanding for di erent
perspectives, by visualizing the relevant components for each perspective. b) facilitating
communication among team members, and c) supporting project management
through reasoning in order to improve the process. Furthermore, the models can
be partially automated (e.g. repetitive and non-interactive tasks). Several
approaches for software process modelling have been introduced over time, they
are categorized into four categories [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]:
1. Rules based (e.g. MARVEL [
          <xref ref-type="bibr" rid="ref16">16</xref>
          ])
2. Petri net based (e.g. SPADE [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ])
3. Programming languages based (e.g. SPELL [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ])
4. UML based (e.g. SPEM 7)
The rst three did not receive industrial take up due to their complexity and
in exibility [
          <xref ref-type="bibr" rid="ref15">15</xref>
          ]. The UML approach was based on utilizing the wide adoption
and acceptance of Uni ed Modelling Language (UML) for modelling software
processes. Several implementations of this approach have been proposed each
with di erent strengths and weaknesses. Authors in [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ], compared six UML-based
modelling approaches based on a set of software process modelling requirements.
The authors also admit that executability and formality are major weaknesses
of UML in the context of software process modelling.
        </p>
        <p>
          Among the previous approaches, SPEM (Software Process Engineering
Metamodel) has became an OMG standard for software process modelling. SPEM is
based on the concept of interaction between Roles that perform Activities which
3 https://www.codenvy.com/
4 http://www.blazemeter.com/
5 https://www.atlassian.com/software/jira
6 http://www.omg.org/mda/
7 http://www.omg.org/spec/SPEM/2.0/
consume (and produce) Work Products [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. However, a major criticism of SPEM
in literature is its lack of support for process enactment. As a result, several
researchers have proposed di erent approaches and extensions to support
process enactment in SPEM. In [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], authors propose mapping rules to map SPEM
models into XML Process Description Language (XPDL) which then can be
enacted. In [
          <xref ref-type="bibr" rid="ref23">23</xref>
          ], authors propose xSPIDER ML (a software process enactment
language based on SPEM 2.0 concepts). Although xSPIDER ML is supported
with modelling tool and enactment environment, the notion of enactment is
limited to process monitoring since developers are supposed to perform their tasks
o -line and report their progress to the enactment environment. Authors in [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]
introduce eSPEM which is a SPEM extension to allow describing ne-grained
behaviour models that facilitate process enactment. They implement a distributed
process execution environment [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] based on the FUML standard with emphasis
on supporting the ability to share process state on di erent nodes, suspend and
resume process execution, interact with humans, and adapt to di erent
organizations. However, the notion of process enactment in that execution environment
also assumes that developers carry out their tasks outside the execution
environment and return control back to it once they nish.
        </p>
        <p>Following an enforced formal process modelling can be useful in some cases
(e.g. for certifying safety-critical systems). However, in practice, it can be
restrictive for the creativity of team members. Organizations have been moving to
agile methods to gain more dynamicity and to increase productivity. Therefore,
we propose in the next section a less formal, more exible and adhoc modelling
notation than the previously mentioned approaches, with emphasis on the
enactment of process models with support of an integrated tool set in the cloud.
3</p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Proposed Architecture for Cloud-Based Software</title>
    </sec>
    <sec id="sec-4">
      <title>Process Enactment</title>
      <p>As mentioned in the previous section, SPEM lacks support for process
enactment. In addition, neither the extensions that are o ered by researchers for
enactment support are standardized nor widely adopted outside academia. These
approaches do not have a proper tool support and do not consider integrating
software development tools within the enactment environment. The
understanding of software process enactment in most of these approaches seemed to be
limited to the concept of process simulation/monitoring. Although this notion of
enactment can be useful for project management and monitoring, we think of
enactment in a much broader way. Hence, we describe software process enactment
as the process of performing software development activities by di erent actors
within an environment that provides enactment support through the integration
of development tools and automatic passing of control and data between
activities. This means that unlike the approaches mentioned in the previous section,
the entire development process execution takes place within one environment
where tools and artifacts are available.
3.1</p>
      <sec id="sec-4-1">
        <title>Software Engineering Work ows</title>
        <p>
          Software engineering process can be described as a sequence of operations
(activities) performed by development team members including customers and
managers (actors) where activities produce artifacts which are used as inputs
for other activities. This complies with The Work ow Management Coalition
(WfMC) de nition of work ow [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ] as "the automation of a business process, in
whole or part, during which documents, information or tasks are passed from
one participant to another for action, according to a set of procedural rules".
Therefore software process can naturally be seen as a work ow. The idea of using
work ow technology for software processes is not new, several researchers have
investigated it [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ], [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ].
        </p>
        <p>Based on our description of enactment and software work ows, we propose
an architecture to support software process enactment in the cloud. The bene ts
that software development can gain from the cloud has been discussed in section
2.1. In addition, provisioning of software development environments in the cloud
with elastic resources will direct organization's resources towards solving the
actual problem. Allowing third parties to integrate their tools makes it possible to
try di erent tool vendors and di erent versions interchangeably without a huge
adjustment e ort. The work ow enactment environment passes the execution
control between activities as prescribed in the process model. Non-interactive
and repetitive tasks can be automated and bene t from the elasticity of the
cloud (e.g. run a distributed model checker on two nodes initially and add more
nodes if necessary). The artifacts generated from each activity can be accessed
by team members (as it is stored on a repository in the cloud) and will be passed
to the next relevant activity as an input. Often, software processes can be reused
which adds another advantage for software development rms.</p>
        <p>The three logical layers of the proposed architecture are illustrated in
Figure 1. The top layer is for process modelling where a project manager or a
software developer can create/edit models for either higher level abstract
processes (e.g project plan) or for daily tasks processes (e.g. implementation). The
work ow management layer is where the enactment of the processes takes place
while the cloud management layer handles the underlying cloud infrastructure
issues (e.g. QoS and multiple cloud providers/models).</p>
        <p>The process model contains a description of the activities involved in the
process and the data and control ow information which guides the process
enactment. Activities are performed by human actors and they are categorized
in two types: concrete and abstract. Concrete activities can be either local or
external. The local activities can be either a self-contained executable code or
interactive (to input decisions or data), while the external activities are web
services maintained by third parties. High level abstraction can be provided by
abstract activities which are non executable activities and by default will be
representing a sub-process. Activities are available in activities pool and can
be either created by third party or by the development team. In general, each
activity has zero or more input ports and zero or more output ports. The type
of input and output artifacts that a port can accept/generate is de ned at the
time of creation of the activity. This guarantees that activities can only be linked
to each other when their input/output artifacts are compliant. Activities are
executed independently provided that the input needed for them to execute is
available. This decoupling allows distributing the execution of the process across
several work ow engines (deployed potentially on di erent virtual machines on
the cloud). Activities have con gurable parameters to control how the activity
will be deployed and executed on the cloud.
3.2</p>
      </sec>
      <sec id="sec-4-2">
        <title>Process Modelling and De nition</title>
        <p>Software processes are dynamic and unpredictable. In addition, organizations
tailor process models such as waterfall or spiral di erently to meet their needs.
Hence, a exible modelling notation is required. This notation needs to be (a)
expressive (to express the process and its cloud execution settings), (b)
executable, and (c) understandable and easy to use. The notation needs to support
a combination of on the y creation/modi cation of activities for the purposes
of capturing the short term/everyday development and of the longer term
activities at the organizational level. Based on that we de ned the basic constructs for
the software development process model. The process will be represented using a
simple graphical notation that can be translated to XML which will then be used
to enact the process. The graphical notation can be useful for understanding the
process and training new team members. An XML schema has been de ned to
map the semantics of the graphical notation. These constructs are described in
table 1.</p>
        <p>Each of the activities can be con gured to specify how it will be executed;
parameters include (but not limited to): the speci ed tool support, the cloud
execution requirement (e.g. on public/private cloud), and accepted and
generated artifacts. For the sake of simplicity, the notation does not explicitly support
modelling of actors at this stage.</p>
        <p>Process Examples: Agile methods are widely adopted in industry as they
increase the throughput. SCRUM is one of the agile methods which de nes a
project management framework. This framework de nes a set of roles and a set of
meetings with di erent purposes, attendees, and frequencies. Figure 2 illustrates
the high level representation of a scrum sprint. This abstraction can be useful
from a management perspective. However, it does not specify any details of how
developers are going to implement the process. In reality, most software
developers use an IDE, an issue tracking tool (e.g. JIRA), a continuous integration
framework (e.g. JENKINS), and a version control system (e.g. GIT). These tools
are used on daily basis to write, test, store, and integrate code. A model of the
daily development process (representing the implementation sub-process) using
the notation de ned in this subsection is illustrated in Figure 3. The control ow
dependency between the "edit issue tracking" and "edit code" activities sets the
order of execution, however, since no data dependency is included here, it allows
us to perform any of the activities independently. The decision point allows to
create a loop based on the decision of the software developer whether to commit
his code or to change it or even to edit the issue tracking. Another example is
the parallel model checking process (Figure 4) where the model checking
activity can be deployed on multiple nodes to utilize the cloud elasticity in order to
improve the model checking performance.
3.3</p>
      </sec>
      <sec id="sec-4-3">
        <title>Work ow (Process) Enactment Service</title>
        <p>Once the process is de ned using the graphical notation described in the
previous subsection (which is translated to XML), it will be validated against the
process de nition schema to make sure the XML le is valid. Next the enactment
service should interpret the XML representation of the process and schedule the
execution on as many distributed work ow engines as required. The enactment
service consists of an enactment server and multiple work ow engines. The
service itself is provided as a web service which accepts requests from any type of
clients (desktop, web, mobile/tablet).The enactment service consists of:
{ Enactment Server: responsible for managing work ow engines and provide
smart scheduling algorithms to optimize cost and performance when the
work ow execution is distributed across multiple clouds (if necessary). It is
also responsible for monitoring the work ow execution and handling
exceptions.
{ Work ow Engines: responsible for loading the needed tools and artifacts
for executing an activity. It also reports back the execution progress to the
enactment server.</p>
        <p>
          { Enactment Service API: provides a standard access to the enactment service.
Using the cloud for executing work ows requires addressing certain issues, such
as: portability and QoS of the cloud resources. Authors in [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ] identi ed seven
needed quality attributes for a cloud infrastructure to provide tools as a service.
These attributes will be used as a guidance for the enactment service
implementation.
        </p>
      </sec>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>In this paper, we proposed a cloud-based software process modelling and
enactment environment which harnesses both of cloud and work ows bene ts. We
considered software process model as a main artifact in the software
development process. The process model can be (partially) automated and supported by
development tools which are integrated within the enactment environment. We
proposed the core of a simple modelling notation for modelling di erent parts
of the software process. Currently, a prototype of the enactment service is being
implemented to run on a single cloud initially which will be extended to run on
di erent clouds later. The future work includes: assessing the modelling notation
after applying it to more case studies, applying provenance to provide reasoning
about the software process, and investigating possible support for
interoperability between di erent tools.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Bandinelli</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Fuggetta</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ghezzi</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>Software process model evolution in the spade environment</article-title>
          .
          <source>Software Engineering</source>
          , IEEE Transactions on
          <volume>19</volume>
          (
          <issue>12</issue>
          ),
          <volume>1128</volume>
          {
          <fpage>1144</fpage>
          (
          <year>1993</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Barnes</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gray</surname>
          </string-name>
          , J.:
          <article-title>Cots, work ow, and software process management: an exploration of software engineering tool development</article-title>
          .
          <source>In: Software Engineering Conference</source>
          ,
          <year>2000</year>
          .
          <source>Proceedings. 2000 Australian</source>
          . pp.
          <volume>221</volume>
          {
          <issue>232</issue>
          (
          <year>2000</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Bendraou</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jezequel</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gervais</surname>
            ,
            <given-names>M.P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Blanc</surname>
            ,
            <given-names>X.:</given-names>
          </string-name>
          <article-title>A comparison of six uml-based languages for software process modeling</article-title>
          .
          <source>Software Engineering, IEEE Transactions on 36(5)</source>
          ,
          <volume>662</volume>
          {675 (Sept
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Bruneliere</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Cabot</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jouault</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Combining Model-Driven Engineering and Cloud Computing</article-title>
          . In: Modeling, Design, and
          <article-title>Analysis for the Service Cloud - MDA4ServiceCloud'10: Workshop's 4th edition (co-located with the 6th European Conference on Modelling Foundations and Applications - ECMFA</article-title>
          <year>2010</year>
          )
          <article-title>(</article-title>
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Bucur</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ureche</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zam r</surname>
          </string-name>
          , C.,
          <string-name>
            <surname>Candea</surname>
          </string-name>
          , G.:
          <article-title>Parallel symbolic execution for automated real-world software testing</article-title>
          .
          <source>In: Proceedings of the Sixth Conference on Computer Systems</source>
          . pp.
          <volume>183</volume>
          {
          <fpage>198</fpage>
          . EuroSys '11,
          <string-name>
            <surname>ACM</surname>
          </string-name>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Chan</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Leung</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>Software development as a work ow process</article-title>
          .
          <source>In: Software Engineering Conference</source>
          ,
          <year>1997</year>
          . Asia Paci c ... and International Computer Science Conference 1997.
          <source>APSEC '97 and ICSC '97. Proceedings</source>
          . pp.
          <volume>282</volume>
          {
          <issue>291</issue>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Chauhan</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Babar</surname>
            ,
            <given-names>M.A.</given-names>
          </string-name>
          :
          <article-title>Cloud infrastructure for providing tools as a service: Quality attributes and potential solutions</article-title>
          .
          <source>In: Proceedings of the WICSA/ECSA 2012</source>
          Companion Volume. pp.
          <volume>5</volume>
          {
          <fpage>13</fpage>
          . WICSA/ECSA '12 (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Combemale</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Crgut</surname>
            ,
            <given-names>X.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Caplain</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Coulette</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Towards a rigorous process modeling with spem</article-title>
          .
          <source>In: ICEIS (3)</source>
          . pp.
          <volume>530</volume>
          {
          <issue>533</issue>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Conradi</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jaccheri</surname>
            ,
            <given-names>M.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mazzi</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nguyen</surname>
            ,
            <given-names>M.N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Aarsten</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Design, use and implementation of spell, a language for software process modelling and evolution</article-title>
          .
          <source>In: Proceedings of the Second European Workshop on Software Process Technology</source>
          . pp.
          <volume>167</volume>
          {
          <fpage>177</fpage>
          . EWSPT '
          <volume>92</volume>
          (
          <year>1992</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Ellner</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Al-Hilank</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drexler</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jung</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kips</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Philippsen</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          <article-title>: espem a spem extension for enactable behavior modeling</article-title>
          .
          <source>In: Modelling Foundations and Applications, Lecture Notes in Computer Science</source>
          , vol.
          <volume>6138</volume>
          , pp.
          <volume>116</volume>
          {
          <issue>131</issue>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Ellner</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Al-Hilank</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Drexler</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jung</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Kips</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Philippsen</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A fumlbased distributed execution machine for enacting software process models</article-title>
          .
          <source>In: Modelling Foundations and Applications, Lecture Notes in Computer Science</source>
          , vol.
          <volume>6698</volume>
          , pp.
          <volume>19</volume>
          {
          <fpage>34</fpage>
          . Springer Berlin Heidelberg (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Feng</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mingshu</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhigang</surname>
            ,
            <given-names>W.:</given-names>
          </string-name>
          <article-title>Spem2xpdl: Towards spem model enactment</article-title>
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13. France, R.,
          <string-name>
            <surname>Rumpe</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          :
          <article-title>Model-driven development of complex software: A research roadmap</article-title>
          .
          <source>In: 2007 Future of Software Engineering</source>
          . pp.
          <volume>37</volume>
          {
          <fpage>54</fpage>
          . FOSE '07, IEEE Computer Society, Washington, DC, USA (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Hashmi</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Clerc</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Razavian</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Manteli</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tamburri</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lago</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Di Nitto</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Richardson</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Using the cloud to facilitate global software development challenges</article-title>
          .
          <source>In: Global Software Engineering Workshop (ICGSEW)</source>
          ,
          <year>2011</year>
          Sixth IEEE International Conference on. pp.
          <volume>70</volume>
          {
          <issue>77</issue>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Henderson-Sellers</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gonzalez-Perez</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          :
          <article-title>A comparison of four process metamodels and the creation of a new generic standard</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>47</volume>
          (
          <issue>1</issue>
          ),
          <volume>49</volume>
          {
          <fpage>65</fpage>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Kaiser</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Barghouti</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sokolsky</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Preliminary experience with process modeling in the marvel software development environment kernel</article-title>
          .
          <source>In: System Sciences</source>
          ,
          <year>1990</year>
          .,
          <source>Proceedings of the Twenty-Third Annual Hawaii International Conference on. vol. ii</source>
          , pp.
          <volume>131</volume>
          {140 vol.
          <volume>2</volume>
          (
          <year>1990</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Kelly</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tolvanen</surname>
            ,
            <given-names>J.P.</given-names>
          </string-name>
          :
          <article-title>Domain-speci c modeling: enabling full code generation</article-title>
          . John Wiley &amp; Sons (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Maciel</surname>
          </string-name>
          , R., da
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Magalhaes</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rosa</surname>
            ,
            <given-names>N.:</given-names>
          </string-name>
          <article-title>An integrated approach for model driven process modeling and enactment</article-title>
          .
          <source>In: Software Engineering</source>
          ,
          <year>2009</year>
          . SBES '09.
          <string-name>
            <given-names>XXIII</given-names>
            <surname>Brazilian</surname>
          </string-name>
          <article-title>Symposium on</article-title>
          . pp.
          <volume>104</volume>
          {
          <issue>114</issue>
          (Oct
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Mell</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Grance</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>The nist de nition of cloud computing</article-title>
          .
          <source>National Institute of Standards and Technology</source>
          <volume>53</volume>
          (
          <issue>6</issue>
          ),
          <volume>50</volume>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Oberweis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Work ow management in software engineering projects</article-title>
          .
          <source>In: Proceedings of the 2nd International Conference on Concurrent Engineering and Electronic Design Automation</source>
          . pp.
          <volume>55</volume>
          {
          <issue>60</issue>
          (
          <year>1994</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>Oriol</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ullah</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Yeti on the cloud</article-title>
          .
          <source>In: Software Testing, Veri cation, and Validation Workshops (ICSTW)</source>
          ,
          <year>2010</year>
          Third International Conference on. pp.
          <volume>434</volume>
          {
          <fpage>437</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>Pakhira</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Andras</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          :
          <article-title>Leveraging the Cloud for Large-Scale Software Testing A Case Study: Google Chrome on Amazon, chap</article-title>
          . Hershey, PA, USA, pp.
          <volume>252</volume>
          {
          <fpage>279</fpage>
          .
          <string-name>
            <given-names>IGI</given-names>
            <surname>Global</surname>
          </string-name>
          (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Portela</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Vasconcelos</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Silva</surname>
            ,
            <given-names>E.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gomes</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ronny</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lira</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Oliveira</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          <article-title>: xspider ml: Proposal of a software processes enactment language compliant with spem 2.0</article-title>
          .
          <source>Journal of Software Engineering and Applications</source>
          <volume>5</volume>
          (
          <issue>6</issue>
          ),
          <volume>375</volume>
          {
          <fpage>384</fpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24. Speci cation, W.M.C.:
          <article-title>Work ow Management Coalition, Terminology &amp; Glossary (Document No</article-title>
          .
          <source>WFMC-TC-1011)</source>
          .
          <article-title>Work ow Management Coalition Speci - cation (</article-title>
          <year>1999</year>
          ), http://www.wfmc.org/Download-document/WFMC-TC-1011
          <string-name>
            <surname>-Ver3-Terminology-</surname>
          </string-name>
          and
          <string-name>
            <surname>-</surname>
          </string-name>
          Glossary-English.html
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Voelter</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Groher</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Product line implementation using aspect-oriented and model-driven software development</article-title>
          .
          <source>In: Software Product Line Conference</source>
          ,
          <year>2007</year>
          .
          <source>SPLC</source>
          <year>2007</year>
          . 11th International. pp.
          <volume>233</volume>
          {
          <fpage>242</fpage>
          .
          <string-name>
            <surname>IEEE</surname>
          </string-name>
          (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>