Why the Virtual Nature of Software Makes It Ideal for Search Based Optimization

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.

[1]  Bryan F. Jones,et al.  A Strategy for Using Genetic Algorithms to Automate Branch and Fault-Based Testing , 1998, Comput. J..

[2]  Matthias Biehl,et al.  Search-based improvement of subsystem decompositions , 2005, GECCO '05.

[3]  Martin Shepperd,et al.  Foundations of software measurement , 1995 .

[4]  Riccardo Poli,et al.  Genetic and Evolutionary Computation – GECCO 2004 , 2004, Lecture Notes in Computer Science.

[5]  Joachim Wegener,et al.  Evolutionary test environment for automatic structural testing , 2001, Inf. Softw. Technol..

[6]  Massimo Felici,et al.  Trust Strategies and Policies in Complex Socio-technical Safety-Critical Domains: An Analysis of the Air Traffic Management Domain , 2006, RISE.

[7]  R. Poli,et al.  Genetic design of optimum linear and nonlinear QRS detectors , 1995, IEEE Transactions on Biomedical Engineering.

[8]  Mark Harman,et al.  Search Based Software Engineering for Program Comprehension (keynote) , 2007 .

[9]  Outi Räihä,et al.  A survey on search-based software design , 2010, Comput. Sci. Rev..

[10]  Mark Harman,et al.  Constructing multiple unique input/output sequences using metaheuristic optimisation techniques , 2005, IEE Proc. Softw..

[11]  Mark Harman,et al.  The Current State and Future of Search Based Software Engineering , 2007, Future of Software Engineering (FOSE '07).

[12]  John A. Clark,et al.  Metrics are fitness functions too , 2004 .

[13]  Michael Mikolajczak,et al.  Designing And Building Parallel Programs: Concepts And Tools For Parallel Software Engineering , 1997, IEEE Concurrency.

[14]  Enrique Alba,et al.  Software Testing with Evolutionary Strategies , 2005, RISE.

[15]  José Javier Dolado,et al.  A tabu search algorithm for structural software testing , 2008, Comput. Oper. Res..

[16]  Yuanyuan Zhang,et al.  Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications , 2009 .

[17]  Mark Harman Automated Test Data Generation using Search Based Software Engineering , 2007, Second International Workshop on Automation of Software Test (AST '07).

[18]  Xin Yao,et al.  A novel co-evolutionary approach to automatic software bug fixing , 2008, 2008 IEEE Congress on Evolutionary Computation (IEEE World Congress on Computational Intelligence).

[19]  Wasif Afzal,et al.  A systematic review of search-based testing for non-functional system properties , 2009, Inf. Softw. Technol..

[20]  Phil McMinn,et al.  Search‐based software test data generation: a survey , 2004, Softw. Test. Verification Reliab..

[21]  Mark Harman,et al.  Reformulating software engineering as a search problem , 2003 .

[22]  Carl K. Chang,et al.  SPMNet: a formal methodology for software management , 1994, Proceedings Eighteenth Annual International Computer Software and Applications Conference (COMPSAC 94).

[23]  Leonardo Bottaci Instrumenting Programs With Flag Variables For Test Data Search By Genetic Algorithms , 2002, GECCO.

[24]  Mark Harman,et al.  A New Representation And Crossover Operator For Search-based Optimization Of Software Modularization , 2002, GECCO.

[25]  Mark Kent O'Keeffe,et al.  Search-based software maintenance , 2006, Conference on Software Maintenance and Reengineering (CSMR'06).

[26]  Claire Le Goues,et al.  Automatically finding patches using genetic programming , 2009, 2009 IEEE 31st International Conference on Software Engineering.

[27]  Ramón Alvarez-Valdés,et al.  A scatter search algorithm for project scheduling under partially renewable resources , 2006, J. Heuristics.

[28]  Eugenia Díaz,et al.  A scatter search approach for automated branch coverage in software testing , 2007 .

[29]  Mark Harman Automated Test Data Generation using Search Based Software Engineering (keynote) , 2007, ICSE 2007.

[30]  William B. Langdon,et al.  A SIMD Interpreter for Genetic Programming on GPU Graphics Cards , 2007, EuroGP.

[31]  Enrique Alba,et al.  Observations in using parallel and sequential evolutionary algorithms for automatic software testing , 2008, Comput. Oper. Res..

[32]  Mark Harman,et al.  Search-based software engineering , 2001, Inf. Softw. Technol..

[33]  Mark Harman,et al.  The species per path approach to SearchBased test data generation , 2006, ISSTA '06.

[34]  Mark Harman,et al.  Search Based Software Engineering for Program Comprehension , 2007, 15th IEEE International Conference on Program Comprehension (ICPC '07).

[35]  Ian T. Foster,et al.  Designing and building parallel programs - concepts and tools for parallel software engineering , 1995 .

[36]  Giuliano Antoniol,et al.  Search-Based Techniques for Optimizing Software Project Resource Allocation , 2004, GECCO.

[37]  Victor J. Rayward-Smith,et al.  The next release problem , 2001, Inf. Softw. Technol..

[38]  Joachim Wegener,et al.  Applying particle swarm optimization to software testing , 2007, GECCO '07.

[39]  Lionel C. Briand,et al.  Stress testing real-time systems with genetic algorithms , 2005, GECCO '05.

[40]  Mark Harman,et al.  Testability transformation , 2004, IEEE Transactions on Software Engineering.

[41]  José Antonio Lozano,et al.  DYNAMIC SEARCH SPACE TRANSFORMATIONS FOR SOFTWARE TEST DATA GENERATION , 2008, Comput. Intell..

[42]  Yuanyuan Zhang,et al.  Search Based Requirements Optimisation: Existing Work and Challenges , 2008, REFSQ.

[43]  R. Gupta,et al.  Data dependence based testability transformation in automated test generation , 2005, 16th IEEE International Symposium on Software Reliability Engineering (ISSRE'05).

[44]  John A. Clark,et al.  The Way Forward for Unifying Dynamic Test Case Generation: The Optimisation-based Approach , 1998 .

[45]  Ramón Sagarna Almandoz An optimization approach for software test data generation: applications of estimation of distribution algorithms and scatter search , 2007 .

[46]  P. Labossière,et al.  ON THE OPTIMIZATION OF THE TENSOR POLYNOMIAL FAILURE THEORY WITH A GENETIC ALGORITHM , 1992 .

[47]  Peter J. Bentley,et al.  Generic Representation of Solid-Object Geometry for Genetic Search , 1996 .

[48]  John A. Clark,et al.  Formulating software engineering as a search problem , 2003, IEE Proc. Softw..

[49]  Enrique Alba,et al.  Software project management with GAs , 2007, Inf. Sci..

[50]  Baowen Xu,et al.  Application of Genetic Algorithms in Software Testing , 2007 .

[51]  Mark Harman,et al.  Pareto optimal search based refactoring at the design level , 2007, GECCO '07.

[52]  John Darlington,et al.  A Transformation System for Developing Recursive Programs , 1977, J. ACM.

[53]  Lionel C. Briand,et al.  A Systematic Review of the Application and Empirical Investigation of Search-Based Test Case Generation , 2010, IEEE Transactions on Software Engineering.

[54]  Martin J. Shepperd,et al.  Search Heuristics, Case-based Reasoning And Software Project Effort Prediction , 2002, GECCO.

[55]  Florentin Ipate,et al.  Functional Search-based Testing from State Machines , 2008, 2008 1st International Conference on Software Testing, Verification, and Validation.

[56]  André Baresel,et al.  Fitness Function Design To Improve Evolutionary Structural Testing , 2002, GECCO.

[57]  Spiros Mancoridis,et al.  On the automatic modularization of software systems using the Bunch tool , 2006, IEEE Transactions on Software Engineering.