Abstract
Project management presents the manager with a complex set of related optimisation problems. Decisions made can more profoundly affect the outcome of a project than any other activity. In the chapter, we provide an overview of Search-Based Software Project Management, in which search-based software engineering (SBSE) is applied to problems in software project management. We show how SBSE has been used to attack the problems of staffing, scheduling, risk, and effort estimation. SBSE can help to solve the optimisation problems the manager faces, but it can also yield insight. SBSE therefore provides both decision making and decision support. We provide a comprehensive survey of search-based software project management and give directions for the development of this subfield of SBSE.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Adamopoulos K, Harman, M, Hierons RM (2004) How to overcome the equivalent mutant problem and achieve tailored selective mutation using co-evolution. In: Proceedings of the 6th conference on genetic and evolutionary computation, pp 1338–1349
Afzal W, Torkar R, Feldt R, Gorschek T (2014) Prediction of faults-slip-through in large software projects: an empirical evaluation. Software Qual J 22:51–86. doi:10.1007/s11219-013-9205-3
Aguilar-Ruiz JS, Ramos I, Riquelme JC, Toro M (2001) An evolutionary approach to estimating software development projects. Inf Softw Technol 43(14):875–882
Aguilar-Ruiz JS, Riquelme JC, Ramos I (2002) Natural evolutionary coding: an application to estimating software development projects. In: Proceedings of the 4th conference on genetic and evolutionary computation
Akula B, Cusick J (2008) Impact of overtime and stress on software quality. In: Proceedings of the 4th international symposium on management, engineering, and informatics
Alba E, Chicano F (2005) Management of software projects with GAs. In: Proceedings of the 6th metaheuristics international conference, pp 1152:1-6
Alba E, Chicano F (2007) Software project management with GAs. Inf Sci 177(11):2380–2401
Alvarez-Valdes R, Crespo E, Tamarit JM, Villa F (2006) A scatter search algorithm for project scheduling under partially renewable resources. J Heuristics 12(1–2):95–113
Antoniol G, Di Penta M, Harman M (2004) A robust search-based approach to project management in the presence of abandonment, rework, error and uncertainty. In: Proceedings of the 10th international symposium on the software metrics, pp 172–183
Antoniol G, Di Penta M, Harman M (2005) Search-based techniques applied to optimization of project planning for a massive maintenance project. In: Proceedings of the 21st IEEE international conference on software maintenance, pp 240–249
Azar D (2010) A genetic algorithm for improving accuracy of software quality predictive models: a search-based software engineering approach. Int J Comput Intell Appl 9(2):125–136
Barreto A, Barros M de O, Werner CM (2008) Staffing a software project: a constraint satisfaction and optimization-based approach. Comput Oper Res 35(10):3073–3089
Beckers DG, van der Linden D, Smulders PG, Kompier MA, Taris TW, Geurts SA (2008) Voluntary or Involuntary? control over overtime and rewards for overtime in relation to fatigue and work satisfaction. Work Stress 22(1):33–50
Bouktif S, Kégl B, Sahraoui H (2002) Combining software quality predictive models: an evolutionary approach. In: Proceedings of the international conference on software maintenance, pp 385–392
Bouktif S, Azar D, Precup D, Sahraoui H, Kégl B (2004) Improving rule set based software quality prediction: a genetic algorithm based approach. J Object Technol 3(4):227–241
Bouktif S, Sahraoui H, Antoniol G (2006) Simulated annealing for improving software quality prediction. In: Proceedings of the 8th conference on genetic and evolutionary computation, pp 1893–1900
Braga PL, Oliveira ALI, Meira SRL (2008) A GA-based feature selection and parameters optimization for support vector regression applied to software effort estimation. In: Proceedings of the ACM symposium on applied computing, pp 1788–1792
Briand L, Wieczorek I (2002) Software resource estimation. Encyclopedia Softw Eng 2:1160–1196
Brooks FP Jr (1975) The mythical man month: essays on software engineering. Addison-Wesley Publishing Company, Reading, MA
Burgess CJ, Lefley M (2001) Can genetic programming improve software effort estimation: a comparative evaluation. Inf Softw Technol 43(14):863–873
Chang CK (1994) Changing face of software engineering. IEEE Softw 11(1):4–5
Chang CK, Chao C, Hsieh S-Y, Alsalqan Y (1994) SPMNet: a formal methodology for software management. In: Proceedings of the 18th international computer software and applications conference, p 57
Chang CK, Chao C, Nguyen TT, Christensen M (1998) Software project management net: a new methodology on software management. In: Proceedings of the 22nd international computer software and applications conference, pp 534–539
Chang CK, Christensen MJ, Zhang T (2001) Genetic algorithms for project management. Ann Softw Eng 11(1):107–139
Chao C, Komada J, Liu Q, Muteja M, Alsalqan Y, Chang C (1993) An application of genetic algorithms to software project management. In: Proceedings of the 9th international advanced science and technology, pp 247–252
Chen WN, Zhang J (2013) Ant colony optimization for software project scheduling and staffing with an event-based scheduler. IEEE Trans Softw Eng 39(1):1–17
Chicano F, Luna F, Nebro AJ, Alba E (2011) Using multi objective metaheuristics to solve the software project scheduling problem. In: Proceedings of the 13th conference on genetic and evolutionary computation, pp 1915–1922
Chiu NH, Huang S (2007) The adjusted analogy-based software effort estimation based on similarity distances. J Syst Softw 80(4):628–640
Conte D, Dunsmore H, Shen V (1986) Software engineering metrics and models. The Benjamin/Cummings Publishing Company, Redwood City, CA
Corazza A, Di Martino S, Ferrucci F, Gravino C, Sarro F, Mendes E (2010) How effective is Tabu search to configure support vector regression for effort estimation?. In: Proceedings of the 6th international conference on predictive models in software engineering, pp 4:1-10
Corazza A, Di Martino S, Ferrucci F, Gravino C, Sarro F, Mendes E (2013) Using Tabu search to configure support vector regression for effort estimation. Empir Softw Eng 18(3):506–546
Cortellessa V, Marinelli F, Potena P (2008) An optimization framework for “build-or-buy” decisions in software architecture. Comput Oper Res 35(10):3090–3106
Cortes C, Vapnik V (1995) Support-vector networks. Mach Learn 20(3):273–297
Di Martino S, Ferrucci F, Gravino C, Sarro F (2011) A genetic algorithm to configure support vector machines for predicting fault-prone components. In: PROFES 2011. Lecture notes in computer science, vol 6759. Springer, Heidelberg, p 247
Di Penta M, Antoniol G, Harman M, Qureshi F (2007) The effect of communication overhead on software maintenance project staffing: a search-based approach. In: Proceedings of the 23rd IEEE international conference on software maintenance, pp 315–324
Di Penta M, Antoniol G, Harman M (2011) The use of search-based optimization techniques to schedule and staff software projects: an approach and an empirical study. Softw Pract Exp 41(5):495–519
Dolado JJ (2001) On the problem of the software cost function. Inf Softw Technol 43(1):61–72
Doval D, Mancordis SB, Mitchell S (1998) Automatic clustering of software system using a genetic algorithm. In: Proceedings of the 9th international workshop software technology and engineering practice, pp 73–81
Everson RM, Fieldsend JE (2006) Multiobjective optimization of safety related systems: an application to short-term conflict alert. IEEE Trans Evol Comput 10(2):187–198
Faheem A, Bouktif S, Serhani A, Khalil I (2008) Integrating function point project information for improving the accuracy of effort estimation. In: Proceedings of the international conference on advanced engineering computing and applications in sciences, pp 193–219
Ferrucci F, Gravino C, Mendes E, Oliveto R, Sarro F (2010a) Investigating Tabu search for Web effort estimation. In: Proceedings of the 36th EUROMICRO conference on software engineering and advanced applications, pp 350–357
Ferrucci F, Gravino C, Oliveto R, Sarro F (2010b) Estimating software development effort using Tabu search. In: Proceedings of the 12th international conference on enterprise information systems, vol 1. pp 236–241
Ferrucci F, Gravino C, Oliveto R, Sarro F (2010c) Genetic programming for effort estimation: an analysis of the impact of different fitness functions. In: Proceedings of the 2nd international symposium on search based software engineering, pp 89–98
Ferrucci F, Gravino C, Oliveto R, Sarro F (2010d) Using evolutionary based approaches to estimate software development effort. In: Chis M (ed) Evolutionary computation and optimization algorithms in software engineering: applications and techniques. IGI Global, Hershey, PA, pp 13–28
Ferrucci F, Gravino C, Sarro F (2011) How multi-objective genetic programming is effective for software development effort estimation? In: Proceedings of the 3rd international symposium on search based software engineering. Lecture notes in computer science, vol 6956. Springer, Heidelberg, pp 274–275
Ferrucci F, Harman M, Ren J, Sarro F (2013) Not going to take this anymore: multi-objective overtime planning for software engineering projects. In: Proceedings of the 35th IEEE international conference on software engineering, pp 462–471
Finkelstein A, Harman M, Mansouri S. A, Ren J, Zhang Y (2008) “Fairness Analysis” in requirements assignments. In: Proceedings of the 16th IEEE international requirements engineering conference, pp 115–124
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. Requir Eng 14(4):231–245
Gueorguiev S, Harman M, Antoniol G (2009) Software project planning for robustness and completion time in the presence of uncertainty using multi objective search-based software engineering. In: Proceedings of the genetic and evolutionary computation conference, pp 1673–1680
Harman M (2007a) The current state and future of search-based software engineering. In: Proceedings of the conference on future of software engineering, pp 342–357
Harman M (2007b) Search-based software engineering for program comprehension. In: Proceedings of the 15th IEEE international conference on program comprehension, pp 3–13
Harman M (2010a) The relationship between search-based software engineering and predictive modelling. In: Proceedings of the 6th international conference on predictive models in software engineering, pp 1
Harman M (2010b) Why the virtual nature of software makes it ideal for search-based optimization. In: Proceedings of the 13th international conference on fundamental approaches to software engineering, pp 1–12
Harman M (2011) Making the case for MORTO: multi objective regression test optimization. In: Proceedings of the 1st international workshop on regression testing, pp 111–114
Harman M, Clark JA (2004) Metrics are fitness functions too. In: Proceedings of the 10th international symposium on software metrics, pp 58–69
Harman M, Jones BF (2001) Search-based software engineering. Inf Softw Technol 43(14):833–839
Harman M, Tratt L (2007) Pareto optimal search-based refactoring at the design level. In: Proceedings of the 9th conference on genetic and evolutionary computation, pp 1106–1113
Harman M, Hierons R, Proctor M (2002) A new representation and crossover operator for search-based optimization of software modularization. In: Proceedings of the 4th conference on genetic and evolutionary computation, pp 1351–1358
Harman M, Lakhotia K, McMinn P (2007) A multi-objective approach to search-based test data generation. In: Proceedings of the 9th conference on genetic and evolutionary computation, pp 1098–1105
Harman M, Krinke J, Ren J, Yoo S (2009) Search-based data sensitivity analysis applied to requirement engineering. In: Proceedings of the 11th conference on genetic and evolutionary computation, pp 1681–1688
Harman M, McMinn P, Teixeira de Souza J, Yoo S (2010) Search-based software engineering: techniques, taxonomy, tutorial. LASER Summer School 2010, pp 1–59
Harman M, Burke E, Clark JA, Yao X (2012a) Dynamic adaptive search-based software engineering. In: Proceedings of the 6th IEEE international symposium on empirical software engineering and measurement, pp 1–8
Harman M, Mansouri A, Zhang Y (2012b) Search-based software engineering: trends, techniques and applications. ACM Comput Surv 45(1):11–75
Hericko M, Zivkovic A, Rozman I (2008) An approach to optimizing software development team size. Inf Process Lett 108(3):101–106
Holland J (1975) Adaptation in natural and artificial systems. University of Michigan Press, Ann Arbor, MI
Huang SJ, Chiu NH, Chen LW (2008) Integration of the grey relational analysis with genetic algorithm for software effort estimation. Eur J Oper Res 188(3):898–909
ISBSG (2013) Data repository. Available at http://www.isbsg.org
Jarillo G, Succi G, Pedrycz W, Reformat M (2011) Analysis of software engineering data using computational intelligence techniques. In: Proceedings of the 7th international conference on object oriented information systems, pp 133–142
Jiang H, Chang CK, Xia J, Cheng S (2007) A history-based automatic scheduling model for personnel risk management. In: Proceedings of the 31st computer software and application conference, pp 361–364
Kang D, Jung J, Bae DH (2011) Constraint-based human resource allocation in software projects. Softw Pract Exp 41(5):551–577
Kapur P, Ngo-The A, Ruhe G, Smith A (2008) Optimized staffing for product releases and its application at chartwell technology. J Softw Maint Evol Res Pract 20(5):365–386
Khoshgoftaar TM, Liu Y (2007) A multi-objective software quality classification model using genetic programming. IEEE Trans Reliab 56(2):237–245
Khoshgoftaar TM, Liu Y, Seliya N (2003) Genetic programming-based decision trees for software quality classification. In: Proceedings of the 15th international conference on tools with artificial intelligence, pp 374–383
Kiper JD, Feather MS, Richardson J (2007) Optimizing the V&V process for critical systems. In: Proceedings of the 9th conference on genetic and evolutionary computation, p 1139
Kirsopp C, Shepperd MJ, Hart J (2002) Search heuristics, case-based reasoning and soft- ware project effort prediction. In Proceedings of the genetic and evolutionary computation conference, pp 1367–1374
Kitchenham B, Pickard LM, MacDonell SG, Shepperd MJ (2001) What accuracy statistics really measure. IEEE Proc Softw 148(3):81–85
Kleppa E, Sanne B, Tell GS (2008) Working overtime is associated with anxiety and depression: the Hordaland health study. J Occup Environ Med 50(6):658–666
Koch S, Mitlöhner J (2009) Software project effort estimation with voting rules. Decis Support Syst 46(4):895–901
Koza JR (1992) Genetic programming: on the programming of computers by means of natural selection. MIT Press, Cambridge, MA
Lefley M, Shepperd MJ (2003) Using genetic programming to improve software effort estimation based on general data sets. In: Proceedings of the 5th genetic and evolutionary computation conference, pp 2477–2487
Li YF, Xie M, Goh TN (2009) A study of project selection and feature weighting for analogy based software cost estimation. J Syst Softw 82(2):241–252
Liu Y, Khoshgoftaar TM (2001) Genetic programming model for software quality classification. In: Proceedings of the 6th IEEE international symposium on high-assurance systems engineering: special topic: impact of networking, pp 127–136
Liu Y, Khoshgoftaar TM (2003) Building decision tree software quality classification models using genetic programming. In: Proceedings of the 5th genetic and evolutionary computation conference, pp 1808–1809
Liu Y, Khoshgoftaar T (2004) Reducing overfitting in genetic programming models for software quality classification. In: Proceedings of the 8th IEEE international symposium on high assurance systems engineering, pp 56–65
Lokan C (2005) What should you optimize when building an estimation model? In: Proceedings of the 11th IEEE international symposium on metrics, pp 34
Luna F, Chicano JF, Alba E (2012) Robust solutions for the software project scheduling problem: a preliminary analysis. Int J Metaheuristic 2(1):56–79
Mann C, Maurer F (2005) A case study on the impact of scrum on overtime and customer satisfaction. In: Agile development conference, pp 70–79
McMinn P (2004) Search-based software test data generation: a survey. Softw Test Verif Reliab 14(2):105–156
Mendes E (2009) Web cost estimation and productivity benchmarking. software engineering, vol 5413, Lecture notes in computer science. Springer, Heidelberg, pp 194–222
Menzies, T, Caglayan B, Kocaguneli E, Krall J, Peters F, Turhan B (2012) The PROMISE repository of empirical software engineering data. http://promisedata.googlecode.com
Minku LL, Yao X (2012) Software effort estimation as a multi-objective learning problem. ACM Trans Softw Eng Methodol 22(4):35:1–35:32
Minku LL, Yao X (2013) An analysis of multi-objective evolutionary algorithms for training ensemble models based on different performance measures in software effort estimation. In: Proceedings of the 9th international conference on predictive models in software engineering, pp 8:1–8:10
Minku LL, Sudholt D, Yao X (2012) Evolutionary algorithms for the project scheduling problem: runtime analysis and improved design. In: Proceedings of the genetic and evolutionary computation conference, pp 1221–1228
Minku LL, Sudholt D, Yao X (2013) Improved evolutionary algorithm design for the project scheduling problem based on runtime analysis. IEEE Trans Softw Eng 40:83–102. doi:10.1109/TSE.2013.52
Mitchell BS, Mancoridis S (2002) Using heuristic search techniques to extract design abstractions from source code. In: Proceedings of the genetic and evolutionary computation conference, pp 1375–1382
Nishikitani M, Nakao M, Karita K, Nomura K, Yano E (2005) Influence of overtime work, sleep duration, and perceived job characteristics on the physical and mental status of software engineers. Ind Health 43(4):623–629
Papatheocharous E, Andreou SA (2009) Hybrid computational models for software cost prediction: an approach using artificial neural networks and genetic algorithms, vol 19, Lecture notes in business information processing. Springer, Heidelberg, pp 87–100
Rahman MM, Sohan SM, Maurer F, Ruhe G (2010) Evaluation of optimized staffing for feature development and bug fixing. In: Proceedings of the ACM-IEEE international symposium on empirical software engineering and measurement, p 42
Räihä O (2010) A survey on search-based software design. Comput Sci Rev 4(4):203–249
Ren J, Harman M, Di Penta M (2011) Cooperative co-evolutionary optimization on software project staff assignments and job scheduling. In: Proceedings of the 3rd international symposium on search based software engineering, pp 127–141
Rodriguez D, Ruiz M, Riquelme JC, Harrison R (2011) Multiobjective simulation optimisation in software project management. In: Proceedings of the 13th conference on genetic and evolutionary computation, pp 1883–1890
Sarro F (2011) Search-based approaches for software development effort estimation. In: Proceedings of the 12th international conference on product-focused software development and process improvement (doctoral symposium), pp 38–43
Sarro F (2013) Search-based approaches for software development effort estimation. Ph.D. thesis,. University of Salerno, Italy. http://www0.cs.ucl.ac.uk/staff/F.Sarro/
Sarro F, Di Martino S, Ferrucci F, Gravino C (2012a) A further analysis on the use of genetic algorithm to configure support vector machines for inter-release fault prediction. In: Proceedings of the 27th annual ACM symposium on applied computing, pp 1215–1220
Sarro F, Ferrucci F, Gravino C (2012b) Single and multi objective genetic programming for software development effort estimation. In: Proceedings of the 27th annual ACM symposium on applied computing, pp 1221–1226
Shackelford MRN (2007) Implementation issues for an interactive evolutionary computation system. In: Proceedings of the genetic and evolutionary computation conference, pp 2933–2936
Shackelford MRN, Corne DW (2001) Collaborative evolutionary multi-project resource scheduling. In: Proceedings of the congress on evolutionary computation, vol 2. pp 1131–1138
Shan Y, McKay RI, Lokan CJ, Essam DL (2002) Software project effort estimation using genetic programming. In: Proceedings of international conference on communications circuits and systems, pp 1108–1112
Shepperd MJ, MacDonell SJ (2012) Evaluating prediction systems in software project estimation. Inf Softw Technol 54(8):820–827
Shukla KK (2000) Neurogenetic prediction of software development effort. Inf Softw Technol 42(10):701–713
Simons CL, Parmee IC (2008) User-centered, evolutionary search in conceptual software design. In: Proceedings of the IEEE congress on evolutionary computation, pp 869–876
Simons CL, Parmee IC (2012) Elegant object-oriented software design via interactive evolutionary computation. IEEE Trans Syst Man Cybern Part C Appl Rev 42(6):1797–1805
Song L, Minku LL, Yao X (2013) The impact of parameter tuning on software effort estimation using learning machines. In: Proceedings of the 9th international conference on predictive models in software engineering
Stylianou C, Andreou AS (2013) A multi-objective genetic algorithm for intelligent software project scheduling and team staffing. Intell Decis Technol 7(1):59–80
Stylianou C, Gerasimou S, Andreou AS (2012) A novel prototype tool for intelligent software project scheduling and staffing enhanced with personality factors. In: Proceedings of the 24th international conference on tools with artificial intelligence, pp 277–284
Xiao J, Osterweil LJ, Wang Q, Li M (2010a) Dynamic resource scheduling in disruption-prone software development environments. In: Proceedings of the 13th conference on fundamental approaches to software engineering, pp 107–122
Xiao J, Osterweil LJ, Wang Q, Li M (2010b) Disruption-driven resource rescheduling in software development processes. In: New modeling concepts for today’s software processes. Lecture notes in computer science, vol 6195. Springer, Heidelberg, pp 234–247
Xiao J, Osterweil LJ, Chen J, Wang Q, Li M (2013) Search-based risk mitigation planning in project portfolio management. In: Proceedings of the 2013 international conference on software and system process, pp 146–155
Yoo S, Harman M (2012) Regression testing minimization, selection and prioritization: a survey. Softw Test Verif Reliab 22(2):67–120
Yourdon E (1997) Death March: the complete software developer’s guide to surviving ‘mission impossible’ projects. Prentice-Hall, Upper Saddle River, NJ
Zhang Y (2013) SBSE paper repository. http://crestweb.cs.ucl.ac.uk/resources/sbse_repository/
Zhang Y, Harman M, Mansouri SA (2007) The multi-objective next release problem. In: Proceedings of the 9th conference on genetic and evolutionary computation, pp 1129–1137
Zhang Y, Finkelstein A, Harman M (2008) Search-based requirements optimisation: existing work and challenges. In Proceedings of the 14th international conference on requirements engineering: foundation for software quality, pp 88–94
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2014 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Ferrucci, F., Harman, M., Sarro, F. (2014). Search-Based Software Project Management. In: Ruhe, G., Wohlin, C. (eds) Software Project Management in a Changing World. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-55035-5_15
Download citation
DOI: https://doi.org/10.1007/978-3-642-55035-5_15
Published:
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-55034-8
Online ISBN: 978-3-642-55035-5
eBook Packages: Computer ScienceComputer Science (R0)