<!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>Requirements Selection: Knowledge based optimization techniques for solving the Next Release Problem</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Jose del Sagrado</string-name>
          <email>jsagrado@ual.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Isabel M. del Aguila</string-name>
          <email>imaguila@ual.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Francisco J. Orellana</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>S. Tunez</string-name>
          <email>stunez@ual.es</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Dpt. Languages and Computation</institution>
          ,
          <addr-line>Ctra Sacramento s/n, 04120 University of Almer a</addr-line>
          ,
          <country country="ES">Spain</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>The requirements selection for the next software release is a problem always present in Software Engineering. The complex nature of this problem and the di culty to address it using exact techniques has motivated the application of optimization techniques to obtain near optimal solutions. This work provides a review of the di erent optimization techniques proposed to accomplish the requirements selection problem. Moreover, it proposes the application of these techniques in a requirement tool in order to be used in real software developments.</p>
      </abstract>
      <kwd-group>
        <kwd>next release problem</kwd>
        <kwd>optimization techniques</kwd>
        <kwd>search based software engineering</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>Introduction</title>
      <p>
        Software development organizations fail many times to deliverer its products
within schedule and budget. Statistical studies, and all the Chaos Reports [
        <xref ref-type="bibr" rid="ref16">16</xref>
        ]
published since 1994, reveal that, frequently, tasks related to requirements lead
software project to the disaster. When requirement-related tasks are poorly
dened or executed, the software product is typically unsatisfactory [
        <xref ref-type="bibr" rid="ref23">23</xref>
        ]. Software
requirements express the needs and constraints xed for a software product that
contribute to the solution of some real world problem [
        <xref ref-type="bibr" rid="ref18">18</xref>
        ]. Usually
stakeholders propose some desired functionalities that software managers must lter in
order to de ne the set of requirements to include in the nal software product.
All new suggested functionalities cannot be selected to be implemented since
resource constraints are always present in development companies; hence each
new feature competes against each other to be included in the next release
software product. The requirements selection is considered a complex task in every
software development since many factors are involved in this decision. A bad or
inappropriate choice of enhancements can turn into a source of problems during
software development: scheduling problems, dissatis ed customers, and economic
losses. This problem is known as next release problem (NRP) [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and it is
considered an optimization problem [
        <xref ref-type="bibr" rid="ref12 ref17 ref2">2, 17, 12</xref>
        ] within the Search Based Software
Engineering (SBSE) discipline [
        <xref ref-type="bibr" rid="ref13 ref14 ref5">13, 5, 14</xref>
        ]. The SBSE area is a growing research
eld which proposes the application of search based optimization algorithms to
tackle problems in Software Engineering (SE). The term SBSE was rst used
in 2001 by Harman and Jones [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ] and has been successfully applied to di
erent problems in SE such as requirements, design tools and techniques, software
veri cation and testing and debugging among others [
        <xref ref-type="bibr" rid="ref15">15</xref>
        ]. Di erent approaches
can be found in the literature to tackle with requirements selection problem, for
example, [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ] and [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] apply greedy and simulated annealing (SA) techniques, [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]
use genetic algorithms (GAs) in software release planning and [
        <xref ref-type="bibr" rid="ref21">21</xref>
        ] propose the
use of ant colony optimization (ACO). In this work we provide a comprehensive
review of the AI techniques applied to solve the NRP. We also propose the
inclusion of these techniques on a CARE (Case Aided REquirement) tool to guide
the decision maker to select the best set of requirements for the next release.
The rest of this paper is structured as follows. Section 2 introduces and provides
the formal description of the NRP problem describing di erent approaches used
when addressing the NRP as an optimization problem. Section 3 analyzes the
existing techniques applied in the literature to address the NRP whereas
Section 4 describes a proposal to integrate these optimization techniques in a CARE
tool. Finally, Section 5 draws conclusions and future works.
2
      </p>
    </sec>
    <sec id="sec-2">
      <title>The NRP Problem</title>
      <p>
        The problem of selecting the subset of requirements among a whole set of
candidate requirements proposed by a group of customers, that will be included
in the next release of a software product is a well-known problem in Software
Engineering. However, it is not a straightforward problem since many factors
are involved in this selection problem. Customers, seeking their own interest,
demand the set of enhancements they consider important, but not all customer
needs can be satis ed; on the one hand, each requirement means a cost in e ort
terms that the company must assume but company resources are limited; on the
other hand, neither all the customers are equally important for the company nor
are the requirements equally important for the customers. Market factors can
also drive this selection process; the company may be interested on satisfying the
newest customers' needs, or they may consider desirable to guarantee every
customer have ful lled at least one of their proposed requirements. Two main goals
are usually considered in this kind of problems: nd a subset of requirements
which maximize the customers' satisfaction and minimize the required e ort to
implement the subset of chosen requirements. The complexity of the problem
increases as the number of customers and requirements grows. Therefore,
optimization techniques can be used to nd optimal or near optimal solutions in
a reasonable amount of time. As Harman de ned in [
        <xref ref-type="bibr" rid="ref13">13</xref>
        ], it is possible to
apply metaheuristic search to numerous problems in SE, but that aim requires a
reformulation of the problem which implies to de ne:
{ a representation of the problem which is amenable to symbolic manipulation,
{ a tness function based on this representation and
{ a set of manipulation operators.
      </p>
      <p>These are the steps that we are going to follow in order to review how
metaheuristic search techniques had been applied to the NRP problem.
2.1</p>
      <sec id="sec-2-1">
        <title>The NRP formulation</title>
        <p>
          Let R = fr1; r2; : : : ; rng be the set of requirements that are proposed by the
customers. These requirements represent enhancements to the current software
system, suggested by a set of m customers and candidates to be included in the
next release. Customers are not equally important for the company. So, each
customer i will have an associated weight wi, which measures its relative
importance. Let W = fw1; w2; : : : ; wmg be the set of customers' weights. Each
requirement rj 2 R has an associated development cost ej , which represents the
e ort needed in its development. Let E = fe1; e2; : : : ; eng be the set of
requirements' e orts. On many occasions, the same requirement is suggested by several
customers. However, its importance or priority may be di erent for each
customer. Thus, the importance that a requirement rj has for customer i is given
by a value vij . The higher the vij value, the higher is the priority of the
requirement rj for customer i. A zero value for vij represents that customer i has not
suggested requirement rj . All these importance values vij can be arranged under
the form of an m n matrix. The global satisfaction, sj , or the added value given
by the inclusion of a requirement rj in the next release, is measured as a weighted
sum of the its importance values for all the customers and can be formalized as:
sj = Pim wivij . In every SE project it is common to nd dependencies among
the features suggested by the customers. Requirements dependencies mean that
a set of constraints has to be considered during the requirement selection task,
since they force us to check whether con icts are present whenever we intend
to select a new requirement to be included in the next software release. Several
kinds of dependencies related to this problem are proposed rst in [
          <xref ref-type="bibr" rid="ref1">1</xref>
          ] and later
in [
          <xref ref-type="bibr" rid="ref4">4</xref>
          ]:
{ Implication or precedence. A requirement ri cannot be selected if a
requirement rj has not been implemented yet.
{ Combination or coupling. A requirement ri cannot be included separately
from a requirement rj .
{ Exclusion. A requirement ri can not be included together with a requirement
rj .
{ Revenue-based. The development of a requirement ri implies that some others
requirements will increase their value.
{ Cost-based. The development of a requirement ri implies that some others
requirements will increase their implementation cost.
        </p>
        <p>
          These kind of dependences, that are reviewed in [
          <xref ref-type="bibr" rid="ref20">20</xref>
          ], are taken into account in
some works about NRP such as [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] and [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ]. Thus, the NRP main goal is to search
for a subset of requirements R^ within the set of all subsets of n requirements
P (R), so the dimension of the search space is 2n. A subset of requirements R^
can be represented in this space as a vector x1; x2; : : : ; xn, where xi 2 0; 1. If
requirement ri 2 R^, then xi = 1 and otherwise xi = 0. In this way, the NRP can
be considered as an instance of the 0-1 knapsack problem, and in consequence
is a NP-hard problem [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] (it is unfeasible to tackle it using exact techniques to
nd the best solution in a polynomial time).
2.2
        </p>
      </sec>
      <sec id="sec-2-2">
        <title>Single-objective NRP or Multi-objective NRP</title>
        <p>The main goal of optimization problems is to search for the best solution with
respect to several objectives. The quality of a candidate solution with respect
to each objective is measured throughout the use a previously xed evaluation
function. According to the number of objectives, the problem can be classi ed as
single-objective or multi-objective. Generally, in order to de ne the next software
release, the main goal that we pursuit is to select a subset of requirements R^
from the candidate requirement list R, which maximize satisfaction and minimize
development e ort. The satisfaction and development e ort of this subset R^ can
be obtained, respectively, as
(1)
(2)
(3)
sat(R^) =</p>
        <p>X(sj );
j2R^
e (R^) =</p>
        <p>
          X(ej )
j2R^
where j is an abbreviation for requirement rj . As the resources available are
limited, then development e ort cannot exceed a certain bound B. First works
[
          <xref ref-type="bibr" rid="ref12 ref2">2, 12</xref>
          ] in NRP tended to consider this problem as a single-objective problem:
maximize customers' satisfaction within a certain development constraints. Their
main goal is to nd a subset of requirements that satis es customer requests
within a given resource constraints (i.e. availability of resources). That is to say,
the selected subset of requirements R^ has to maximize customers' satisfaction
within a given development e ort bound B. Formally,
maximize sat(R^)
subject to e (R^)
        </p>
        <p>
          B
maximize sat(R^)
minimize e (R^)
Most recent works [
          <xref ref-type="bibr" rid="ref25 ref9">25, 9</xref>
          ] consider NRP as a multi-objective problem (MONRP),
since they consider at least two con icting objectives; maximize customers'
satisfaction and minimize the total e ort involved in the development of the selected
requirements. Formally, the NRP can be de ned as the search for requirement
subsets R^ R such as
Other approaches (see [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ]) formulate multi-objective in a di erent way, applying
other criterion to measure customers' satisfaction or de ning more than two
objectives. In contrast to single objective optimization, which returns a unique
solution, multi-objective optimization returns a set of solutions satisfying the
proposed objectives. This means an advantage for the software developers as
they can choose from a range of di erent alternatives. The set of non-dominated
solutions that ful ll multiple objectives is denominated Pareto optimal front (see
Fig. 1) . Whether any of the objectives of these solutions is improved, the others
objectives will get worse.
        </p>
        <p>f1</p>
        <p>Pareto optimal front
Search space
f2
Once the problem has been formulated as a search problem and the tness
functions have been de ned, metaheuristic techniques are be applied in order to
nd possible solutions. In the speci c case of NRP, the metaheuristic techniques
that can be found in the literature are: greedy algorithms, simulated annealing,
genetic algorithms or ant colony systems. However, although all these approaches
pursuit the same aim, not all of them deal with the NRP in the same way.
Simulated annealing (SA) is an optimization algorithm which emulates the
energy changes that occur in a system of particles when its temperature is reduced
till the system reaches a state of equilibrium. At higher temperatures drastic
changes in the system are allowed, whereas at lower temperatures only minor
changes are allowed. This cooling scheduling has as goal to reduce the energy
state of the system, taking the system from an arbitrary initial energy state to
a nal state with the minimum possible energy. Starting from an initial solution
and an initial temperature T0, the algorithm iterates following a cooling
schedule function which decreases the temperature until it reaches a minimum Tend.
Using some cooling functions, the algorithm stays at the same temperature for
a certain number of iterations; then, it is decreased. In each algorithm iteration,
a new solution from the neighbourhood is extracted and it can be accepted or
not as the current solution. This technique allows to explore the search space
at higher temperatures accepting poor solutions, whereas at lower temperatures
only moves that improve the current solution are accepted. This algorithm uses
an acceptance probability which determines whether a new solution found is
accepted as the current one or not. Formally, let S be the current solution and
S0 be a new solution in the neighborhood of S, S0 2 nei(S) (it is said that S0
is a neighbour of S, if they di er exactly on one requirement). Let T be the
current temperature and E = f (S0) f (S) the energy di erence between S
and S0, obtained after applying a tness function. The probability of making
the transition from the current solution S to the candidate solution S0, i.e. the
acceptance probability, is denoted by
p(S; S0; T ) =
1; if E &gt; 0
e TE ; otherwise.</p>
        <p>
          (4)
SA has been applied to NRP by Bagnall et al. [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] and Baker et al. [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ]. In contrast
to most of the NRP approaches in the literature, which are focused on nding the
optimal subset of requirements, the main aim searched in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] is to nd a subset
of customers whose needs will be fully covered. Only implication dependencies
are considered (i.e. a requirement that needs some others requirements to be
implemented), de ning precedence relationships for the candidate requirements.
Baker et al. [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] focuses on a component selection problem of a software system
from a telecommunications company. The aim of this work is to compare the
component selection obtained from a group of human experts with the results
obtained applying a search technique such as simulated annealing. In this case
dependencies among requirements are not considered.
        </p>
        <p>
          Table 1 provides details about the tness and cooling schedule functions
applied in both works, and the parameters used for the experiments. Bagnall's
approach [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] combines into a single tness function two objectives based on the
customers' weights and the total e ort of the solution, since the requirement
priorities are not gathered in this work. By contrast, Baker et al. [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] only takes
into account the total satisfaction given by a solution to measure its quality.
Applying the speci ed parameters, the results obtained by Bagnall et al. [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ]
show that a search technique such as SA is the best choice among the studied
alternatives (greedy algorithms or hill climbers). On the other side experiments
performed in [
          <xref ref-type="bibr" rid="ref2">2</xref>
          ] using the Lundy and Mees cooling schedule slightly
outperforms the geometric function approach. Bakeret al. [
          <xref ref-type="bibr" rid="ref3">3</xref>
          ] compares SA to a greedy
algorithm, and a selection performed by human experts. Best results are also
reached by SA. This technique yields the best score in every experiment,
followed by the greedy algorithm. Finally, the component selection speci ed by the
human experts demonstrates to be much worse than the returned using SA.
A Genetic Algorithm (GA) [
          <xref ref-type="bibr" rid="ref11">11</xref>
          ] is a bio-inspired search algorithm based on the
evolution of collections of individuals (i.e. populations) as result of natural
selection and natural genetics. Starting from an initial population, their individuals
evolve into a new generation by means of selection, crossover and mutation
operators. This technique emulates the evolution process where best tted
individuals survive through generations. This evolution (i.e. iteration of the algorithm)
is performed selecting some individuals according to their quality (measured
by a tness function) from the population. Then some parents are chosen and
combined using crossover to produce new individuals (children). Finally, all the
individuals in the new population have a certain but very small probability of
mutation, i.e. their hereditary structure may be altered. The crossover and
mutation operators are in charge of producing new individuals and they are applied
with di erent probabilities i.e. crossover probability and mutation probability,
denoted by Pc and Pm, respectively.
        </p>
        <p>
          NRP addressed using GAs can be found in Greer and Ruhe [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], as a
singleobjective problem, whereas Zhang et al. [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] , Durillo et al. [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] and Finkelstein et
al. [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] tackle the problem using a multi-objective approach, existing important
di erences among them.
        </p>
        <p>
          Greer and Ruhe [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ] addresses the requirement selection problem from a
perspective based on agile methods, considering the iterations in the incremental
software development. This work proposes an overall method for optimally
allocating requirements to increments, which deals with a single-objective NRP as a
combination of two di erent objectives: maximize the satisfaction and minimize
the total cost of the solution. Precedence (implication) and coupling
(combination) dependencies are considered and added to the problem as new constraints.
The system provides the decision maker a small set of the most promising
solutions that can be selected for the next software increment.
        </p>
        <p>
          Zhang et al. [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] applies GAs to solve the NRP, using rst synthetic data in
[
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] and real data in [
          <xref ref-type="bibr" rid="ref24">24</xref>
          ]. As Greer and Ruhe [
          <xref ref-type="bibr" rid="ref12">12</xref>
          ], two main goals related to
bene t and e ort are considered, although in this case the problem is addressed
from a multi-objective perspective applying NSGA-II and ParetoGA algorithms.
The rst is a well-known multi-objective algorithm using an elitist strategy to
preserve the solutions from the best front whereas the latter is an extension of
the simple GA. Results reported by this work point to the NSGA-II method as
the best choice; the solutions belonging to the Pareto front are better than the
rest of methods evaluated and it o ers a better diversity of solution distribution.
        </p>
        <p>
          Durillo et al. [
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] lled the gap left by this last work, arguing that the
algorithms evaluation was performed in a visual way and no statistical analysis of
the obtained results was provided. Using the same instances used by [
          <xref ref-type="bibr" rid="ref25">25</xref>
          ], they
solve NRP by using a Random Search, and two multi-objective metaheuristics,
NSGA-II and MOCell. In order to perform the analysis of the results, some
quality indicators were used to measure the extent of spread of the set of
solutions (i.e. spread) or the volume covered by the set of non-dominated solutions
(i.e. hypervolume). According to the obtained results, Random Search results
are generally poor, whereas NSGA-II and MOCell obtains good results
presenting a similar performance in most of the cases. However NSGA-II outperforms
MOCell when the experiment reaches the highest number of requirements.
        </p>
        <p>
          Finkelstein et al. [
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] focuses on satisfying the fairness term related to the
requirements selection problem, whose main motivation is to \try to balance the
requirement ful llments between the customers". However, the task of nding
this fairness does not result easy to achieve; hence three di erent multi-objective
approaches are proposed. These proposals intend to maximize the satisfaction
taking into account the number of ful lled requirements per customer, the total
satisfaction, or the percentage of satis ed requirement per customer. Two di
erent algorithms, NSGA-II and the two-archive algorithm, are studied and applied
on a set of real data from a telecommunication company.
        </p>
        <p>
          Table 2 summarizes the techniques applied in each work and the parameters
settings used by authors in the experimental evaluation.
[
          <xref ref-type="bibr" rid="ref25">25</xref>
          ] SNiSnGglAe--oIbI,jePcatirveetoGGAA, Tournament
[
          <xref ref-type="bibr" rid="ref10">10</xref>
          ] TNhSeGTAw-IoI, Archive
[
          <xref ref-type="bibr" rid="ref9">9</xref>
          ] NSGA-II, MOcell
        </p>
        <p>Selection Crossover Mutation
Probability curve Random selection Random
based on tness Pc = f0:1; 0:2; 0:3 Pm = f0:05; 0:1;
value ; 1g 0:15; ; 1g</p>
        <p>Single Point Bitwise</p>
        <p>Pc = 0:8 Pm = 1=n
Tournament SPicn=gle0:P8oint PBmitw=is1e=n</p>
        <p>Tournament SPicn=gle0:P9oint PRman=do1m=n
3.3</p>
      </sec>
      <sec id="sec-2-3">
        <title>Ant Colony Optimization</title>
        <p>
          Ant colony optimization (ACO) is a meta-heuristic for combinatorial
optimization problems proposed by Dorigo et al. [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]. This technique emulates the
cooperative behaviour of real ants in their task to nd the shortest path from their
colony to a source of food. This process is led by a substance called pheromone
that ants leave on the oor as they move along their path. If other ants nd and
follow the same path, this pheromone trail will be stronger, attracting other ants
to follow it. On the other side, the pheromone is periodically evaporated;
therefore, the worse paths gradually lose their pheromone trail. Thus, what at rst
seems to be a random behaviour for ants, when no pheromone trail is present
on the ground, turns into a movement in uenced by the substance left by other
ants in the colony.
        </p>
        <p>
          The Ant System (AS) was the rst ACO algorithm, proposed by Dorigo et
al. [
          <xref ref-type="bibr" rid="ref8">8</xref>
          ]. Later, a new approach, called Ant Colony System (ACS) [
          <xref ref-type="bibr" rid="ref7">7</xref>
          ], was de ned.
This approach introduced some changes related to the mechanism used by the
ants to select the next vertex, and to update the pheromone.
        </p>
        <p>In ACS, the NRP is represented as a fully connected directed graph.
Vertexes represent the candidate requirements ri; r2; : : : ; rn and a pheromone is
associated to the edges joining pairs of requirements. Ants traverse the graph
vertex by vertex constructing a new solution, but their movement is driven by
an equation based on the heuristic information and the pheromone values.</p>
        <p>
          The pheromone update [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ] is performed both locally and globally. The local
update ij = (1 ') ij + ' 0 (where ' 2 (0; 1] is a pheromone decay coe cient
and 0 is the initial pheromone value) is applied by each individual ant only
to the last edge traversed, when searching for its solution. Its main goal is to
expand the search of subsequent ants during one iteration of the colony. The
global update ij = (1 ) ij + ij (where is the pheromone evaporation rate
and ij is the amount of pheromone left in each arc), is performed by the ant
that has found the best solution during an iteration of the colony. It is a kind of
global memory of the colony that stores the best paths (solutions) found.
        </p>
        <p>
          At the time of building a solution, the ants apply the pseudorandom
proportional rule [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]: an ant moves from requirement i to j, depending on a random
variable q (that is uniformly distributed on the 0 to 1 range) and a parameter
q0, such that if q q0, then j = argmaxl2nei(i) ij ij , otherwise j is selected
with a probability [
          <xref ref-type="bibr" rid="ref6">6</xref>
          ]
pikj =
: 0;
8 [ ij] [ ij]
&lt; Ph2Nik [ ij] [ ij]
; if j 2 Nik,
otherwise.
        </p>
        <p>(5)
where the set of visible nodes, nei(i), from the current vertex i is denoted by Nik.
The heuristic information is de ned by ij , whereas the pheromone accumulated
in the edge i,j is represented by ij . On the other side, the parameters and
, re ect the relative in uence of the pheromone with respect to the heuristic
information.</p>
        <p>
          Del Sagrado and del Aguila [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] propose applying ACO to the requirement
selection problem in the incremental development proposed by agile
methodologies. The NRP using a single-objective approach is a orded in [
          <xref ref-type="bibr" rid="ref22">22</xref>
          ], and later
in [
          <xref ref-type="bibr" rid="ref21">21</xref>
          ] applying a multi-objective perspective, de ning this problem as NI-RSP
(Next Increment Requirement Selection Problem). Both approaches are based
on ACS. NI-RSP formulates a multi-objective problem seeking to maximize the
total score, and minimize the total e ort needed to develop. This technique
is compared to other multi-objective optimization techniques, such as GRASP
(greedy randomize adaptive search procedure) and NSGA-II, using some
indicators to measure the quality of the Pareto front. The obtained results indicate
that ACS can be applied e ciently to solve the requirement selection problem;
its performance is very similar to NSGA-II and considerably better than GRASP.
However, according to the quality indicators, it presents less oscillation in the
number of non-dominated solutions.
        </p>
      </sec>
    </sec>
    <sec id="sec-3">
      <title>Practical Application</title>
      <p>This work has shown how optimization techniques applied to NRP let us nd
high quality solutions, in order to help developers during the requirement
selection tasks. Once the applicability of these techniques has been demonstrated,
they still have to be put in practice in real world software development. We
strongly believe that having these search techniques available in a CARE tool
would be considerably helpful for any development team at the time of dealing
with the requirements selection.</p>
      <p>
        InSCo Requisite [
        <xref ref-type="bibr" rid="ref19">19</xref>
        ] is a web-based tool early developed by our research
group to manage the requirements of software development projects. Therefore,
we propose an architecture (see Fig. 2) that integrates these techniques in the
InSCo Requisite tool. The tool allows that a group of customers and developers
works simultaneously in the same project, specifying the requirements of the
system. Each requirement has an associated form which gathers its features,
priorities and even a scenario or storyboard.
      </p>
      <p>SE
customer 1 customer 2 customer m</p>
      <p>InSCo Requisite
www.dkse.ual.es/insco
developers
search techniques
simulated annealing
genetic algorithm
ant colony optimization
...</p>
      <p>KE</p>
      <p>In order to facilitate the applicability of meta-heuristics algorithms,
InSCoRequisite must generate an interface le that contains all data needed during
the execution of the simulated annealing, genetic or ant colony optimization
algorithms.</p>
      <p>The tool actually allows to export the whole set of speci ed requirements to
an XML le. In a near future we plan to include development e ort as a new
property of each requirement. In this way, the resulting XML le could be easily
used as input to any of the metaheuristic techniques applied in NRP. The result
obtained by the metaheuristic techniques will be presented in the interface of
InSCo Requisite and will serve as a feedback to developers when facing to the
problem of planning the next software release.
5</p>
    </sec>
    <sec id="sec-4">
      <title>Conclusions</title>
      <p>The paper presented has provided a review of the metaheuristic techniques
applied to the requirement selection problem, known as Next Release Problem
(NRP). This problem, within the Search Based Software Engineering (SBSE)
discipline, was formulated in 2001 as a search problem and since then it has
been addressed by many authors applying di erent search techniques: SA, GA
and ACO. Table 3 summarizes the di erent works in the literature addressing
the NRP, classi ed according to several factors as dependences are considered
or not, and whether a single-objective or multi-objective perspective is applied.</p>
      <p>Although each technique has been reviewed in an isolated way, since the
comparison is not feasible when di erent datasets are applied, the results obtained
by all of them demonstrate their applicability to the NRP. Finally, an integration
of these techniques in an existent requirement tool has been proposed in order
to take advantage of these techniques in Software Engineering.</p>
      <p>Acknowledgments. This work was supported by the Spanish Ministry of
Education and Science under project TIN2007-67418-C03-02 and by the Junta of
Andaluc a under project P06-TIC-02411-02.</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1. van den Akker, M.,
          <string-name>
            <surname>Brinkkemper</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Diepen</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Versendaal</surname>
          </string-name>
          , J.:
          <article-title>Software product release planning through optimization and what-if analysis</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>50</volume>
          (
          <issue>1-2</issue>
          ),
          <volume>101</volume>
          {
          <fpage>111</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Bagnall</surname>
            ,
            <given-names>A.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rayward-Smith</surname>
            ,
            <given-names>V.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Whittley</surname>
            ,
            <given-names>I.M.:</given-names>
          </string-name>
          <article-title>The next release problem</article-title>
          .
          <source>Information and Software Technology</source>
          <volume>43</volume>
          (
          <issue>14</issue>
          ),
          <volume>883</volume>
          {
          <fpage>890</fpage>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3.
          <string-name>
            <surname>Baker</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Steinhofel</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Skaliotis</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Search based approaches to component selection and prioritization for the next release problem</article-title>
          .
          <source>In: Procs. 22nd IEEE Int. Conf. on Soft. Maintenance</source>
          ,
          <volume>176</volume>
          {
          <fpage>185</fpage>
          . IEEE Computer Society (
          <year>2006</year>
          ).
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          4.
          <string-name>
            <surname>Carlshamre</surname>
            ,
            <given-names>P.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sandahl</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lindvall</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Regnell</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>och Dag</surname>
            ,
            <given-names>J.N.:</given-names>
          </string-name>
          <article-title>An industrial survey of requirements interdependencies in software product release planning</article-title>
          .
          <source>In: Procs. 5th IEEE Int. Symp. on Requirements Engineering</source>
          . p.
          <volume>84</volume>
          {
          <issue>91</issue>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          5.
          <string-name>
            <surname>Clarke</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Dolado</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Hierons</surname>
            ,
            <given-names>R.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Lumkin</surname>
            , M., Mitchell,
            <given-names>B.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mancoridis</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Rees</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Roper</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , et al.:
          <article-title>Reformulating software engineering as a search problem</article-title>
          .
          <source>IEE Proceedings-Software</source>
          <volume>150</volume>
          ,
          <issue>161</issue>
          {
          <fpage>175</fpage>
          (
          <year>2003</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          6.
          <string-name>
            <surname>Dorigo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Birattari</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Stutzle</surname>
            ,
            <given-names>T.</given-names>
          </string-name>
          :
          <article-title>Ant colony optimization</article-title>
          .
          <source>IEEE Computational Intelligence Magazine</source>
          <volume>1</volume>
          (
          <issue>4</issue>
          ),
          <volume>2839</volume>
          (
          <year>2006</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          7.
          <string-name>
            <surname>Dorigo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Gambardella</surname>
            ,
            <given-names>L.M.:</given-names>
          </string-name>
          <article-title>Ant colony system: A cooperative learning approach to the traveling salesman problem</article-title>
          .
          <source>IEEE Trans. On Evolutionary Computation</source>
          <volume>1</volume>
          (
          <issue>1</issue>
          ),
          <volume>53</volume>
          {
          <fpage>66</fpage>
          (
          <year>1997</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          8.
          <string-name>
            <surname>Dorigo</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Maniezzo</surname>
            ,
            <given-names>V.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Colorni</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          :
          <article-title>Ant system: optimization by a colony of cooperating agents</article-title>
          .
          <source>IEEE Trans. on Sys., Man, and Cybernetics</source>
          , Part B
          <volume>26</volume>
          (
          <issue>1</issue>
          ),
          <volume>29</volume>
          {
          <fpage>41</fpage>
          (
          <year>1996</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          9.
          <string-name>
            <surname>Durillo</surname>
            ,
            <given-names>J.J.</given-names>
          </string-name>
          , Zhang,
          <string-name>
            <given-names>Y.Y.</given-names>
            ,
            <surname>Alba</surname>
          </string-name>
          ,
          <string-name>
            <given-names>E.</given-names>
            ,
            <surname>Nebro</surname>
          </string-name>
          ,
          <string-name>
            <surname>A.J.:</surname>
          </string-name>
          <article-title>A study of the multi-objective next release problem</article-title>
          .
          <source>In: Procs.1st Int. Symp. on Search Based Soft. Engineering</source>
          . p.
          <volume>49</volume>
          {
          <issue>58</issue>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          10.
          <string-name>
            <surname>Finkelstein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mansouri</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ren</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          , Zhang, Y.:
          <article-title>A search based approach to fairness analysis in requirement assignments to aid negotiation, mediation and decision making</article-title>
          .
          <source>Requirements Engineering</source>
          <volume>14</volume>
          (
          <issue>4</issue>
          ),
          <volume>231</volume>
          {
          <fpage>245</fpage>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          11.
          <string-name>
            <surname>Goldberg</surname>
          </string-name>
          , D.E.:
          <article-title>Genetic Algorithms in Search and Optimization</article-title>
          . Addison-wesley (
          <year>1989</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          12.
          <string-name>
            <surname>Greer</surname>
            ,
            <given-names>D.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ruhe</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          :
          <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="ref13">
        <mixed-citation>
          13.
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Jones</surname>
            ,
            <given-names>B.F.</given-names>
          </string-name>
          :
          <article-title>Search-based software engineering</article-title>
          .
          <source>Information and software technology 43(14)</source>
          ,
          <volume>833</volume>
          (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref14">
        <mixed-citation>
          14.
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>The current state and future of search based software engineering</article-title>
          .
          <source>In: 2007 Future of Software Engineering</source>
          ,
          <volume>342</volume>
          {
          <fpage>357</fpage>
          . IEEE Computer Society (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref15">
        <mixed-citation>
          15.
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mansouri</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Zhang</surname>
          </string-name>
          , Y.:
          <article-title>Search based software engineering: A comprehensive analysis and review of trends techniques and applications</article-title>
          .
          <source>Tech. Rep. TR-09-03</source>
          (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref16">
        <mixed-citation>
          16.
          <string-name>
            <surname>Johnson</surname>
          </string-name>
          , J.:
          <source>CHAOS chronicles v3.0. Tech. rep. (</source>
          <year>2003</year>
          ), http://standishgroup. com/chaos/toc.php
        </mixed-citation>
      </ref>
      <ref id="ref17">
        <mixed-citation>
          17.
          <string-name>
            <surname>Karlsson</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Ryan</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          :
          <article-title>A Cost-Value approach for prioritizing requirements</article-title>
          .
          <source>IEEE Softw</source>
          .
          <volume>14</volume>
          (
          <issue>5</issue>
          ),
          <volume>67</volume>
          {
          <fpage>74</fpage>
          (
          <year>1997</year>
          ),
        </mixed-citation>
      </ref>
      <ref id="ref18">
        <mixed-citation>
          18.
          <string-name>
            <surname>Kotonya</surname>
            ,
            <given-names>G.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sommerville</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          : Requirements Engineering: Processes and Techniques.
          <source>Wiley (Aug</source>
          <year>1998</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref19">
        <mixed-citation>
          19.
          <string-name>
            <surname>Orellana</surname>
            ,
            <given-names>F.J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Canadas</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>del Aguila</surname>
            ,
            <given-names>I.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Tunez</surname>
            ,
            <given-names>S.:</given-names>
          </string-name>
          <article-title>INSCO requisite - a WebBased RM-Tool to support hybrid software development</article-title>
          .
          <source>In: ICEIS (3-1)</source>
          ,
          <volume>326</volume>
          {
          <fpage>329</fpage>
          (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref20">
        <mixed-citation>
          20.
          <string-name>
            <surname>Ruhe</surname>
          </string-name>
          , G.:
          <article-title>Software release planning</article-title>
          .
          <source>In: Handbook of software engineering and knowledge engineering</source>
          , vol.
          <volume>3</volume>
          ,
          <issue>365</issue>
          {394.
          <string-name>
            <surname>S K Chang</surname>
          </string-name>
          (
          <year>2005</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref21">
        <mixed-citation>
          21.
          <string-name>
            <surname>del Sagrado</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>del Aguila</surname>
            ,
            <given-names>I.M.:</given-names>
          </string-name>
          <article-title>Ant colony optimization for requirement selection in incremental software development</article-title>
          .
          <source>Technical Report</source>
          , University of Almer a (
          <year>2009</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref22">
        <mixed-citation>
          22.
          <string-name>
            <surname>del Sagrado</surname>
            ,
            <given-names>J.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>del Aguila</surname>
            ,
            <given-names>I.M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Orellana</surname>
            ,
            <given-names>F.J.:</given-names>
          </string-name>
          <article-title>Ant colony optimization for the next release problem. a comparative study</article-title>
          .
          <source>In: Procs. 2nd Int. Symp. on Search Based Software Engineering</source>
          (
          <year>2010</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref23">
        <mixed-citation>
          23.
          <string-name>
            <surname>Sommerville</surname>
            ,
            <given-names>I.</given-names>
          </string-name>
          :
          <article-title>Software engineering</article-title>
          (6th ed.).
          <source>Addison-Wesley Longman Publishing Co., Inc</source>
          . (
          <year>2001</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref24">
        <mixed-citation>
          24.
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Finkelstein</surname>
            ,
            <given-names>A.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          :
          <article-title>Search based requirements optimisation: Existing work and challenges</article-title>
          .
          <source>In: Procs. 14th Int. Conf. on Requirements Engineering: Foundation for Soft. Quality</source>
          ,
          <volume>88</volume>
          {
          <fpage>94</fpage>
          . Springer-Verlag, Montpellier, France (
          <year>2008</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref25">
        <mixed-citation>
          25.
          <string-name>
            <surname>Zhang</surname>
            ,
            <given-names>Y.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Harman</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Mansouri</surname>
            ,
            <given-names>S.A.</given-names>
          </string-name>
          :
          <article-title>The multi-objective next release problem</article-title>
          .
          <source>In: Procs. 9th Ann. Conf. on Genetic and Evol. Computation</source>
          ,
          <volume>1129</volume>
          {
          <fpage>1137</fpage>
          . ACM, London, England (
          <year>2007</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>