Abstract
This paper provides a motivation for the application of search based optimization to Software Engineering, an area that has come to be known as Search Based Software Engineering (SBSE). SBSE techniques have already been applied to many problems throughout the Software Engineering lifecycle, with new application domains emerging on a regular basis. The approach is very generic and therefore finds wide application in Software Engineering. It facilitates automated and semi-automated solutions in situations typified by large complex problem spaces with multiple competing and conflicting objectives. Previous work has already discussed, in some detail, the advantages of the SBSE approach for Software Engineering. This paper summarises previous work and goes further, by arguing that Software Engineering provides the ideal set of application problems for which optimization algorithms are supremely well suited.
Chapter PDF
Similar content being viewed by others
Keywords
References
Ali, S., Briand, L.C., Hemmati, H., Panesar-Walawege, R.K.: A systematic review of the application and empirical investigation of search-based test-case generation. IEEE Transactions on Software Engineering (to appear, 2010)
Alba, E., Chicano, F.: Testing with Evolutionary Strategies. In: Guelfi, N., Savidis, A. (eds.) RISE 2005. LNCS, vol. 3943, pp. 50–65. Springer, Heidelberg (2006)
Alba, E., Chicano, F.: Software Project Management with GAs. Information Sciences 177(11), 2380–2401 (2007)
Alba, E., Chicano, F.: Observations in using Parallel and Sequential Evolutionary Algorithms for Automatic Software Testing. Computers & Operations Research 35(10), 3161–3183 (2008)
Antoniol, G., Di Penta, M., Harman, M.: Search-based Techniques for Optimizing Software Project Resource Allocation. In: Deb, K., et al. (eds.) GECCO 2004. LNCS, vol. 3103, pp. 1425–1426. Springer, Heidelberg (2004)
Afzal, W., Torkar, R., Feldt, R.: A systematic review of search-based testing for non-functional system properties. Information and Software Technology 51(6), 957–976 (2009)
Ramón Alvarez-Valdes, E., Crespo, J.M.: A Scatter Search Algorithm for Project Scheduling under Partially Renewable Resources. Journal of Heuristics 12(1-2), 95–113 (2006)
Arcuri, A., Yao, X.: A Novel Co-evolutionary Approach to Automatic Software Bug Fixing. In: Proceedings of the IEEE Congress on Evolutionary Computation (CEC 2008), Hongkong, China, June 1-6, pp. 162–168. IEEE Computer Society, Los Alamitos (2008)
Briand, L.C., Labiche, Y., Shousha, M.: Stress Testing Real-Time Systems with Genetic Algorithms. In: Proceedings of the 2005 Conference on Genetic and Evolutionary Computation (GECCO 2005), Washington, D.C., USA, June 25-29, pp. 1021–1028. ACM, New York (2005)
Bottaci, L.: Instrumenting Programs with Flag Variables for Test Data Search by Genetic Algorithms. In: Proceedings of the 2002 Conference on Genetic and Evolutionary Computation (GECCO 2002), New York, USA, July 9-13, pp. 1337–1342. Morgan Kaufmann Publishers, San Francisco (2002)
Bagnall, A.J., Rayward-Smith, V.J., Whittley, I.M.: The Next Release Problem. Information and Software Technology 43(14), 883–890 (2001)
Baresel, A., Sthamer, H., Schmidt, M.: Fitness Function Design to Improve Evolutionary Structural Testing. In: Proceedings of the 2002 Conference on Genetic and Evolutionary Computation (GECCO 2002), New York, USA, July 9-13, pp. 1329–1336. Morgan Kaufmann, San Francisco (2002)
Blanco, R., Tuya, J., Daz, E., Adenso Daz, B.: A Scatter Search Approach for Automated Branch Coverage in Software Testing. International Journal of Engineering Intelligent Systems (EIS) 15(3), 135–142 (2007)
Bentley, P.J., Wakefield, J.P.: Generic representation of solid geometry for genetic search. Microcomputers in Civil Engineering 11(3), 153–161 (1996)
Chang, C.K., Chao, C., Hsieh, S.-Y., Alsalqan, Y.: SPMNet: a Formal Methodology for Software Management. In: Proceedings of the 18th Annual International Computer Software and Applications Conference (COMPSAC 1994), Taipei, Taiwan, November 9-11, p. 57. IEEE, Los Alamitos (1994)
Clark, J., Dolado, J.J., Harman, M., Hierons, R.M., Jones, B., Lumkin, M., Mitchell, B., Mancoridis, S., Rees, K., Roper, M., Shepperd, M.: Reformulating software engineering as a search problem. IEE Proceedings — Software 150(3), 161–175 (2003)
Cordón, O., Herrera, F., Sánchez, L.: Evolutionary learning processes for data analysis in electrical engineering applications. In: Quagliarella, D., Périaux, J., Poloni, C., Winter, G. (eds.) Genetic Algorithms and Evolution Strategy in Engineering and Computer Science, pp. 205–224. John Wiley and Sons, Chichester (1998)
Darlington, J., Burstall, R.M.: A tranformation system for developing recursive programs. Journal of the ACM 24(1), 44–67 (1977)
Díaz, E., Tuya, J., Blanco, R., Dolado, J.J.: A Tabu Search Algorithm for Structural Software Testing. Computers & Operations Research 35(10), 3052–3072 (2008)
Foster, I.: Designing and building parallel programs:Concepts and tools for parallel software. Addison-Wesley, Reading (1995)
Guo, Q., Hierons, R.M., Harman, M., Derderian, K.: Constructing Multiple Unique Input/Output Sequences using Evolutionary Optimisation Techniques. IEE Proceedings - Software 152(3), 127–140 (2005)
Harman, M.: Automated test data generation using search based software engineering (keynote). In: 2nd Workshop on Automation of Software Test (AST 2007) at the 29th International Conference on Software Engineering (ICSE 2007), Minneapolis, USA (2007)
Harman, M.: The current state and future of search based software engineering. In: Briand, L., Wolf, A. (eds.) Future of Software Engineering 2007, pp. 342–357. IEEE Computer Society Press, Los Alamitos (2007)
Harman, M.: Search based software engineering for program comprehension (keynote). In: 15th International Conference on Program Comprehension (ICPC 2007), Banff, Canada (2007)
Harman, M.: The Current State and Future of Search Based Software Engineering. In: Briand, L., Wolf, A. (eds.) Proceedings of International Conference on Software Engineering / Future of Software Engineering 2007 (ICSE/FOSE 2007), Minneapolis, Minnesota, USA, May 20-26, pp. 342–357. IEEE Computer Society, Los Alamitos (2007)
Harman, M., Clark, J.A.: Metrics Are Fitness Functions Too. In: Proceedings of the 10th IEEE International Symposium on Software Metrics (METRICS 2004), Chicago, USA, September 11-17, pp. 58–69. IEEE Computer Society, Los Alamitos (2004)
Harman, M., Hu, L., Hierons, R.M., Wegener, J., Sthamer, H., Baresel, A., Roper, M.: Testability Transformation. IEEE Transaction on Software Engineering 30(1), 3–16 (2004)
Harman, M., Hierons, R., Proctor, M.: A New Representation and Crossover Operator for Search-based Optimization of Software Modularization. In: Proceedings of the 2002 Conference on Genetic and Evolutionary Computation (GECCO 2002), New York, USA, July 9-13, pp. 1351–1358. Morgan Kaufmann Publishers, San Francisco (2002)
Harman, M., Jones, B.F.: Search-based Software Engineering. Information & Software Technology 43(14), 833–839 (2001)
Harman, M., Mansouri, A., Zhang, Y.: Search based software engineering: A comprehensive analysis and review of trends techniques and applications. Technical Report TR-09-03, Department of Computer Science, King’s College London (April 2009)
Harman, M., Tratt, L.: Pareto Optimal Search Based Refactoring at the Design Level. In: Proceedings of the 9th annual Conference on Genetic and Evolutionary Computation (GECCO 2007), London, England, July 7-11, pp. 1106–1113. ACM, New York (2007)
Jones, B.F., Eyres, D.E., Sthamer, H.-H.: A Strategy for using Genetic Algorithms to Automate Branch and Fault-based Testing. Computer Journal 41(2), 98–107 (1998)
Korel, B., Harman, M., Chung, S., Apirukvorapinit, P., Gupta, R., Zhang, Q.: Data Dependence Based Testability Transformation in Automated Test Generation. In: Proceedings of the 16th IEEE International Symposium on Software Reliability Engineering (ISSRE 2005), Chicago, Illinios, USA, November 2005, pp. 245–254. IEEE Computer Society, Los Alamitos (2005)
Kirsopp, C., Shepperd, M., Hart, J.: Search Heuristics, Case-based Reasoning And Software Project Effort Prediction. In: Proceedings of the 2002 Conference on Genetic and Evolutionary Computation (GECCO 2002), New York, July 9-13, pp. 1367–1374. Morgan Kaufmann Publishers, San Francisco (2002)
Langdon, W.B., Banzhaf, W.: A SIMD interpreter for genetic programming on GPU graphics cards. In: O’Neill, M., Vanneschi, L., Gustafson, S., Esparcia Alcázar, A.I., De Falco, I., Della Cioppa, A., Tarantino, E. (eds.) EuroGP 2008. LNCS, vol. 4971, pp. 73–85. Springer, Heidelberg (2008)
Lefticaru, R., Ipate, F.: Functional Search-based Testing from State Machines. In: Proceedings of the First International Conference on Software Testing, Verfication and Validation (ICST 2008), Lillehammer, Norway, April 9-11, pp. 525–528. IEEE Computer Society, Los Alamitos (2008)
Labossiere, J.E., Turrkan, N.: On the optimization of the tensor polynomial failure theory with a genetic algorithm. Transactions of the Canadian Society for Mechanical Engineering 16(3-4), 251–265 (1992)
McMinn, P.: Search-based Software Test Data Generation: A Survey. Software Testing, Verification and Reliability 14(2), 105–156 (2004)
McMinn, P., Harman, M., Binkley, D., Tonella, P.: The Species per Path Approach to Search-based Test Data Generation. In: Proceedings of the 2006 International Symposium on Software Testing and Analysis (ISSTA 2006), Portland, Maine, USA, July 17-20, pp. 13–24. ACM, New York (2006)
Mitchell, B.S., Mancoridis, S.: On the Automatic Modularization of Software Systems using the Bunch Tool. IEEE Transactions on Software Engineering 32(3), 193–208 (2006)
O’Keeffe, M., Ó Cinnéide, M.: Search-based Software Maintenance. In: Proceedings of the Conference on Software Maintenance and Reengineering (CSMR 2006), Bari, Italy, March 22-24, pp. 249–260. IEEE Computer Society, Los Alamitos (2006)
Poli, R., Cagnoni, S., Valli, G.: Genetic design of optimum linear and nonlinear QRS detectors. IEEE Transactions on Biomedical Engineering 42(11), 1137–1141 (1995)
Räihä, O.: A Survey on Search-Based Software Design. Technical Report D-2009-1, Department of Computer Sciences University of Tampere (March 2009)
Sagarna, R.: An Optimization Approach for Software Test Data Generation: Applications of Estimation of Distribution Algorithms and Scatter Search. PhD thesis, University of the Basque Country, San Sebastian, Spain (January 2007)
Seng, O., Bauer, M., Biehl, M., Pache, G.: Search-based Improvement of Subsystem Decompositions. In: Proceedings of the 2005 Conference on Genetic and Evolutionary Computation (GECCO 2005), Washington, D.C., USA, June 25-29, pp. 1045–1051. ACM, New York (2005)
Shepperd, M.J.: Foundations of software measurement. Prentice Hall, Englewood Cliffs (1995)
Sagarna, R., Lozano, J.A.: Dynamic Search Space Transformations for Software Test Data Generation. Computational Intelligence 24(1), 23–61 (2008)
Tracey, N., Clark, J., Mander, K.: The Way Forward for Unifying Dynamic Test-Case Generation: the Optimisation-based Approach. In: Proceedings of the IFIP International Workshop on Dependable Computing and Its Applications (DCIA 1998), Johannesburg, South Africa, January 12-14, pp. 169–180. University of the Witwatersrand (1998)
Wegener, J., Baresel, A., Sthamer, H.: Evolutionary Test Environment for Automatic Structural Testing. Information and Software Technology Special Issue on Software Engineering using Metaheuristic Innovative Algorithms 43(14), 841–854 (2001)
Weimer, W., Nguyen, T.V., Goues, C.L., Forrest, S.: Automatically finding patches using genetic programming. In: International Conference on Software Engineerign (ICSE 2009), Vancouver, Canada, pp. 364–374 (2009)
Windisch, A., Wappler, S., Wegener, J.: Applying Particle Swarm Optimization to Software Testing. In: Proceedings of the 9th annual Conference on Genetic and Evolutionary Computation (GECCO 2007), London, England, July 7-11, pp. 1121–1128. ACM, New York (2007)
Xanthakis, S., Ellis, C., Skourlas, C., Le Gall, A., Katsikas, S., Karapoulios, K.: Application of Genetic Algorithms to Software Testing. In: Proceedings of the 5th International Conference on Software Engineering and Applications, Toulouse, France, December 7-11, pp. 625–636 (1992)
Zhang, Y., Finkelstein, A., Harman, M.: Search Based Requirements Optimisation: Existing Work & Challenges. In: Paech, B., Rolland, C. (eds.) REFSQ 2008. LNCS, vol. 5025, pp. 88–94. Springer, Heidelberg (2008)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2010 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Harman, M. (2010). Why the Virtual Nature of Software Makes It Ideal for Search Based Optimization. In: Rosenblum, D.S., Taentzer, G. (eds) Fundamental Approaches to Software Engineering. FASE 2010. Lecture Notes in Computer Science, vol 6013. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-642-12029-9_1
Download citation
DOI: https://doi.org/10.1007/978-3-642-12029-9_1
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-642-12028-2
Online ISBN: 978-3-642-12029-9
eBook Packages: Computer ScienceComputer Science (R0)