Advertisement

Search Based Software Engineering

  • Mark Harman
Part of the Lecture Notes in Computer Science book series (LNCS, volume 3994)

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.

Keywords

Genetic Algorithm Software Engineer IEEE Computer Society Evolutionary Computation Metaheuristic Search 
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

  1. 1.
    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)CrossRefGoogle Scholar
  2. 2.
    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)CrossRefGoogle Scholar
  3. 3.
    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)CrossRefGoogle Scholar
  4. 4.
    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)CrossRefGoogle Scholar
  5. 5.
    Bagnall, A.J., Rayward-Smith, V.J., Whittley, I.M.: The next release problem. Information and Software Technology 43(14), 883–890 (2001)CrossRefGoogle Scholar
  6. 6.
    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)Google Scholar
  7. 7.
    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)Google Scholar
  8. 8.
    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)Google Scholar
  9. 9.
    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)Google Scholar
  10. 10.
    Burgess, C.J., Lefley, M.: Can genetic programming improve software effort estimation? A comparative evaluation. Information and Software Technology 43(14), 863–873 (2001)CrossRefGoogle Scholar
  11. 11.
    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)CrossRefGoogle Scholar
  12. 12.
    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)CrossRefGoogle Scholar
  13. 13.
    Dolado, J.J.: On the problem of the software cost function. Information and Software Technology 43(1), 61–72 (2001)CrossRefGoogle Scholar
  14. 14.
    Dolado, J.J.: A validation of the component-based method for software size estimation. IEEE Transactions on Software Engineering 26(10), 1006–1021 (2000)CrossRefGoogle Scholar
  15. 15.
    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)Google Scholar
  16. 16.
    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)Google Scholar
  17. 17.
    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)CrossRefGoogle Scholar
  18. 18.
    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)Google Scholar
  19. 19.
    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)CrossRefGoogle Scholar
  20. 20.
    Ferguson, R., Korel, B.: The chaining approach for software test data generation. ACM Transactions on Software Engineering and Methodology 5(1), 63–86 (1996)CrossRefGoogle Scholar
  21. 21.
    Glover, F.: Tabu search: A tutorial. Interfaces 20, 74–94 (1990)CrossRefGoogle Scholar
  22. 22.
    Goldberg, D.E.: Genetic Algorithms in Search, Optimization & Machine Learning. Addison-Wesley, Reading (1989)MATHGoogle Scholar
  23. 23.
    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)Google Scholar
  24. 24.
    Groß, H.-G.: A prediction system for evolutionary testability applied to dynamic execution time. Information and Software Technology 43(14), 855–862 (2001)CrossRefGoogle Scholar
  25. 25.
    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)Google Scholar
  26. 26.
    Gutjahr, W., Harman, M.: Focussed issue on search based software engineering. Journal Computers and Operations Research (2006) (to appear)Google Scholar
  27. 27.
    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)CrossRefGoogle Scholar
  28. 28.
    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)CrossRefGoogle Scholar
  29. 29.
    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)Google Scholar
  30. 30.
    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)Google Scholar
  31. 31.
    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)CrossRefGoogle Scholar
  32. 32.
    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)CrossRefGoogle Scholar
  33. 33.
    Harman, M., Jones, B.F.: Search based software engineering. Information and Software Technology 43(14), 833–839 (2001)CrossRefGoogle Scholar
  34. 34.
    Harman, M., Jones, B.F.: The seminal workshop: Reformulating software engineering as a metaheuristic search problem. Software Engineering Notes 26(6), 62–66 (2001)CrossRefGoogle Scholar
  35. 35.
    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)Google Scholar
  36. 36.
    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)Google Scholar
  37. 37.
    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)Google Scholar
  38. 38.
    Harman, M., Wegener, J.: Search based testing. In: 6th Metaheuristics International Conference (MIC 2005), Vienna, Austria (August 2005) (to appear)Google Scholar
  39. 39.
    Hart, E., Ross, P.: GAVEL - a new tool for genetic algorithm visualization. IEEE-EC 5, 335–348 (2001)Google Scholar
  40. 40.
    Holland, J.H.: Adaption in Natural and Artificial Systems. MIT Press, Ann Arbor (1975)MATHGoogle Scholar
  41. 41.
    Jones, B.F., Sthamer, H.-H., Eyres, D.E.: Automatic structural testing using genetic algorithms. The Software Engineering Journal 11, 299–306 (1996)CrossRefGoogle Scholar
  42. 42.
    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)CrossRefGoogle Scholar
  43. 43.
    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)Google Scholar
  44. 44.
    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)CrossRefGoogle Scholar
  45. 45.
    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)Google Scholar
  46. 46.
    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)Google Scholar
  47. 47.
    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)Google Scholar
  48. 48.
    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)Google Scholar
  49. 49.
    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)Google Scholar
  50. 50.
    McMinn, P.: Search-based software test data generation: A survey. Software Testing, Verification and Reliability 14(2), 105–156 (2004)CrossRefGoogle Scholar
  51. 51.
    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)Google Scholar
  52. 52.
    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)Google Scholar
  53. 53.
    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)Google Scholar
  54. 54.
    Schnier, T., Yao, X., Liu, P.: Digital filter design using multiple pareto fronts. Soft Computing 8(5), 332–343 (2004)Google Scholar
  55. 55.
    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)Google Scholar
  56. 56.
    Tracey, N., Clark, J., Mander, K., McDermid, J.: Automated test-data generation for exception conditions. Software Practice and Experience 30(1), 61–79 (2000)CrossRefGoogle Scholar
  57. 57.
    van Laarhoven, P.J.M., Aarts, E.H.L.: Simulated Annealing: Theory and Practice. Kluwer Academic Publishers, Dordrecht (1987)Google Scholar
  58. 58.
    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)Google Scholar
  59. 59.
    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)CrossRefMATHGoogle Scholar
  60. 60.
    Wegener, J., Sthamer, H., Jones, B.F., Eyres, D.E.: Testing real-time systems using genetic algorithms. Software Quality 6, 127–135 (1997)CrossRefGoogle Scholar
  61. 61.
    Winter, G., Periaux, J., Galan, M., Cuesta, P.: Genetic Algorithms in Engineering and Computer Science. Wiley, Chichester (1995)Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2006

Authors and Affiliations

  • Mark Harman
    • 1
  1. 1.King’s College LondonLondon

Personalised recommendations