Skip to main content

Optimization in Software Engineering: A Pragmatic Approach

  • Chapter
  • First Online:
Book cover Contemporary Empirical Methods in Software Engineering
  • 1830 Accesses

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.

This is a preview of subscription content, log in via an institution to check access.

Access this chapter

Chapter
USD 29.95
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
eBook
USD 129.00
Price excludes VAT (USA)
  • Available as PDF
  • Read on any device
  • Instant download
  • Own it forever
Softcover Book
USD 169.00
Price excludes VAT (USA)
  • Compact, lightweight edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info
Hardcover Book
USD 169.99
Price excludes VAT (USA)
  • Durable hardcover edition
  • Dispatched in 3 to 5 business days
  • Free shipping worldwide - see info

Tax calculation will be finalised at checkout

Purchases are for personal use only

Institutional subscriptions

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  • Abran A, Moore JW, Bourque P, Dupuis R, Tripp LL (2004) Software engineering body of knowledge. IEEE Computer Society, Angela Burgess, Washington

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Aronson JE, Liang T-P, Turban E (2005) Decision support systems and intelligent systems, vol 4. Pearson Prentice-Hall, Upper Saddle River

    Google Scholar 

  • Balera JM, de Santiago VA Jr (2019) A systematic mapping addressing hyper-heuristics within search-based software testing. Inf Softw Technol 114:176–189

    Google Scholar 

  • 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

    Google Scholar 

  • Binitha S, Sathya SS, et al (2012) A survey of bio inspired optimization algorithms. Int J Soft Comput Eng 2(2):137–151

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Chrissis MB, Konrad M, Shrum S (2003) CMMI guidelines for process integration and product improvement. Addison-Wesley Longman Publishing Co., Inc., Boston

    Google Scholar 

  • 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

    MATH  Google Scholar 

  • Cormen TH, Leiserson CE, Rivest RL, Stein C (2001) Introduction to algorithms, vol 6. MIT Press, Cambridge

    MATH  Google Scholar 

  • 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

    MATH  Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Erdogmus H, Favaro J, Strigel W (2004) Return on investment. IEEE Softw 21(3):18–22

    Google Scholar 

  • Floudas CA, Pardalos PM (2001) Encyclopedia of optimization, vol 1. Springer Science & Business Media, Berlin

    MATH  Google Scholar 

  • 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

    Google Scholar 

  • Garey MR, Johnson DS (2002) Computers and intractability, vol 29. W. H. Freeman, New York

    Google Scholar 

  • Gawande A (2010) Checklist manifesto, the (HB). Penguin Books India, New Delhi

    Google Scholar 

  • Geoffrion AM (1976) The purpose of mathematical programming is insight, not numbers. Interfaces 7(1):81–92

    Google Scholar 

  • Greer D, Ruhe G (2004) Software release planning: an evolutionary and iterative approach. Inf Softw Technol 46(4):243–253

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    MATH  Google Scholar 

  • Kano N, Seraku N, Takahashi F, Tsuji S (1984) Attractive quality and must-be quality. J Jan Soc Qual Control 14(2):39–48

    Google Scholar 

  • Kar AK (2016) Bio inspired computing–a review of algorithms and scope of applications. Expert Syst Appl 59:20–32

    Google Scholar 

  • Kistler T, Franz M (2003) Continuous program optimization: a case study. ACM Trans Program Lang Syst 25(4):500–548

    Google Scholar 

  • Kurgan LA, Musilek P (2006) A survey of knowledge discovery and data mining process models. Knowl Eng Rev 21(1):1–24

    Google Scholar 

  • 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

    Google Scholar 

  • Langdon WB, Harman M (2014) Optimizing existing software with genetic programming. IEEE Trans Evol Comput 19(1):118–135

    Google Scholar 

  • 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

    Google Scholar 

  • Liu Y, Khoshgoftaar TM, Seliya N (2010) Evolutionary optimization of software quality modeling with multiple repositories. IEEE Trans Softw Eng 36(6):852–864

    Google Scholar 

  • 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

    MathSciNet  MATH  Google Scholar 

  • Ma Y, Zhang C (2008) Quick convergence of genetic algorithm for QoS-driven web service selection. Comput Netw 52(5):1093–1104

    MATH  Google Scholar 

  • MacDonell SG, Shepperd MJ (2003) Combining techniques to optimize effort predictions in software project management. J Syst Softw 66(2):91–98

    Google Scholar 

  • 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

    Google Scholar 

  • Nayebi M, Ruhe G (2018) Asymmetric release planning – compromising satisfaction against dissatisfaction. IEEE Trans Softw Eng 45(9):839–857

    Google Scholar 

  • Ngo-The A, Ruhe G (2008) Optimized resource allocation for software release planning. IEEE Trans Softw Eng 35(1):109–123

    Google Scholar 

  • 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

    Google Scholar 

  • Praditwong K, Harman M, Yao X (2010) Software module clustering as a multi-objective search problem. IEEE Trans Softw Eng 37(2):264–282

    Google Scholar 

  • 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

    Google Scholar 

  • Rittel HWJ, Webber MM (1974) Wicked problems. Man-Made Futures 26(1):272–280

    Google Scholar 

  • 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

    Google Scholar 

  • Ruhe G (2010) Product release planning: methods, tools and applications. CRC Press, Boca Raton

    Google Scholar 

  • Ruhe G, Wohlin C (2014) Software project management: setting the context. In: Software project management in a changing world. Springer, Berlin, pp 1–24

    Google Scholar 

  • Ruhe G, et al (2004) Hybrid intelligence in software release planning. Int J Hybrid Intell Syst 1(1–2):99–110

    Google Scholar 

  • 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

    Google Scholar 

  • Saliu MO, Ruhe G (2007) Bi-objective release planning for evolving software systems. In: Proceedings ESEC/FSE. ACM, New York, pp 105–114

    Google Scholar 

  • Shearer C (2000) The CRISP-DM model: the new blueprint for data mining. J Data Warehouse 5(4):13–22

    Google Scholar 

  • Sheskin DJ (2003) Handbook of parametric and nonparametric statistical procedures. CRC Press, Boca Raton

    MATH  Google Scholar 

  • Singh Y, Kaur A, Suri B (2010) Test case prioritization using ant colony optimization. ACM SIGSOFT Softw Eng Notes 35(4):1–7

    Google Scholar 

  • 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

    Google Scholar 

  • Van Solingen R, Basili V, Caldiera G, Rombach HD (2002) Goal question metric (GQM) approach. Encycl Softw Eng 2:578–583

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • Wieringa RJ (2014) Design science methodology for information systems and software engineering. Springer, Berlin

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

  • 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

    Google Scholar 

Download references

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

Authors

Corresponding author

Correspondence to Günther Ruhe .

Editor information

Editors and Affiliations

Rights and permissions

Reprints and permissions

Copyright information

© 2020 Springer Nature Switzerland AG

About this chapter

Check for updates. Verify currency and authenticity via CrossMark

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)

Publish with us

Policies and ethics