Abstract
This paper was written to accompany the author’s keynote talk for the Workshop on Computational Science in Software Engineering held in conjunction with International Conference in Computational Science 2006 in Reading, UK. The paper explains how software engineering activities can be viewed as a search for solutions that balance many competing constraints to achieve an optimal or near optimal result.
The aim of Search Based Software Engineering (SBSE) research is to move software engineering problems from human-based search to machine-based search, using a variety of techniques from the metaheuristic search, operations research and evolutionary computation paradigms. As a result, human effort moves up the abstraction chain to focus on guiding the automated search, rather than performing it. The paper briefly describes the search based approach, providing pointers to the literature.
Chapter PDF
Similar content being viewed by others
Keywords
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.
References
Adamopoulos, K., Harman, M., Hierons, R.M.: Mutation testing using genetic algorithms: A co-evolution approach. In: Deb, K., et al. (eds.) GECCO 2004. LNCS, vol. 3103, pp. 1338–1349. Springer, Heidelberg (2004)
Aguilar-Ruiz, J., Ramos, I., Riquelme, J.C., Toro, M.: An evolutionary approach to estimating software development projects. Information and Software Technology 43(14), 875–882 (2001)
Antoniol, G., Di Penta, M., Harman, M.: A robust search–based approach to project management in the presence of abandonment, rework, error and uncertainty. In: 10th International Software Metrics Symposium (METRICS 2004), Chicago, Illinois, USA, September 2004, pp. 172–183. IEEE Computer Society Press, Los Alamitos (2004)
Antoniol, G., Di Penta, M., Harman, M.: Search-based techniques applied to optimization of project planning for a massive maintenance project. In: 21st IEEE International Conference on Software Maintenance (ICSM 2005), Budapest, Hungary, pp. 240–249. IEEE Computer Society Press, Los Alamitos (2005)
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., Binkley, D.W., Harman, M., Korel, B.: Evolutionary testing in the presence of loop–assigned flags: A testability transformation approach. In: International Symposium on Software Testing and Analysis (ISSTA 2004), Omni Parker House Hotel, Boston, Massachusetts, July 2004, pp. 108–118 (2004); Appears in Software Engineering Notes 29(4)
Baresel, A., Sthamer, H., Schmidt, M.: Fitness function design to improve evolutionary structural testing. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, New York, July 9-13, pp. 1329–1336. Morgan Kaufmann Publishers, San Francisco (2002)
Van Belle, T., Ackley, D.H.: Code factoring and the evolution of evolvability. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, New York, July 9-13, pp. 1383–1390. Morgan Kaufmann Publishers, San Francisco (2002)
Bottaci, L.: Instrumenting programs with flag variables for test data search by genetic algorithms. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, New York, July 9-13, pp. 1337–1342. Morgan Kaufmann Publishers, San Francisco (2002)
Burgess, C.J., Lefley, M.: Can genetic programming improve software effort estimation? A comparative evaluation. Information and Software Technology 43(14), 863–873 (2001)
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)
Derderian, K., Quo, Q., Harman, M., Hierons, R.: Computing unique input/output sequences using genetic algorithms. In: Petrenko, A., Ulrich, A. (eds.) FATES 2003. LNCS, vol. 2931, pp. 164–177. Springer, Heidelberg (2004)
Dolado, J.J.: On the problem of the software cost function. Information and Software Technology 43(1), 61–72 (2001)
Dolado, J.J.: A validation of the component-based method for software size estimation. IEEE Transactions on Software Engineering 26(10), 1006–1021 (2000)
Doval, D., Mancoridis, S., Mitchell, B.S.: Automatic clustering of software systems using a genetic algorithm. In: International Conference on Software Tools and Engineering Practice (STEP 1999), Pittsburgh, PA, August 30 - September 2 (1999)
Emer, M.C.F.P., Vergilio, S.R.: GPTesT: A testing tool based on genetic programming. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, New York, July 9-13, pp. 1343–1350. Morgan Kaufmann Publishers, San Francisco (2002)
Fatiregun, D., Harman, M., Hierons, R.: Evolving transformation sequences using genetic algorithms. In: 4th International Workshop on Source Code Analysis and Manipulation (SCAM 2004), Chicago, Illinois, USA, September 2004, pp. 65–74. IEEE Computer Society Press, Los Alamitos (2004)
Fatiregun, D., Harman, M., Hierons, R.: Search-based amorphous slicing. In: 12th International Working Conference on Reverse Engineering (WCRE 2005), Carnegie Mellon University, Pittsburgh, Pennsylvania, USA (November 2005) (to appear)
Fatiregun, D., Harman, M., Hierons, R.: Search based transformations. In: Cantú-Paz, E., Foster, J.A., Deb, K., Davis, L., Roy, R., O’Reilly, U.-M., Beyer, H.-G., Kendall, G., Wilson, S.W., Harman, M., Wegener, J., Dasgupta, D., Potter, M.A., Schultz, A., Dowsland, K.A., Jonoska, N., Miller, J., Standish, R.K. (eds.) GECCO 2003. LNCS, vol. 2724, pp. 2511–2512. Springer, Heidelberg (2003)
Ferguson, R., Korel, B.: The chaining approach for software test data generation. ACM Transactions on Software Engineering and Methodology 5(1), 63–86 (1996)
Glover, F.: Tabu search: A tutorial. Interfaces 20, 74–94 (1990)
Goldberg, D.E.: Genetic Algorithms in Search, Optimization & Machine Learning. Addison-Wesley, Reading (1989)
Groß, H.G., Jones, B.F., Eyres, D.E.: Structural performance measure of evolutionary testing applied to worst-case timing of real-time systems. IEE Proceedings Software (2), 25–30 (2000)
Groß, H.-G.: A prediction system for evolutionary testability applied to dynamic execution time. Information and Software Technology 43(14), 855–862 (2001)
Groß, H.-G., Mayer, N.: Evolutionary testing in component-based real-time system construction. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, New York, July 9-13, p. 1393. Morgan Kaufmann Publishers, San Francisco (2002)
Gutjahr, W., Harman, M.: Focussed issue on search based software engineering. Journal Computers and Operations Research (2006) (to appear)
Harman, M., Clark, J.: Metrics are fitness functions too. In: 10th International Software Metrics Symposium (METRICS 2004), Chicago, Illinois, USA, September 2004, pp. 58–69. IEEE Computer Society Press, Los Alamitos (2004)
Harman, M., Fox, C., Hierons, R.M., Hu, L., Danicic, S., Wegener, J.: Vada: A transformation-based system for variable dependence analysis. In: IEEE International Workshop on Source Code Analysis and Manipulation (SCAM 2002), Montreal, Canada, October 2002, pp. 55–64. IEEE Computer Society Press, Los Alamitos (2002) (Voted best paper by attendees)
Harman, M., Hierons, R., Proctor, M.: 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, July 9-13, pp. 1351–1358. Morgan Kaufmann Publishers, San Francisco (2002)
Harman, M., Hu, L., Hierons, R., Baresel, A., Sthamer, H.: Improving evolutionary testing by flag removal (‘best at GECCO’ award winner). In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, New York, July 9-13, pp. 1359–1366. Morgan Kaufmann Publishers, San Francisco (2002)
Harman, M., Hu, L., Hierons, R.M., Wegener, J., Sthamer, H., Baresel, A., Roper, M.: Testability transformation. IEEE Transactions on Software Engineering 30(1), 3–16 (2004)
Harman, M., Jones, B.: SEMINAL: Software engineering using metaheuristic innovative algorithms. In: 23rd International Confernece on Software Engineering (ICSE 2001), Toronto, Canada, May 2001, pp. 762–763. IEEE Computer Society Press, Los Alamitos (2001)
Harman, M., Jones, B.F.: Search based software engineering. Information and Software Technology 43(14), 833–839 (2001)
Harman, M., Jones, B.F.: The seminal workshop: Reformulating software engineering as a metaheuristic search problem. Software Engineering Notes 26(6), 62–66 (2001)
Harman, M., Swift, S., Mahdavi, K.: An empirical study of the robustness of two module clustering fitness functions. In: Genetic and Evolutionary Computation Conference (GECCO 2005), Washington DC, USA, June 2005, Association for Computer Machinery (2005) (to appear)
Harman, M., Wegener, J.: Evolutionary testing. In: Cantú-Paz, E., Foster, J.A., Deb, K., Davis, L., Roy, R., O’Reilly, U.-M., Beyer, H.-G., Kendall, G., Wilson, S.W., Harman, M., Wegener, J., Dasgupta, D., Potter, M.A., Schultz, A., Dowsland, K.A., Jonoska, N., Miller, J., Standish, R.K. (eds.) GECCO 2003. LNCS, vol. 2724. Springer, Heidelberg (2003)
Harman, M., Wegener, J.: Getting results with search–based software engineering. In: 26th IEEE International Conference and Software Engineering (ICSE 2004), Edinburgh, UK. IEEE Computer Society Press, Los Alamitos (2004) (to Appear)
Harman, M., Wegener, J.: Search based testing. In: 6th Metaheuristics International Conference (MIC 2005), Vienna, Austria (August 2005) (to appear)
Hart, E., Ross, P.: GAVEL - a new tool for genetic algorithm visualization. IEEE-EC 5, 335–348 (2001)
Holland, J.H.: Adaption in Natural and Artificial Systems. MIT Press, Ann Arbor (1975)
Jones, B.F., Sthamer, H.-H., Eyres, D.E.: Automatic structural testing using genetic algorithms. The Software Engineering Journal 11, 299–306 (1996)
Jones, B.F., Eyres, D.E., Sthamer, H.H.: A strategy for using genetic algorithms to automate branch and fault-based testing. The Computer Journal 41(2), 98–107 (1998)
Kim, Y.-H., Moon, B.-R.: Visualization of the fitness landscape, A steady-state genetic search, and schema traces. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, New York, July 9-13, p. 686. Morgan Kaufmann Publishers, San Francisco (2002)
Kim, Y.-H., Moon, B.-R.: New usage of sammon’s mapping for genetic visualization. In: Cantú-Paz, E., Foster, J.A., Deb, K., Davis, L., Roy, R., O’Reilly, U.-M., Beyer, H.-G., Kendall, G., Wilson, S.W., Harman, M., Wegener, J., Dasgupta, D., Potter, M.A., Schultz, A., Dowsland, K.A., Jonoska, N., Miller, J., Standish, R.K. (eds.) GECCO 2003. LNCS, vol. 2723, pp. 1136–1147. Springer, Heidelberg (2003)
Kirsopp, C., Shepperd, M., Hart, J.: Search heuristics, case-based reasoning and software project effort prediction. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, New York, July 9-13, pp. 1367–1374. Morgan Kaufmann Publishers, San Francisco (2002)
Linden, D.S.: Innovative antenna design using genetic algorithms. In: Corne, D.W., Bentley, P.J. (eds.) Creative Evolutionary Systems, ch. 20. Elsevier, Amsterdam (2002)
Mahdavi, K., Harman, M., Hierons, R.M.: A multiple hill climbing approach to software module clustering. In: IEEE International Conference on Software Maintenance (ICSM 2003), Amsterdam, Netherlands, September 2003, pp. 315–324. IEEE Computer Society Press, Los Alamitos (2003)
Mancoridis, S., Mitchell, B.S., Rorres, C., Chen, Y.-F., Gansner, E.R.: Using automatic clustering to produce high-level system organizations of source code. In: International Workshop on Program Comprehension (IWPC 1998), Ischia, Italy, pp. 45–53. IEEE Computer Society Press, Los Alamitos (1998)
McMinn, P., Binkley, D., Harman, M.: Testability transformation for efficient automated test data search in the presence of nesting. In: UK Software Testing Workshop (UK Test 2005), Sheffield, UK (September 2005)
McMinn, P.: Search-based software test data generation: A survey. Software Testing, Verification and Reliability 14(2), 105–156 (2004)
Mitchell, B.S., Mancoridis, S.: Using heuristic search techniques to extract design abstractions from source code. In: GECCO 2002: Proceedings of the Genetic and Evolutionary Computation Conference, New York, July 9-13, pp. 1375–1382. Morgan Kaufmann Publishers, San Francisco (2002)
Mueller, F., Wegener, J.: A comparison of static analysis and evolutionary testing for the verification of timing constraints. In: 4th IEEE Real-Time Technology and Applications Symposium (RTAS 1998), Washington, Brussels, Tokyo, June 1998, pp. 144–154. IEEE, Los Alamitos (1998)
Pohlheim, H.: Visualization of evolutionary algorithms - set of standard techniques and multidimensional visualization. In: Banzhaf, W., Daida, J., Eiben, A.E., Garzon, M.H., Honavar, V., Jakiela, M., Smith, R.E. (eds.) Proceedings of the Genetic and Evolutionary Computation Conference, Orlando, Florida, USA, July 13-17, vol. 1, pp. 533–540. Morgan Kaufmann, San Francisco (1999)
Schnier, T., Yao, X., Liu, P.: Digital filter design using multiple pareto fronts. Soft Computing 8(5), 332–343 (2004)
Tracey, N., Clark, J., Mander, K.: Automated program flaw finding using simulated annealing. In: International Symposium on Software Testing and Analysis, March 1998, pp. 73–81. ACM/SIGSOFT (1998)
Tracey, N., Clark, J., Mander, K., McDermid, J.: Automated test-data generation for exception conditions. Software Practice and Experience 30(1), 61–79 (2000)
van Laarhoven, P.J.M., Aarts, E.H.L.: Simulated Annealing: Theory and Practice. Kluwer Academic Publishers, Dordrecht (1987)
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)
Wegener, J., Mueller, F.: A comparison of static analysis and evolutionary testing for the verification of timing constraints. Real-Time Systems 21(3), 241–268 (2001)
Wegener, J., Sthamer, H., Jones, B.F., Eyres, D.E.: Testing real-time systems using genetic algorithms. Software Quality 6, 127–135 (1997)
Winter, G., Periaux, J., Galan, M., Cuesta, P.: Genetic Algorithms in Engineering and Computer Science. Wiley, Chichester (1995)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2006 Springer-Verlag Berlin Heidelberg
About this paper
Cite this paper
Harman, M. (2006). Search Based Software Engineering. In: Alexandrov, V.N., van Albada, G.D., Sloot, P.M.A., Dongarra, J. (eds) Computational Science – ICCS 2006. ICCS 2006. Lecture Notes in Computer Science, vol 3994. Springer, Berlin, Heidelberg. https://doi.org/10.1007/11758549_100
Download citation
DOI: https://doi.org/10.1007/11758549_100
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-34385-1
Online ISBN: 978-3-540-34386-8
eBook Packages: Computer ScienceComputer Science (R0)