<!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 Quantifying the Adaptability of Executable BPMN Processes</article-title>
      </title-group>
      <contrib-group>
        <aff id="aff0">
          <label>0</label>
          <institution>Distributed Systems Group, University of Bamberg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <fpage>34</fpage>
      <lpage>41</lpage>
      <abstract>
        <p>Process languages such as the Business Process Model and Notation 2.0 or the Web Services Business Process Execution Language promise the portability of executable artifacts among diferent runtime environments, given these artifacts conform to the respective specification. However, due to the natural imperfectness and difering priorities of runtime environments, actual portability of process code is often hard to achieve. A first step towards tackling this problem is the quantification of the actual degree of portability of process code using software metrics. The ISO/IEC 25010 software quality model defines portability as a main software quality characteristic with several sub-characteristics. One of these is adaptability, the degree to which a piece of software can be adapted in order to be executed in a diferent environment. In this paper, we propose a mechanism for quantifying the degree of adaptability of BPMN 2.0 processes and demonstrate its computation.</p>
      </abstract>
      <kwd-group>
        <kwd>Adaptability</kwd>
        <kwd>ISO/IEC 25010</kwd>
        <kwd>BPMN</kwd>
        <kwd>Metrics</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>A central part of process-aware applications is the runtime platform for executable
process models. To run on such a platform, processes need to be tailored to
it, thus often locking them into that particular platform. This lock-in efect is
undesirable. Application portability addresses this issue.</p>
      <p>
        A way to improve the portability of an application is by programming it
according to an open specification that promises the portability of the outcome.
This is the route taken for various process languages [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ], such as the Business
Process Model and Notation (BPMN) 2.0 [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] or the Web Services Business
Process Execution Language (BPEL) 2.0 [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Being open international standards,
these languages name portability as a central goal. The problem is that these
standards are just specifications and portability of code ultimately depends on
their implementations. These, however, rarely implement the complete
specification and naturally inhibit faults or mandate the usage of non-standard extensions
that limit the portability of a process. Huge diferences in standard conformance
have been demonstrated for BPEL runtimes [
        <xref ref-type="bibr" rid="ref4 ref5">4, 5</xref>
        ]. It can be expected that the
situation is the same in the case of BPMN, as indicated by recent studies showing
compliance issues for its serialization format [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. This implies that processes
implemented in these languages, despite being conformant to an open international
standard, cannot be considered as portable per se.
      </p>
      <p>
        A first step towards tackling this problem is the ability to quantify it: to
be able to compute a degree of portability, or adaptability, for a given process
implemented in a particular language using software metrics. This could yield
several benefits, as for instance:
1. When integrated into a metrics suite, developers could continuously inspect
the portability or adaptability of the process during development. This would
allow them to get direct feedback for changes they introduce and make them
aware of changes that limit portability or adaptability [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ]. Raising their
awareness has the potential to result in more portable code.
2. When having to port a process, metrics can be used as a basis for decision
making. A high degree of portability or adaptability translates to a high
likelihood that the process can actually be ported or adapted. In contrast
to this, a low degree can support the decision to rewrite the process from
scratch for the new platform.
3. When selecting one among a set of alternative processes for execution, metrics
can serve as a means for quality comparison and ranking the alternatives.
      </p>
      <p>
        As a basis for such a quantification, the ISO/IEC 25010 software quality
model [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ] can be of help. This new revision of the widely-accepted ISO/IEC 9126
quality model lists portability as a main quality attribute of software, consisting of
several sub-attributes: Adaptability, installability, and replaceability. Each of these
characteristics should be measurable to compute the degree of portability and it
is our goal to build a measurement framework that achieves this for process-aware
and service-oriented systems. Since we addressed direct code portability [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
and installability [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ] in previous work, we now try to tackle the quantification
of adaptability for this type of software. In this paper, we try to quantify the
adaptability of BPMN processes using structural code metrics. To meet this
end, we propose a mechanism for computing such metrics and demonstrate its
application in a use case. We are trying to compute a quantitative representation
of the likelihood that the code of a process can be adapted to a diferent form
that results in the same runtime behavior. We are not trying to provide a metric
that states if a process can be modified to run on a particular engine.
      </p>
      <p>
        We have to emphasize that the purpose of this paper is the proposal and
description of the mechanism and metrics. Due to this scope and the page limit,
we defer the important aspect of the validation of the metrics, for instance in
terms of measurement theory [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] or construct validity [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ], to future work.
      </p>
      <p>The remainder of the paper is structured as follows: In the next section, we
discuss related notions of adaptability and adaptability metrics. In section 3 we
introduce our approach and explain our proposed metrics. Thereafter, we evaluate
the approach by computing the adaptability degree for a use case process. Finally,
we draw a conclusion and point to future work.</p>
    </sec>
    <sec id="sec-2">
      <title>Notions of Adaptability and Related Work</title>
      <p>
        The ISO/IEC quality model defines adaptability as the “ degree to which a product
or system can efectively and eficiently be adapted for diferent or evolving
hardware, software or other operational or usage environments” [7, p. 15]. Here,
we focus on adaptions to the software environment only. The scenario we have
in mind is a required change of a set of processes to a diferent runtime engine.
If the processes cannot be ported directly, they have to be adapted to preserve
their executability. This is diferent to other views of adaptability, as for instance
in autonomous systems, where adaptability refers to the ability of the system
to automatically cope with changing situations, such as an increased load, at
runtime [
        <xref ref-type="bibr" rid="ref17">17</xref>
        ] or adapter synthesis, where adaptability refers to whether an adapter
for a pair of services can be created [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ].
      </p>
      <p>
        In this paper, we try to quantify adaptability in an abstract,
runtimeindependent fashion. Hence, we base the following metrics on the BPMN
specification [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ] only. Nevertheless, it might be worthwhile to consider actual process
runtimes in the computation of adaptability metrics, as for instance done in [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ],
since the adaptability of a particular process to a particular runtime ultimately
depends on the runtime to which it should be ported. However, our aim is to
allow for the measurement of adaptability already at a point in time, where no
new runtime has been selected yet. Still, we plan to evaluate the usage of data on
language support in runtimes to see if it can enhance the metrics proposed here.
      </p>
      <p>
        The metrics for adaptability of the new ISO/IEC quality model [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] are not
yet publicly available, but will likely be similar to that of previous versions, e.g.
[
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. These metrics are based on counting the number of program functions that
seem to be adaptable to diferent contexts. This number is contrasted with the
number of functions that are required to be adaptated in the current situation,
which is typically all program functions that need to be available in the new
environment after porting. By relating these two numbers, one can obtain the
percentage of program functions that can be adapted and thus provide a basic
notion of adaptability for the complete program. However, such a measure is very
coarse and there is no description of how to actually determine if a function is
adaptable or not. Here, we try to provide a mechanism to determine if a program
element is adaptable. Other studies that evaluate adaptability [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ] rely on surveys
of stakeholders. Metrics based on human judgment can have limitations in terms
of reproducibility and reliability, which is why we aim to provide structural code
metrics that can be computed automatically and are reproducible instead.
      </p>
      <p>
        Such structural metrics do primarily exist for the architectural layer of a
software product and not the concrete source code [
        <xref ref-type="bibr" rid="ref17 ref18">17, 18</xref>
        ]. There, adaptability
is first quantified in a binary or weighted fashion for an atomic element of the
respective system, such as a component in the software architecture. These
element adaptability scores are then subsequently aggregated using diferent
adaptability indices at diferent layers of abstraction to arrive at a global value
of adaptability for the complete software architecture. This way of computing
adaptability should also work when looking at code artifacts and not architectural
elements of a program. Here, we focus on executable service-based processes and
try to reproduce the adaptability computation in the above sense. Thus, our idea
is to quantify adaptability at the level of an atomic process element, such as an
activity, and to aggregate this to a global degree for the complete process.
3
      </p>
    </sec>
    <sec id="sec-3">
      <title>Measuring Structural Adaptability</title>
      <p>In the terms of BPMN, an atomic process element is an activity, task, or gateway.
Using the above approach, we need to assign an adaptability score to each of those
elements. Our idea is to count the number of alternative representations for the
functionality provided by the element that result in the same runtime behavior.
In BPMN, there are typically multiple alternatives for each process element that
can result in identical process behavior at runtime. The more alternatives exist
for a given process element, the easier it is to replace this element with such an
alternative, and hence the more adaptable the resulting code actually is.</p>
      <p>A simple example for multiple alternative implementations of the same
functionality in BPMN is repetitive execution of a task through a Loop marker for the
task. Any of the following language constructs can be used to define repetitive
execution of a task and hence can be used as an alternative to a Loop marker:
1. A combination of an Exclusive Gateway and Sequence Flows
2. Enclosing the task in a Loop Sub-Process
3. Enclosing the task in an Ad-Hoc Sub-Process
4. Enclosing the task in an Event Sub-Process
It is likely that a BPMN engine will only support a subset of these options. For
instance the Activiti engine1, currently does not support normal Loop markers
(standardLoopCharacteristics). It does support the combination of Exclusive
Gateways and Sequence Flows, as well as Event Sub-Processes, but no Loop or
Ad-Hoc Sub-Processes. Given a process with a task that uses a Loop marker needs
to be ported to the Activiti engine, the code needs be adapted to one of the
versions Activiti supports. To summarize the above discussion, the adaptability
score of a task with a Loop marker is equal to four.
3.1</p>
      <sec id="sec-3-1">
        <title>Adaptability of Atomic Process Elements</title>
        <p>We define the adaptability score for atomic process elements as:</p>
        <p>AS(e) = | {alte1, . . . , alten} |
(1)
The adaptability score AS of element e is equivalent to the cardinality of the set
of alternatives {alte1, . . . , alten} for the element that are available in the language.
For the approach to work, such a score must be provided for every relevant
atomic element of the BPMN specification. At the moment, we are fixing the
appropriate score for every element, being activities (Tasks, Sub-Processes, Call
Activities), Data Items, Events and Gateways.
1 For more information, see the Activiti user guide: http://www.activiti.org/
userguide/index.html.</p>
        <p>
          The decision on what counts as a relevant atomic element is a design choice of
the approach. It is reasonable to exclude a certain set of language elements from
the computation. On the one hand, these are elements that are very basic and
also very common and, as a consequence, are supported by every implementation
of the standard. The inclusion of these elements in the adaptability computation
would only have a distorting efect. On the other hand, certain elements are
simply irrelevant to process execution and their implementation in a runtime
is unimportant. Lanes fall into the latter category, as they have no real impact
on the executability of a process, but are mainly relevant to visualization. The
ifrst category contains Sequence Flows and Exclusive Gateways. Sequence Flows
are very basic language elements and it is hard to build processes in BPMN
without using them. Ad-Hoc Processes in combination with Data Inputs and Data
Outputs can, to a limited degree, replace Sequence Flows, but fail for instance
when parallelism is involved. As they are typically very frequent, but cannot
really be adapted anyway, we exclude them from the computation. Exclusive
Gateways can be adapted to most other forms of gateways, such as an Inclusive
Gateway where only one expression will evaluate to true, a Complex Gateway,
or an Event-Based Exclusive Gateway. Nevertheless, they are the most basic
mechanism for controlling the program flow and normally available in every
implementation of the specification. Including them in the computation would
introduce noise into the metric value. To decide if an element belongs to the
basic subset, it could be helpful to look at its typical frequency in process models.
[
          <xref ref-type="bibr" rid="ref14">14</xref>
          ] disusses this aspect for an older revision of BPMN and an updated study
focused on executable processes might be worthwhile.
        </p>
        <p>Finally, it is important to note that this approach rewards the availability
of multiple equivalent constructs in a language. From a usability point of view,
this is often considered as a drawback of the language, because its users can
be confused on what syntax is best to be used. However, from the viewpoint of
adaptability, it is positive, since multiple alternatives increase the likelihood of
having at least one of them available in a given runtime.
3.2</p>
      </sec>
      <sec id="sec-3-2">
        <title>Aggregation of Adaptability Scores</title>
        <p>
          Based on atomic adaptability scores, we now need a mechanism for aggregating
these scores to a global adaptability degree for the complete process. This is
necessary to allow for the comparison of diferent processes in terms of their
adaptability. Moreover, the aggregated degree should be normalized with respect
to the size of the process, to enable the comparison of processes of diferent size.
A straightforward way of aggregating adaptability scores is the following:
1. Normalize the score for every element.
2. Similar to [
          <xref ref-type="bibr" rid="ref18">18</xref>
          ], compute the mean score of all elements in the process.
        </p>
        <p>This leads to the question of how to normalize scores on an atomic level. We
propose to divide the score by a reference value. This reference value can be
identified by the maximum adaptability score achieved by any of the elements
in the language. That way, the most adaptable language element will have a
normalized score of one, whereas other elements will have a value between zero
and one. This results in the following equation:</p>
        <p>AD(p) = AD(e1, . . . , en) = (AS(e1)/R), . . . , (AS(en)/R)
(2)
The adaptability degree AD of process p, which consists of the elements e1, . . . , en,
is equal to the arithmetic mean of the adaptability scores AS for every element e
divided by the reference value R.</p>
        <p>For the choice of the reference value, which we currently determined to be six,
diferent schemes are possible. The scheme we use here has several advantages
with respect to the computation:
1. The resulting metric value always ranges in the interval of [0, . . . , 1] and thus
resembles a percentage value. This scale is easy to understand and interpret,
which is critical for the adoption of the metric.
2. The reference value is identical for processes of the same language. Using a
reference value that is specific to a concrete process might output a more
meaningful adaptability degree for that process, but it would no longer be
directly comparable with diferent processes. That way, the metric would lose
one of its primary purposes.
4</p>
      </sec>
    </sec>
    <sec id="sec-4">
      <title>Use Case</title>
      <p>In the following, we use an example process2, depicted in Figure 1, to demonstrate
the computation of the adaptability degree. The process consists of a Lane, two
User Tasks and two Service Tasks, one of which has an Interrupting Error
Boundary Event, two Exclusive Gateways, several Sequence Flows, as well as
two End Events and a Start Event. Table 1 shows the adaptability scores we
2 The process is executable on Camunda BPM 7.0.0. The code and instructions on
how to execute it are available at https://github.com/uniba-dsg/zeus2014.
determined for the respective elements of the travel grant application process.
As discussed in section 3.1, Lanes, Sequence Flows, and Exclusive Gateways are
not considered in the computation. The BPMN specification lists seven diferent
triggers for process start, and hence seven diferent types of Start Events [16, pp.
240/241] do exist. All except for the Timer Event are a suitable alternative for the
None Start Event used in the process, resulting in an adaptability score of five. For
End Events, nine diferent types do exist [16, pp. 247–249], five of which, including
the None End Event, can be used to express orderly termination, resulting in four
alternatives for it. Furthermore, there are seven diferent types of Tasks in BPMN
[16, pp. 158–165]. Again, the idea is that Tasks which are not supported by an
engine can be adapted to a diferent type of Task, for instance a Service Task could
be adapted to a Script Task. All tasks actively perform an action, except for the
Receive Task which is waiting for an action, so there are five alternatives for the
tasks used in the process. If the Error Boundary Event is not supported, it might
be possible to use a diferent interrupting boundary event which also changes
the normal flow into an exception flow. Here, a Message, Escalation, Conditional,
Signal, Multiple, or Multiple Parallel Interrupting Boundary Event could achieve
the same result [16, pp. 254–257]. The reference value R is six, which results in the
adaptability degree values depicted in Table 1. The resulting adaptability degree
for the use case is computed in the following: AD(p) = ((1 ∗ AD(StartEvent)) +
(4 ∗ AD(T ask)) + (2 ∗ AD(EndEvent)) + (1 ∗ AD(ErrorEvent)))/8 = ((1 ∗ 0.83) +
(4 ∗ 0.83) + (2 ∗ 0.67) + (1 ∗ 1))/8 = 0.81.
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion</title>
      <p>In this paper, we proposed a mechanism for computing a degree of structural
adaptability for BPMN processes that aims to quantify how easily a process can
be adapted to a diferent form with the same runtime behavior. Furthermore, we
demonstrated its computation in a use case. Such a degree can be helpful for
quality assessment during development or decision support during migration.</p>
      <p>Several aspects of the computation are still open: First, adaptability scores
need to be fixed for every relevant element and they should be confirmed in peer
review. Moreover, a validation of the proposed adaptability metrics is needed. On
the one hand, validation should be considered from a theoretical point of view,
for instance by clarifying the measurement-theoretic properties of the metrics or
by conrfiming construct validity. On the other hand, the practical applicability
of the metrics should be confirmed, for instance in an experiment with
realworld processes. This could be used to evaluate if the adaptability degree can
meaningfully discriminate between processes of diferent quality.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Aldris</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Nugroho</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lago</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Visser</surname>
          </string-name>
          , J.:
          <article-title>Measuring the Degree of Service Orientation in Proprietary SOA Systems</article-title>
          .
          <source>In: 7th IEEE International Symposium on Service-Oriented System Engineering</source>
          . San Francisco Bay, USA (March
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Briand</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Morasca</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Basily</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          :
          <article-title>Property-based software engineering measurement</article-title>
          .
          <source>IEEE Transactions on Software Engineering</source>
          <volume>22</volume>
          (
          <issue>1</issue>
          ),
          <fpage>68</fpage>
          -
          <lpage>86</lpage>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Geiger</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wirtz</surname>
          </string-name>
          , G.:
          <article-title>BPMN 2.0 Serialization - Standard Compliance Issues and Evaluation of Modeling Tools</article-title>
          .
          <source>In: 5th Int. Workshop on Enterprise Modelling and Information Systems Architectures. St. Gallen</source>
          ,
          <string-name>
            <surname>Switzerland</surname>
          </string-name>
          (
          <year>September 2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Harrer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lenhard</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wirtz</surname>
          </string-name>
          , G.:
          <article-title>BPEL Conformance in Open Source Engines</article-title>
          .
          <source>In: IEEE SOCA. Taipei, Taiwan (December</source>
          <volume>17</volume>
          -19
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Harrer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lenhard</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wirtz</surname>
          </string-name>
          , G.:
          <article-title>Open Source versus Proprietary Software in Service-Orientation: The Case of BPEL Engines</article-title>
          .
          <source>In: 11th International Conference on Service Oriented Computing (ICSOC)</source>
          . pp.
          <fpage>99</fpage>
          -
          <lpage>113</lpage>
          . Berlin, Germany (
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6. ISO/IEC: Software engineering - Product quality
          <article-title>- Part 3: Internal metrics (</article-title>
          <year>2003</year>
          ),
          <fpage>9126</fpage>
          -
          <lpage>3</lpage>
          :
          <fpage>2003</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7. ISO/IEC:
          <article-title>Systems and software engineering - System and software Quality Requirements and Evaluation (SQuaRE) - System and software quality models (</article-title>
          <year>2011</year>
          ),
          <volume>25010</volume>
          :
          <fpage>2011</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8. ISO/IEC:
          <article-title>Systems and software engineering - Systems and software Quality Requirements and Evaluation (SQuaRE) - Measurement of system and software product quality (</article-title>
          <year>2013</year>
          ),
          <fpage>25023</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Kaner</surname>
            ,
            <given-names>C.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bond</surname>
            ,
            <given-names>W.</given-names>
          </string-name>
          :
          <article-title>Software Engineering Metrics: What Do They Measure and How Do We Know?</article-title>
          <source>In: 10th International Software Metrics Symposium</source>
          . Chicago, USA (
          <year>September 2004</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Khalaf</surname>
          </string-name>
          , R., Keller, A.,
          <string-name>
            <surname>Leymann</surname>
            ,
            <given-names>F.</given-names>
          </string-name>
          :
          <article-title>Business processes for Web Services: Principles and applications</article-title>
          .
          <source>IBM Systems Journal</source>
          <volume>45</volume>
          (
          <issue>2</issue>
          ),
          <fpage>425</fpage>
          -
          <lpage>446</lpage>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Lenhard</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harrer</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wirtz</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Measuring the Installability of Service Orchestrations Using the SQuaRE Method</article-title>
          . In: IEEE SOCA. IEEE, Kauai, Hawaii, USA (December 16-18
          <year>2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Lenhard</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wirtz</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <article-title>Measuring the Portability of Service-Oriented Processes</article-title>
          .
          <source>In: 17th IEEE EDOC</source>
          . Vancouver, Canada (
          <year>September 2013</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Letouzey</surname>
            ,
            <given-names>J.L.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ilkiewicz</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Managing Technical Debt with the SQUALE Method</article-title>
          .
          <source>IEEE Software 29(6)</source>
          ,
          <fpage>44</fpage>
          -
          <lpage>51</lpage>
          (
          <year>2012</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14. zur Muehlen,
          <string-name>
            <given-names>M.</given-names>
            ,
            <surname>Recker</surname>
          </string-name>
          , J.:
          <article-title>How Much Language is Enough? Theoretical and Practical Use of the Business Process Modeling Notation</article-title>
          .
          <source>In: Advanced Information Systems</source>
          Engineering (CAiSE). Montpellier, France (
          <year>June 2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>OASIS: Web Services Business Process Execution Language</surname>
          </string-name>
          (
          <year>April 2007</year>
          ),
          <year>v2</year>
          .
          <fpage>0</fpage>
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16. OMG:
          <article-title>Business Process Model and Notation (BPMN) Version 2</article-title>
          .0 (
          <year>January 2011</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Perez-Palacin</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mirandola</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Merseguer</surname>
          </string-name>
          , J.:
          <article-title>On the Relationships between QoS and Software Adaptability at the Architectural Level</article-title>
          .
          <source>Journal of Systems and Software</source>
          <volume>87</volume>
          (
          <issue>1</issue>
          ),
          <fpage>1</fpage>
          -
          <lpage>17</lpage>
          (
          <year>2014</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Subramanian</surname>
            ,
            <given-names>N.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Chung</surname>
            ,
            <given-names>L.</given-names>
          </string-name>
          :
          <article-title>Metrics for Software Adaptability</article-title>
          .
          <source>In: Proc. Software Quality Management. Loughborough</source>
          , UK (April
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Zhou</surname>
            ,
            <given-names>Z.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Bhiri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhuge</surname>
            ,
            <given-names>H.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hauswirth</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <source>Assessing Service Protocol Adaptability Based on Protocol Reduction and Graph Search. Concurrency and Computation: Practice and Experience</source>
          <volume>23</volume>
          (
          <issue>9</issue>
          ),
          <fpage>880</fpage>
          -
          <lpage>904</lpage>
          (
          <year>2011</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>