Empirical Software Engineering

, Volume 20, Issue 3, pp 577–610 | Cite as

Multi-objective ant colony optimization for requirements selection

  • José del Sagrado
  • Isabel M. del Águila
  • Francisco J. Orellana


The selection of a set of requirements between all the requirements previously defined by customers is an important process, repeated at the beginning of each development step when an incremental or agile software development approach is adopted. The set of selected requirements will be developed during the actual iteration. This selection problem can be reformulated as a search problem, allowing its treatment with metaheuristic optimization techniques. This paper studies how to apply Ant Colony Optimization algorithms to select requirements. First, we describe this problem formally extending an earlier version of the problem, and introduce a method based on Ant Colony System to find a variety of efficient solutions. The performance achieved by the Ant Colony System is compared with that of Greedy Randomized Adaptive Search Procedure and Non-dominated Sorting Genetic Algorithm, by means of computational experiments carried out on two instances of the problem constructed from data provided by the experts.


Software requirements Search based software engineering Ant colony optimization Next release problem 



This research has been funded by the Spanish Ministry of Education, Culture and Sport under project TIN2010-20900-C04-02. We wish also thank to anonymous reviewers for their useful comments.


  1. Albrecht AJ, Gaffney JE (1983) Software function, source lines of code, and development effort prediction: a software science validation. IEEE Trans Softw Eng 9(6):639–648CrossRefGoogle Scholar
  2. Ali S, Briand LC, Hemmati H, Panesar-Walawege RK (2010) A systematic review of the application and empirical investigation of search-based test case generation. IEEE Trans Softw Eng 36(6):742–762CrossRefGoogle Scholar
  3. Arcuri A, Fraser G (2013) Parameter tuning or default values? An empirical investigation in search-based software engineering. Empir Softw Eng 18(3):594–623CrossRefGoogle Scholar
  4. Bagnall AJ, Rayward-Smith VJ, Whittley I (2001) The next release problem. Inf Softw Technol 43(14):883–890CrossRefGoogle Scholar
  5. Baker P, Harman M, Steinhöfel K, Skaliotis A (2006) Search based approaches to component selection and prioritization for the next release problem. In: Proceedings of 22nd IEEE international conference on software maintenance (ICSM 2006). IEEE Computer Society, Philadelphia, pp 176–185CrossRefGoogle Scholar
  6. Boehm BW (1981) Software engineering economics. Prentice Hall, Englewood CliffsMATHGoogle Scholar
  7. Brooks FP (1995) The mythical man-month (anniversary edn). Addison-Wesley Longman Publishing Co., Inc., BostonGoogle Scholar
  8. Carlshamre P (2002) Release planning in market-driven software product development: provoking an understanding. Requir Eng 7(3):139–151CrossRefGoogle Scholar
  9. Carlshamre P, Sandahl K, Lindvall M, Regnell B, och Dag JN (2001) An industrial survey of requirements interdependencies in software product release planning. In: Proceedings of 5th IEEE international symposium on requirements engineering (RE 2001). IEEE Computer Society, Toronto, pp 84–93Google Scholar
  10. Cheng BHC, Atlee JM (2007) Research directions in requirements engineering. In: Proceedings of international conference on software engineering, ISCE 2007. Workshop on the future of software engineering (FOSE 2007). Minneapolis, pp 285–303Google Scholar
  11. Coello CAC, Lamont GB, Veldhuizen DAV (2007) Evolutionary algorithms for solving multi-objective problems evolutionary algorithms for solving multi-objective problems. Springer, New YorkMATHGoogle Scholar
  12. Davis AM (2003) The art of requirements triage. IEEE Comput 36(3):42–49CrossRefGoogle Scholar
  13. Deb K (2001) Multi-objective optimization using evolutionary algorithms. Wiley, New YorkMATHGoogle Scholar
  14. Deb K, Agrawal S, Pratap A, Meyarivan T (2002) A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans Evol Comput 6(2):182–197CrossRefGoogle Scholar
  15. del Sagrado J, del Águila IM (2009) Ant colony optimization for requirement selection in incremental software development. In: Proceedings of the 1st International Symposium on Search Based Software Engineering (SSBSE ’09). IEEE, Cumberland Lodge, WindsorGoogle Scholar
  16. del Sagrado J, del Águila I, Orellana F (2010a) Ant colony optimization for the next release problem: a comparative study. In: Proceeding of Second International Symposium on Search Based Software Engineering (SSBSE 2010), Benevento, Italy, pp 67–76Google Scholar
  17. del Sagrado J, del Águila IM, Orellana FJ, Túnez S (2010b) Requirements selection: knowledge based optimization techniques for solving the next release problem. In: Proceedings of the 6th Workshop on Knowledge Engineering and Software Engineering (KESE6). Karlsruhe, Germany,, CEUR Workshop Proceedings, vol 636Google Scholar
  18. del Sagrado J, del Águila IM, Orellana FJ (2011) Requirements interaction in the next release problem. In: Proceedings of 13th annual Genetic and Evolutionary Computation Conference (GECCO 2011). Dublin, Ireland, pp 241–242Google Scholar
  19. del Sagrado J, del Águila IM, Orellana FJ (2012) Metaheuristic aided software features assembly. In: Proceeding of 20th European Conference on Artificial Intelligence (ECAI 2012) Including Prestigious Applications of Artificial Intelligence (PAIS-2012) System Demonstrations Track. Montpellier, France, pp 1009–1010Google Scholar
  20. de Souza JT, Maia CLB, Ferreira T, do Carmo RAF, Brasil M (2011) An ant colony optimization approach to the software release planning with dependent requirements. In: Proceedings of the 3rd International Symposium on Search Based Software Engineering (SSBSE ’11), vol 6956. Springer, Szeged, Hungary, pp 142–157Google Scholar
  21. Doerner KF, Gutjahr WJ, Hartl RF, Strauss C, Stummer C (2004) Pareto ant colony optimization: a metaheuristic approach to multiobjective portfolio selection. Ann Oper Res 131(1–4):79–99CrossRefMATHMathSciNetGoogle Scholar
  22. Dorigo M, Gambardella LM (1997) Ant colony system: a cooperative learning approach to the traveling salesman problem. IEEE Trans Evol Comput 1(1):53–66CrossRefGoogle Scholar
  23. Dorigo M, Stützle T (2004) Ant colony optimization. MIT Press, Cambridge, MACrossRefMATHGoogle Scholar
  24. Dorigo M, Birattari M, Stutzle T (2006) Ant colony optimization. IEEE Comput Intell Mag 1(4):28–39CrossRefGoogle Scholar
  25. Durillo J, Zhang Y, Alba E, Nebro A (2009) A study of the multi-objective next release problem. In: Proceeding of 1st international symposium on search based software engineering (SSBSE 2009). Cumberland Lodge, Windsor, pp 49–58Google Scholar
  26. Durillo JJ, Zhang Y, Alba E, Harman M, Nebro AJ (2011) A study of the bi-objective next release problem. Empir Softw Eng 16(1):29–60CrossRefGoogle Scholar
  27. Feo TA, Resende MGC (1989) A probabilistic heuristic for a computationally difficult set covering problem. Oper Res Lett 8(2):67–71CrossRefMATHMathSciNetGoogle Scholar
  28. Feo T, Resende M (1995) Greedy randomized adaptive search procedures. J Global Optim 6:109–133CrossRefMATHMathSciNetGoogle Scholar
  29. Finkelstein A, Harman M, Mansouri SA, Ren J, Zhang Y (2008) “Fairness analysis” in requirements assignments. In: Proceeding of 16th IEEE international requirements engineering conference (RE 2008). Barcelona, pp 115–124Google Scholar
  30. Finkelstein A, Harman M, Mansouri SA, Ren J, Zhang Y (2009) A search based approach to fairness analysis in requirement assignments to aid negotiation, mediation and decision making. Requirement Eng 14(4):231–245CrossRefGoogle Scholar
  31. Garey MR, Johnson DS (1990) Computers and intractability: a guide to the theory of NP-completeness. Freeman, New YorkGoogle Scholar
  32. Greer D, Ruhe G (2004) Software release planning: an evolutionary and iterative approach. Inf Softw Technol 46(4):243–253CrossRefGoogle Scholar
  33. Häckel S, Fischer M, Zechel D, Teich T (2008) A multi-objective ant colony approach for pareto-optimization using dynamic programming. In: Proceedings of genetic and evolutionary computation conference (GECCO 2008). ACM, Atlanta, pp 33–40Google Scholar
  34. Harman M (2007) The current state and future of search based software engineering. In: Future of software engineering, FOSE ’07, pp 342–357Google Scholar
  35. Harman M, Jones BF (2001) Search-based software engineering. Inf Softw Technol 43(14):833–839CrossRefGoogle Scholar
  36. Iredi S, Merkle D, Middendorf M (2001) Bi-criterion optimization with multi colony ant algorithms. In: Proceedings of evolutionary multi-criterion optimization, first international conference (EMO 2001). Zurich, pp 359–372Google Scholar
  37. Jiang H, Zhang J, Xuan J, Re Z, Hu Y (2010) A hybrid ACO algorithm for the next release problem. In: Proceedings of the 2nd international conference on software engineering and data mining (SEDM ’10). IEEE, Chengdu, pp 166–171Google Scholar
  38. Johnson J (2003) CHAOS chronicles v3.0. Tech. rep.Google Scholar
  39. Karlsson J, Olsson S, Ryan K (1997) Improving practical support for large-scale requirement prioritising. Requirement Eng 2(1):51–60CrossRefGoogle Scholar
  40. Kotonya G, Sommerville I (1998) Requirements engineering: processes and techniques. Wiley, New YorkGoogle Scholar
  41. Momoh J, Ruhe G (2006) Release planning process improvement an industrial case study. Software Process Improvement and Practice 11(3):295–307CrossRefGoogle Scholar
  42. Pitsoulis L, Resende M (2003) Greedy randomized adaptive search procedures. Oxford University Press, pp 168–183Google Scholar
  43. Resende M, Ribeiro C (2003) Greedy randomized adaptive search procedures. Kluwer Academic Publishers, Dordrecht, pp 219–249Google Scholar
  44. Ruhe G, Saliu MO (2005) The art and science of software release planning. IEEE Softw 22(6):47–53CrossRefGoogle Scholar
  45. Saliu MO, Ruhe G (2007) Bi-objective release planning for evolving software systems. In: Proceedings of the 6th joint meeting of the European software engineering conference and the ACM SIGSOFT international symposium on foundations of software engineering. Dubrovnik, Croatia, pp 105–114Google Scholar
  46. Schott J (1995) Fault tolerant design using single and multicriteria genetic algorithm optimization. PhD thesis, Massachusetts Institute of Technology, M.S., USAGoogle Scholar
  47. Simmons E (2004) Requirements triage: what can we learn from a “medical” approach? IEEE Softw 21(4):86–88CrossRefGoogle Scholar
  48. Srinivas N, Deb K (1994) Muiltiobjective optimization using nondominated sorting in genetic algorithms. Evoltionary Computation 2:221–248CrossRefGoogle Scholar
  49. Vianna DS, Arroyo JEC (2004) A GRASP algorithm for the multi-objective knapsack problem. In: Proceedings of 24th International Conference of the Chilean Computer Science Society (SCCC 2004), pp 69–75Google Scholar
  50. Wiegers KE (2003) Software requirements. Microsoft Press, Redmon, WA, USAGoogle Scholar
  51. Wohlin C, Runeson P, Höst M, Ohlsson M, Regnell B, Wesslén A (2012) Experimentation in software engineering: an introduction. Springer, BerlinCrossRefGoogle Scholar
  52. Zhang Y, Harman M (2010) Search based optimization of requirements interaction management. In: Proceedings of Second International Symposium on Search Based Software Engineering (SSBSE 2010). Benevento, Italy, pp 47–56Google Scholar
  53. Zhang Y, Harman M, Mansouri SA (2007) The multi-objective next release problem. In: Proceedings of Genetic and Evolutionary Computation Conference (GECCO 2007). London, England, UK, pp 1129–1137Google Scholar
  54. Zitzler E, Thiele L (1999) Multiobjective evolutionary algorithms: a comparative case study and the strength pareto approach. IEEE Trans Evol Comput 3(4):257–271CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media New York 2013

Authors and Affiliations

  • José del Sagrado
    • 1
  • Isabel M. del Águila
    • 1
  • Francisco J. Orellana
    • 1
  1. 1.Departamento de InformáticaUniversidad de AlmeríaAlmeríaSpain

Personalised recommendations