Abstract
Empirical software engineering is concerned with the design and analysis of empirical studies that include software products, processes, and resources. Optimization is a form of data analytics in support of human decision-making. Optimization methods are aimed to find best decision alternatives. Empirical studies serve both as a model and as data input for optimization. In addition, the complexity of the models used for optimization triggers further studies on explaining and validating the results in real-world scenarios. The goal of this chapter is to give an overview of the as-is and of the to-be usage of optimization in software engineering. The emphasis is on a pragmatic use of optimization, and not so much on describing the most recent algorithmic innovations and tool developments. The usage of optimization covers a wide range of questions from different types of software engineering problems along the whole life cycle. To facilitate its more comprehensive and more effective usage, a checklist for a guided process is described. The chapter uses a running example Asymmetric Release Planning to illustrate the whole process. A Return-on-Investment analysis is proposed as part of the problem scoping. This helps to decide on the depth and breadth of analysis in relation to the effort needed to run the analysis and the projected value of the solution.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
Similar content being viewed by others
References
Abran A, Moore JW, Bourque P, Dupuis R, Tripp LL (2004) Software engineering body of knowledge. IEEE Computer Society, Angela Burgess, Washington
Ameller D, Farré C, Franch X, Rufian G (2016) A survey on software release planning models. In: Product-focused software process improvement: 17th international conference, PROFES 2016, Trondheim, November 22–24, 2016, Proceedings 17. Springer, Berlin, pp 48–65
Antoniol G, Di Penta M, Harman M (2005) Search-based techniques applied to optimization of project planning for a massive maintenance project. In: 21st IEEE international conference on software maintenance (ICSM’05). IEEE, Piscataway, pp 240–249
Aronson JE, Liang T-P, Turban E (2005) Decision support systems and intelligent systems, vol 4. Pearson Prentice-Hall, Upper Saddle River
Balera JM, de Santiago VA Jr (2019) A systematic mapping addressing hyper-heuristics within search-based software testing. Inf Softw Technol 114:176–189
Barreto A, de O Barros M, Werner CML (2008) Staffing a software project: a constraint satisfaction and optimization-based approach. Comput Oper Res 35(10):3073–3089
Binitha S, Sathya SS, et al (2012) A survey of bio inspired optimization algorithms. Int J Soft Comput Eng 2(2):137–151
Boehm, BW, Sullivan KJ (2000) Software economics: a roadmap. In: Proceedings of the conference on the future of Software engineering. ACM, New York, pp 319–343
Bowman M, Briand LC, Labiche Y (2010) Solving the class responsibility assignment problem in object-oriented analysis with multi-objective genetic algorithms. IEEE Trans Softw Eng 36(6):817–837
Burke EK, Gendreau M, Hyde M, Kendall G, Ochoa G, Özcan E, Qu R (2013) Hyper-heuristics: a survey of the state of the art. J Oper Res Soc 64(12):1695–1724
Chang CK, Jiang H-y, Di Y, Zhu D, Ge Y (2008) Time-line based model for software project scheduling with genetic algorithms. Inf Softw Technol 50(11):1142–1154
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
Chrissis MB, Konrad M, Shrum S (2003) CMMI guidelines for process integration and product improvement. Addison-Wesley Longman Publishing Co., Inc., Boston
Clímaco J, Ferreira C, Captivo ME (1997) Multicriteria integer programming: an overview of the different algorithmic approaches. In: Multicriteria analysis. Springer, Berlin, pp 248–258
Cormen TH, Leiserson CE, Rivest RL, Stein C (2001) Introduction to algorithms, vol 6. MIT Press, Cambridge
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
Deb K, Pratap A, Agarwal S, Meyarivan T, Fast A (2002) A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE Trans Evol Comput 6(2):182–197
Di Penta M, Harman M, Antoniol G (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
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–60
Dybå T, Sjøberg DIK, Cruzes DS (2012) What works for whom, where, when, and why?: on the role of context in empirical software engineering. In: Proceedings of the ACM-IEEE international symposium on empirical software engineering and measurement. ACM, New York, pp 19–28
Erdogmus H, Favaro J, Strigel W (2004) Return on investment. IEEE Softw 21(3):18–22
Floudas CA, Pardalos PM (2001) Encyclopedia of optimization, vol 1. Springer Science & Business Media, Berlin
Frey S, Fittkau F, Hasselbring W (2013) Search-based genetic optimization for deployment and reconfiguration of software in the cloud. In: 2013 35th international conference on software engineering (ICSE). IEEE, Piscataway, pp 512–521
Garey MR, Johnson DS (2002) Computers and intractability, vol 29. W. H. Freeman, New York
Gawande A (2010) Checklist manifesto, the (HB). Penguin Books India, New Delhi
Geoffrion AM (1976) The purpose of mathematical programming is insight, not numbers. Interfaces 7(1):81–92
Greer D, Ruhe G (2004) Software release planning: an evolutionary and iterative approach. Inf Softw Technol 46(4):243–253
Grunske L (2006) Identifying good architectural design alternatives with multi-objective optimization strategies. In: Proceedings of the 28th international conference on software engineering. ACM, New York, pp 849–852
Guo J, White J, Wang G, Li J, Wang Y (2011) A genetic algorithm for optimized feature selection with resource constraints in software product lines. J Syst Softw 84(12):2208–2221
Gurobi (2012) Gurobi optimizer reference manual. http://www.gurobi.com
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 annual conference on genetic and evolutionary computation. ACM, New York, pp 1106–1113
Harman M, Hierons RM, Proctor M (2002) A new representation and crossover operator for search-based optimization of software modularization. In: GECCO 2002: Proceedings of the genetic and evolutionary computation Conference, New York, vol 2, pp 1351–1358
Huang S-J, Chiu N-H, Chen L-W (2008) Integration of the grey relational analysis with genetic algorithm for software effort estimation. Eur J Oper Res 188(3):898–909
Kano N, Seraku N, Takahashi F, Tsuji S (1984) Attractive quality and must-be quality. J Jan Soc Qual Control 14(2):39–48
Kar AK (2016) Bio inspired computing–a review of algorithms and scope of applications. Expert Syst Appl 59:20–32
Kistler T, Franz M (2003) Continuous program optimization: a case study. ACM Trans Program Lang Syst 25(4):500–548
Kurgan LA, Musilek P (2006) A survey of knowledge discovery and data mining process models. Knowl Eng Rev 21(1):1–24
Lakhotia K, Harman M, McMinn P (2007) A multi-objective approach to search-based test data generation. In: Proceedings of the 9th annual conference on genetic and evolutionary computation. ACM, New York, pp 1098–1105
Langdon WB, Harman M (2014) Optimizing existing software with genetic programming. IEEE Trans Evol Comput 19(1):118–135
Li Y-F, Xie M, Goh TN (2009) A study of mutual information based feature selection for case based reasoning in software cost estimation. Expert Syst Appl 36(3):5921–5931
Liu Y, Khoshgoftaar TM, Seliya N (2010) Evolutionary optimization of software quality modeling with multiple repositories. IEEE Trans Softw Eng 36(6):852–864
Lucas TW, McGunnigle JE (2003) When is model complexity too much? Illustrating the benefits of simple models with Hughes’ salvo equations. Nav Res Logist 50(3):197–217
Ma Y, Zhang C (2008) Quick convergence of genetic algorithm for QoS-driven web service selection. Comput Netw 52(5):1093–1104
MacDonell SG, Shepperd MJ (2003) Combining techniques to optimize effort predictions in software project management. J Syst Softw 66(2):91–98
Meignan D, Knust S, Frayret J-M, Pesant G, Gaud N (2015) A review and taxonomy of interactive optimization methods in operations research. ACM Trans Interact Intell Syst 5(3):17
Nayebi M, Ruhe G (2018) Asymmetric release planning – compromising satisfaction against dissatisfaction. IEEE Trans Softw Eng 45(9):839–857
Ngo-The A, Ruhe G (2008) Optimized resource allocation for software release planning. IEEE Trans Softw Eng 35(1):109–123
Oliveira ALI, Braga PL, Lima RMF, Cornélio ML (2010) GA-based method for feature selection and parameters optimization for machine learning regression applied to software effort estimation. Inf Softw Technol 52(11):1155–1166
Praditwong K, Harman M, Yao X (2010) Software module clustering as a multi-objective search problem. IEEE Trans Softw Eng 37(2):264–282
Ren J, Harman M, Di Penta M (2011) Cooperative co-evolutionary optimization of software project staff assignments and job scheduling. In: International symposium on search based software engineering. Springer, Berlin, pp 127–141
Rittel HWJ, Webber MM (1974) Wicked problems. Man-Made Futures 26(1):272–280
Ruhe G (2002) Software engineering decision support–a new paradigm for learning software organizations. In: International workshop on learning software organizations. Springer, Berlin, pp 104–113
Ruhe G (2010) Product release planning: methods, tools and applications. CRC Press, Boca Raton
Ruhe G, Wohlin C (2014) Software project management: setting the context. In: Software project management in a changing world. Springer, Berlin, pp 1–24
Ruhe G, et al (2004) Hybrid intelligence in software release planning. Int J Hybrid Intell Syst 1(1–2):99–110
Saliu O, Ruhe G (2005) Supporting software release planning decisions for evolving systems. In: 29th annual IEEE/NASA software engineering workshop. IEEE, Piscataway, pp 14–26
Saliu MO, Ruhe G (2007) Bi-objective release planning for evolving software systems. In: Proceedings ESEC/FSE. ACM, New York, pp 105–114
Shearer C (2000) The CRISP-DM model: the new blueprint for data mining. J Data Warehouse 5(4):13–22
Sheskin DJ (2003) Handbook of parametric and nonparametric statistical procedures. CRC Press, Boca Raton
Singh Y, Kaur A, Suri B (2010) Test case prioritization using ant colony optimization. ACM SIGSOFT Softw Eng Notes 35(4):1–7
Van den Akker M, Brinkkemper S, Diepen G, Versendaal J (2008) Software product release planning through optimization and what-if analysis. Inf Softw Technol 50(1–2):101–111
Van Solingen R, Basili V, Caldiera G, Rombach HD (2002) Goal question metric (GQM) approach. Encycl Softw Eng 2:578–583
Veerapen N, Ochoa G, Harman M, Burke EK (2015) An integer linear programming approach to the single and bi-objective next release problem. Inf Softw Technol 65:1–13
Wada H, Champrasert P, Suzuki J, Oba K (2008) Multiobjective optimization of SLA-aware service composition. In: 2008 IEEE congress on services-part I. IEEE, Piscataway, pp 368–375
Walcott KR, Soffa ML, Kapfhammer GM, Roos RS (2006) TimeAware test suite prioritization. In: Proceedings of the 2006 international symposium on software testing and analysis. ACM, New York, pp 1–12
Wang Z, Tang K, Yao X (2010) Multi-objective approaches to optimal testing resource allocation in modular software systems. IEEE Trans Reliab 59(3):563–575
Wieringa RJ (2014) Design science methodology for information systems and software engineering. Springer, Berlin
Xiao M, El-Attar M, Reformat M, Miller J (2007) Empirical evaluation of optimization algorithms when used in goal-oriented automated test data generation techniques. Empir Softw Eng 12(2):183–239
Yoo S, Harman M (2007) Pareto efficient multi-objective test case selection. In: Proceedings of the 2007 international symposium on software testing and analysis. ACM, New York, pp 140–150
Zhang Y, Harman M, Mansouri SA (2007) The multi-objective next release problem. In: Proceedings of the 9th annual conference on genetic and evolutionary computation. ACM, New York, pp 1129–1137
Zhang Y, Harman M, Ochoa G, Ruhe G, Brinkkemper S (2018) An empirical study of meta-and hyper-heuristic search for multi-objective release planning. ACM Trans Softw Eng Methodol 27(1):3
Acknowledgements
This research was supported by the Natural Sciences and Engineering Research Council of Canada, Discovery Grant RGPIN-2017-03948. The literature analysis of the study was mainly done by Debjyoti Mukherjee. The author is grateful to discussions with and comments received from Maleknaz Nayebi and Julian Harty.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2020 Springer Nature Switzerland AG
About this chapter
Cite this chapter
Ruhe, G. (2020). Optimization in Software Engineering: A Pragmatic Approach. In: Felderer, M., Travassos, G. (eds) Contemporary Empirical Methods in Software Engineering. Springer, Cham. https://doi.org/10.1007/978-3-030-32489-6_9
Download citation
DOI: https://doi.org/10.1007/978-3-030-32489-6_9
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-32488-9
Online ISBN: 978-3-030-32489-6
eBook Packages: Computer ScienceComputer Science (R0)