<!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>Con guring Release Plans</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>A. Felfernig</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>J. Spocklberger</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>M. Atas</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>J. Tiihonen</string-name>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>and M. Raatikainen</institution>
        </aff>
      </contrib-group>
      <abstract>
        <p>Release planning takes place (1) on the strategic level where the overall goal is to prioritize (high-level) requirements and (2) on the operational level where the major focus is to de ne more detailed implementation plans, i.e., the assignment of requirements to speci c releases and often the assignment of stakeholders to requirements. In this paper, we show how release planning can be represented as a con guration task and how re-con guration tasks can be supported. Thus we advance the state-of-the-art in software release planning by introducing technologies that support the handling of inconsistencies in already existing plans.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>
        Higher exibility of software development and better
satised customer requirements can be achieved by developing
and delivering software in an incremental fashion [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. Release
planning is needed to support such development approaches
in a structured fashion. Release planning can be regarded
as a company-wide optimization problem where stakeholders
want to maximize the utilization of often limited resources
[
        <xref ref-type="bibr" rid="ref10 ref11 ref8">8, 10, 11</xref>
        ]. Planning often takes place on two levels [
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. First,
on a strategic level where the major task is to prioritize
requirements with regard to criteria such as business relevance
(pro t), feasibility (risk)3, and related e orts [
        <xref ref-type="bibr" rid="ref11 ref9">9, 11</xref>
        ]. On an
operational level, a detailed planning takes place where
requirements are assigned to releases and often also to
stakeholders in charge of their implementation. The consequences
of poor release planning are low software quality, lost
business oportunities, more replanning e orts, and also project
cancellation [
        <xref ref-type="bibr" rid="ref10">10</xref>
        ].
      </p>
      <p>
        Figure 1 depicts an overview of a release planning process.
First, requirements are prioritized on the basis of a utility
analysis [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. Second, detailed planning takes place where
requirements are assigned to releases and a release planner is in
charge of assuring the consistency of the plan with regard to a
set of additional constraints related to dependencies between
requirements and further constraints imposed by stakeholders
(see the example release constraints depicted in Table 5).
      </p>
      <p>
        The major contributions of this paper are the following.
First, we show how to represent a release planning problem
as a con guration task. In this context, we also show how
recon guration can be supported on the basis of con guration
1 Graz University of Technology, Graz, Austria email:
ffelfernig,spoecklberger,samer,stettinger,atasg@ist.tugraz.at
2 University of Helsinki, Finland email:
fjuha.tiihonen,mikko.raatikaineng@helsinki.
3 We interpret pro t as the value of a requirement for the user [
        <xref ref-type="bibr" rid="ref7">7</xref>
        ].
and diagnosis techniques. Second, we report the results of a
performance analysis that has been conducted on the basis of
di erent types of release planning (con guration) problems.
      </p>
      <p>The remainder of this paper is organized as follows. In
Section 2, we sketch how utility analysis can be performed on the
basis of a given set of requirements. Thereafter, in Section 3
we show how release planning can be represented as a
conguration task and how re-con guration can be supported in
this context. In Section 4, we report the results of an
evaluation of the proposed approach. The paper is concluded with
a discussion of issues for future work.
2</p>
    </sec>
    <sec id="sec-2">
      <title>Utility-based Prioritization of</title>
    </sec>
    <sec id="sec-3">
      <title>Requirements</title>
      <p>
        The prioritization of requirements can be performed on the
basis of a utility analysis, i.e., the evaluation and ranking of
requirements with regard to a prede ned set of interest
dimensions such as pro t, e ort, and risk [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ]. In the line of the
two basic recommendation approaches in group recommender
systems [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ], prioritization can be performed in two ways (see
Figure 1): (1) aggregated utilities based approaches collect
stakeholder-individual requirements evaluations with regard
to a set of interest dimensions, aggregate those evaluations,
and calculate requirement utilities thereof, (2) aggregated
prioritizations based approaches aggregate stakeholder-speci c
prioritizations into the nal prioritization. In the following,
we explain both approaches in more detail. The second
variant assumes that each stakeholder provides a prioritization
(directly or in terms of utility evaluations) wheres the rst
approach also allows prioritization in situations where not all
stakeholders evaluated each of the given requirements.
      </p>
      <p>Prioritization with Aggregated Utilities. In this context,
multi-attribute utility theory can be applied to determine a
ranking (prioritization) of a given set of requirements (see
Table 1). First, each stakeholder si evaluates each individual
requirement with regard to interest dimensions. In our example,
we use the interest dimensions pro t, e ort, and risk, which
are typical interest dimensions in release planning. Interest
dimensions can have an assigned weight, for example, it is
more important to avoid risky release plans than maximizing
the potential pro t.</p>
      <p>In such a setting, the distribution of weights could be
similar to the one de ned in Table 2. Second, on the basis of a
given set of evaluations and a speci cation of the importance
of individual interest dimensions, requirements can be ranked
according to Formula 1 where imp(d) denotes the importance
of interest dimension d and contrib(r; d) denotes the
contri</p>
      <p>When applying Formula 1 to the entries in Table 1 and
Table 2, we are able to derive a ranking of the requirements
R = fr1; r2; ::; rng as depicted in Table 3.</p>
      <p>In this paper, we directly evaluate requirements with regard
to interest dimensions (on a rating scale [1..10]). Especially
for the dimensions e ort and pro t, alternative evaluation
scales can be de ned which are then mapped to a utility scale
(e.g., [1..10]). For example, instead of evaluating e ort directly
on a scale [1..10], e ort could be speci ed in man-months
which are then translated into a corresponding utility scale.
In the context of our examples, high values for pro t denote a
high associated pro t, whereas high values for e ort and risk
denote low associated e ort and risk estimates.</p>
      <p>Prioritization with Aggregated Prioritizations. First,
multiattribute utility theory can be applied to determine
stakeholder-individual requirement utilities (priorities) (see
Table 4). Each stakeholder si evaluates individual
requirements with regard to the pre-de ned interest dimensions.
Alternatively, stakeholders can specify prioritizizations
"directly", i.e., without a utility-based pre-evaluation. Second,
requirement utilities can be determined on the basis of
Formula 2 where s represents a stakeholder, d 2 Dim represents
an interest dimension, and r is a requirement. We assume
a globally de ned speci c weight for the individual interest
dimensions (see Table 2).</p>
      <p>utility(r; s) =
d2Dimimp(d)
contrib(r; d; s)
(2)</p>
      <p>Stakeholder-individual prioritizations (see Table 4) have to
be aggregated. One approach to support this aggregation is to
apply basic social choice based preference aggregation
functions such as Borda Count where the winner is the
requirement with the best total ranking score where each requirement
rank is associated with a score 0 .. #requirements-1 (see Table
6).4</p>
      <p>
        Testing Prioritizations. A prioritization derived on the basis
of a utility analysis can be tested for plausibility. For
example, stakeholders can specify speci c prioritization constraints
that have to hold in the nal prioritization. Such tests could
4 For an overview of di erent types of preference aggregation
functions we refer to [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ].
be applied, for example, when di erent departments are
cooperating in a prioritization process and speci c constraints
have been pre-de ned by upper-level management. Such
constraints can be regarded as test cases for the prioritization
process (see De nition 1 ).
      </p>
      <p>De nition 1: Consistent Prioritization : given a
prioritization P = fp1 : r1 = v1; p2 : r2 = v2; ::; pn : rn = vng for
requirements REQ = fr1; r2; ::; rng (vi 2 domain(ri)) and a
set of test cases T = ft1; t2; ::; tkg. Then P is a consistent
prioritization if P [ ti is consistent 8ti 2 T .</p>
      <p>Consistent prioritizations determined on the basis of a
utility analysis can be regarded as input for release planning. In
the following, we show how prioritizations can be exploited in
the context of release planning and how release planning can
be represented as a constraint-based con guration task.
3</p>
    </sec>
    <sec id="sec-4">
      <title>Constraint-based Release Con guration</title>
      <p>
        Constraints ri = vi (vi 2 domain(ri)) representing
individual requirement prioritizations can be used as one input of a
release con guration problem [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ] by generating release
assignment constraints following the rule 8fpi : ri = vi; pj : rj =
vj g 2 P (i 6= j) : vi &gt; vj ! relrj relri. Since r1 &gt; r2
holds in our working example, we can derive the constraint
pc : relr2 relr1 as an input for our release con guration
task (see De nition 2). We denote the set S pci derived from
a prioritization P as P C.
      </p>
      <p>De nition 2: Constraint-based Release Con guration Task :
a constraint-based release con guration task can be de ned
as a tuple (R; P C; RC) where R = frelr1; relr2; ::; relrng is
a set of variables representing potential assignments of
requirements to releases (domain(relri)=[0..n] { 0 refers to
requirements not assigned to a release), P C = fpc1; pc2; ::; pcmg
represents a set of prioritization constraints 5, and RC =
frc1; rc2; ::; rclg is a set of release constraints.</p>
      <p>Examples of typically used release constraints are given in
Table 5. Further release constraints that will not be taken into
account in our working example are release capacity in hours,
total capacity in hours, release costs, total costs, assignment
of stakeholders to requirements, average risk level per release,
minimum market value per release, and further optimization
5 Hard prioritization constraints are often too strict in practice.</p>
      <p>
        They can also be interpreted as preferences, i.e., solvers should
take these into account as much as possible.
s1
s2
s3
average(AV G)
pro t
3
5
6
4.67
risk
1
3
4
2.67
criteria such as maximum pro t, maximum customer value,
and minimum risk. For simplicity, Table 5 contains only
binary constraints, however, these are generalizable to
higherorder constraints [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ], for example, coupling(relra; relrb; relrc)
would be translated into relra = relrb ^ relrb = relrc.
      </p>
      <p>An example of a constraint-based release con guration task
is the following. This task includes the three requirements
from Section 2. Furthermore, three releases are available.</p>
      <p>R = frelr1; relr2; relr3g
domain(relri) = [1::3]
P C = fpc1 : relr2 relr1; pc2 : relr2
relr3g
RC = frc1 : relr1 = relr2 ; rc2 : relr1 = 1g
relr3; pc3 : relr1</p>
      <p>De nition 3: Constraint-based Release Con guration :
A constraint-based release con guration (solution) for a
constraint-based release con guration task can be represented
by a complete assignment RP = frelra = va; relrb =
vb; ::; relrk = vkg where vk is the release number of
requirement rk such that RP [ P C [ RC is consistent.</p>
      <p>In the context of our working example, an example of
a constraint-based release con guration is RP = frelr1 =
1; relr2 = 1; relr3 = 2g.</p>
      <p>
        As it is often the case, prioritization as well as release
planning is an iterative process [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ]. As a consequence,
prioritizations P C of requirements change (resulting in PC') as well as
release constraints, i.e., RC is transformed into RC0. In such
contexts, situations can occur where RP [P C0 [RC0 becomes
inconsistent and we are in the need of a recon guration of
RP (resulting in RP 0). Consequently, a release recon
guration task has to be solved (see De nition 4).
      </p>
      <p>De nition 4: Release Recon guration Task : A release
recon guration task can be de ned by a tuple (RP; P C0; RC0)
where P C0 represents a set of adapted prioritization
constraints, RC0 a set of adapted release constraints, and RP [
P C0 [ RC0 is assumed to be inconsistent. The underlying
task is to identify a minimal set of constraints RP
such that RP [ P C0 [ RC0 is consistent. If parts of
RP have already been implemented, we can assume RP =
RPcompleted [ RPopen and the task is to identify a diagnosis
with RPopen [ RPcompleted [ P C0 [ RC0 is consistent.</p>
      <p>A recon guration for a given release recon guration task
can be de ned as follows (see De nition 5).</p>
      <p>De nition 5: Release Recon guration: A release recon
guration (solution) for a release recon guration task can be
represented by an assignment RECON F = frelra = va0; relrb =
vb0; ::; relrk = vk0g where relri = vi0 2 RECON F ! relri =
vi 2 and vi 6= vi0.</p>
      <p>In this context, represents a diagnosis, i.e., a minimal
set of constraints that, if deleted from RP (RPopen), help to
restore consistency, i.e., RP [ P C0 [ RC0 is consistent.</p>
      <p>
        The set can be determined on the basis of a model-based
diagnosis algorithm such as FastDiag [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ] which returns a
minimal set of constraints that have to be deleted in order
to restore consistency. In order to assure the existence of a
diagnosis , we have to assume the consistency of P C0 [ RC0.
      </p>
      <p>One could also be interested in identifying minimal sets of
changes in given prioritizations P C such that P C [RC
is consistent. Table 7 provides an overview of example
(re)con guration services that can be provided in release con
guration scenarios. (1) proposed prioritizations (P C) have to be
checked with regard to their consistency with a de ned set of
release constraints (RC). (2) Assuming the consistency of RC
s1
s2
s3
pro t
3
5
6
utility (prio)
68 (1)
46 (1)
62 (1)
pro t
1
3
4
utility (prio)
13 (3)
33 (3)
31 (2)
and the inconsistency of P C [ RC, a minimal set of elements
in P C has to be identi ed such that P C [RC is consistent.
(3) Assuming the consistency of P C0 [ RC0, a minimal set of
elements in RP has to be identi ed (i.e., a potential change
of the current release plan) such that RP [ P C0 [ RC0
is consistent. (4) Given a diagnosis for RP (with regard to
P C0 [ RC0), a constraint solver can determine a solution for
RP [ P C0 [ RC0. (5) If there exists a test case t 2 T with
inconsistent(t [ P C), a diagnosis represents a minimal set
of elements in P C such that P C [ t is consistent 8t 2 T .
Beside performance analyses, there are di erent alternative
ways to evaluate the release planning related services
mentioned in Table 7.</p>
      <p>Release plans as outcome of a con guration process can be
evaluated with regard to di erent interest dimensions such as
pro t, risk, and e ort. The corresponding utility function is
the following (see Formula 3).</p>
      <p>utility(RP ) =
relr2RP d2Dim
contrib(r;d) imp(d)</p>
      <p>relr
jrelr 2 RP j
(3)</p>
      <p>An evaluation of the utility of release plans generated with
the Choco constraint solver6 is depicted in Table 8. A
corresponding performance evaluation is depicted in Table 9. For
each combination of jRCj #releases, we randomly
generated jRCj release constraints 10 times. In this context, we did
not optimize solution search on the basis of search heuristics
{ this is regarded as a major task of our future work. In Table
8, we can observe a decreasing utility of release plans along
with an increasing size of RC. Table 9 shows increasing
runtimes with an increasing size of RC and an increasing number
of releases.
6 choco-solver.org</p>
      <p>Recon gurations of release plans can be evaluated with
regard to the similarity between the new con guration and the
old con guration where a(S) denotes the set of variable
assignments contained in solution S.</p>
      <p>similarity(Sold; Snew) =
a(Sold) \ a(snew)
a(Sold) [ a(snew)
(4)</p>
      <p>An evaluation of the similarity between recon gurations
and original release plans is depicted in Table 10. For each
combination of jRCj #releases, we randomly generated
jRCj release constraints and a corresponding release plan 10
times, randomly changed 10% of the (original) release
constraints and determined a recon guration (for the given
release plan). We can observe a decreasing similarity with a
corresponding increasing number of release constraints.</p>
      <p>Diagnoses can be evaluated with regard to their degree of
conservativism (see Formula 5), i.e., the number of changes
needed in a constraint set C compared to the overall number
of elements in C. Furthermore, diagnoses can be evaluated
with regard to their relevance: the lower the total relevance
of constraints contained in a diagnosis (represented as the sum
of the individual relevances (rel( i)) of constraints in ), the
higher the relevance of the (see Formula 6).
relevance(
= f 1; 2; ::; qg) =
j j
jCj
i2
(6)</p>
      <p>
        An evaluation of conservativism and relevance of generated
diagnoses is depicted in Table 11. For each combination of
jRCj #releases, we randomly generated jRCj release
constraints 10 times, assigned importance values to these
constraints, and randomly changed 10% of the constraints. The
resulting (inconsistent) constraint sets were diagnosed with
FastDiag [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]. The corresponding evaluation results are
depicted in Table 11. We can observe a decreasing degree of
conservativism with an increasing number of release constraints
RC.
      </p>
      <p>jRCj
5</p>
    </sec>
    <sec id="sec-5">
      <title>Conclusion and Future Work</title>
      <p>
        In this paper, we have shown how to represent release
planning as a con guration problem. This representation is a
major basis for supporting re-planning tasks, i.e., the adaptation
of plans that become inconsistent due to changing constraints
(e.g., a changing availability of resources). In this context, we
also focused on introducing concepts that support the
automated adaptation of release plans (recon guration of release
plans) and di erent variants thereof such as the diagnosis of
release constraints and prioritization constraints. To show the
applicability of the presented concepts, we have presented
initial evaluation results based on a couple of evaluation metrics.
Future work will include the development and evaluation of
di erent types of preference aggregation functions (see
Section 2) with regard to their capability of generating relevant
prioritizations. Furthermore, we will optimize the
determination of release plans, recon gurations, and diagnoses by
integrating intelligent search heuristics that help to improve the
quality of identi ed solutions. In this context, we will
compare constraint-based reasoning approaches with local search
based ones [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ] with regard to e ciency and solution quality.
      </p>
    </sec>
    <sec id="sec-6">
      <title>Acknowledgment</title>
      <p>The work presented in this paper has been conducted within
the scope of the Horizon 2020 project OpenReq (732463).</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <given-names>D.</given-names>
            <surname>Ameller</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Farre</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Franch</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Valerio</surname>
          </string-name>
          ,
          <article-title>and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Cassarino</surname>
          </string-name>
          , `
          <article-title>Towards continuous software release planning'</article-title>
          ,
          <source>in SANER 2017</source>
          , pp.
          <volume>402</volume>
          {
          <issue>406</issue>
          ,
          <string-name>
            <surname>Klagenfurt</surname>
          </string-name>
          , Austria, (
          <year>2017</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>F.</given-names>
            <surname>Bacchus</surname>
          </string-name>
          ,
          <string-name>
            <given-names>X.</given-names>
            <surname>Chen</surname>
          </string-name>
          , P. van Beek, and T. Walsh, `
          <article-title>Binary vs. non-binary constraints'</article-title>
          ,
          <source>Arti cial Intelligence</source>
          ,
          <volume>140</volume>
          (
          <issue>1</issue>
          {2),
          <volume>1</volume>
          {
          <fpage>37</fpage>
          , (
          <year>2002</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>J.</given-names>
            <surname>Dyer</surname>
          </string-name>
          ,
          <article-title>`Multi attribute utility theory'</article-title>
          ,
          <source>International Series in Operations Research and Management Science</source>
          ,
          <volume>78</volume>
          , 265{
          <fpage>292</fpage>
          , (
          <year>1997</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <given-names>A.</given-names>
            <surname>Felfernig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Boratto</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Stettinger</surname>
          </string-name>
          , and
          <string-name>
            <given-names>M.</given-names>
            <surname>Tkalcic</surname>
          </string-name>
          ,
          <source>Group Recommender Systems { An Introduction</source>
          , Springer,
          <year>2018</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <given-names>A.</given-names>
            <surname>Felfernig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>L.</given-names>
            <surname>Hotz</surname>
          </string-name>
          ,
          <string-name>
            <given-names>C.</given-names>
            <surname>Bagley</surname>
          </string-name>
          , and
          <string-name>
            <given-names>J.</given-names>
            <surname>Tiihonen</surname>
          </string-name>
          , Knowledgebased Con guration: From Research to Business Cases, Elsevier/Morgan Kaufmann Publishers, 1st edn.,
          <year>2014</year>
          .
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>A.</given-names>
            <surname>Felfernig</surname>
          </string-name>
          ,
          <string-name>
            <given-names>M.</given-names>
            <surname>Schubert</surname>
          </string-name>
          , and
          <string-name>
            <given-names>C.</given-names>
            <surname>Zehentner</surname>
          </string-name>
          , `
          <article-title>An E cient Diagnosis Algorithm for Inconsistent Constraint Sets', Arti cial Intelligence for Engineering Design, Analysis,</article-title>
          and
          <string-name>
            <surname>Manufacturing</surname>
          </string-name>
          (AIEDAM),
          <volume>26</volume>
          (
          <issue>1</issue>
          ),
          <volume>175</volume>
          {
          <fpage>184</fpage>
          , (
          <year>2012</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>D.</given-names>
            <surname>Greer</surname>
          </string-name>
          ,
          <string-name>
            <given-names>D.</given-names>
            <surname>Bustard</surname>
          </string-name>
          , and T. Sunazuka, `
          <article-title>Prioritization of system changes using cost-bene t and risk assessments'</article-title>
          ,
          <source>in 4th International Symposium on Requirements Engineering</source>
          , pp.
          <volume>180</volume>
          {
          <issue>187</issue>
          ,
          <string-name>
            <surname>Limerick</surname>
          </string-name>
          , Ireland, (
          <year>1999</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>D.</given-names>
            <surname>Greer</surname>
          </string-name>
          and G. Ruhe, `
          <article-title>Software release planning: An evolutionary and iterative approach'</article-title>
          ,
          <source>Information and Software Technology</source>
          ,
          <volume>46</volume>
          (
          <issue>4</issue>
          ),
          <volume>243</volume>
          {
          <fpage>253</fpage>
          , (
          <year>2004</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9]
          <string-name>
            <given-names>H.</given-names>
            <surname>Jung</surname>
          </string-name>
          , `
          <article-title>Optimizing value and cost in requirements analysis'</article-title>
          ,
          <source>IEEE Software</source>
          ,
          <volume>15</volume>
          (
          <issue>4</issue>
          ),
          <volume>74</volume>
          {
          <fpage>78</fpage>
          , (
          <year>1998</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <string-name>
            <given-names>M.</given-names>
            <surname>Lindgren</surname>
          </string-name>
          ,
          <string-name>
            <given-names>R.</given-names>
            <surname>Land</surname>
          </string-name>
          ,
          <string-name>
            <surname>C.</surname>
          </string-name>
          <article-title>Norstrom, and</article-title>
          <string-name>
            <given-names>A.</given-names>
            <surname>Wall</surname>
          </string-name>
          , `
          <article-title>Key aspects of software release planning in industry'</article-title>
          ,
          <source>in 19th Australian Conference on Software Engineering</source>
          , pp.
          <volume>320</volume>
          {
          <issue>329</issue>
          ,
          <string-name>
            <surname>Perth</surname>
          </string-name>
          , WA, Australia, (
          <year>2008</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <string-name>
            <given-names>G.</given-names>
            <surname>Ruhe and M. Saliu</surname>
          </string-name>
          , `
          <article-title>The art and science of software release planning'</article-title>
          ,
          <source>IEEE Software</source>
          ,
          <volume>22</volume>
          (
          <issue>6</issue>
          ),
          <volume>47</volume>
          {
          <fpage>53</fpage>
          , (
          <year>2005</year>
          ).
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>