Search-based software engineering
Search-based software engineering (SBSE) is an approach to apply metaheuristic search techniques like genetic algorithms, simulated annealing and tabu search to software engineering problems. It is inspired by the observation that many activities in software engineering can be formulated as optimization problems. Due to the computational complexity of these problems, exact optimization techniques of operations research like linear programming or dynamic programming are mostly impractical for large scale software engineering problems. Because of this, researchers and practitioners have used metaheuristic search techniques to find near optimal or good-enough solutions.
Brief history
One of the earliest attempts in applying optimization to a software engineering problem was reported by Webb Miller and David Spooner in 1976 in the area of software testing.[1] Xanthakis et al.[2] apply for the first time a search technique to a software engineering problem in 1992. The term SBSE was first used in 2001 by Harman and Jones.[3]
Application areas
Software testing has been one of the major applications of search techniques in software engineering.[4] However, search techniques have been applied to other software engineering activities, for instance:requirements analysis,[5][6] software design,[7] software development,[8] and software maintenance.[9] In his FoSE paper,[10] Harman identifies the current state of SBSE and highlights future trends in this approach to software engineering.
The term Search-based application, in contrast, refers to using search engine technology, rather than search techniques, in another industrial application.
Publications
Journals
IEEE Transactions on Software Engineering
Software Testing, Verification & Reliability
Conferences and Workshops
Due to the nature of SBSE there are many relevant conferences (List of computer science conferences, many of which have their own acronym List of computer science conference acronyms ), however in particular
International Conference on Software Engineering (ICSE)
Symposium on Search-Based Software Engineering (SSBSE)
Search-Based Software Engineering (SBSE) track at the conference Genetic and Evolutionary Computation Conference (GECCO).
The First Chinese SBSE Workshop http://cist.buct.edu.cn/zheng/CSBSE/index.html
First International Workshop on Combining Modelling and Search-Based Software Engineering http://www.cs.york.ac.uk/es/cmsbse/
CREST Open Workshop (COW) http://crest.cs.ucl.ac.uk/cow/
Also relevant are conferences on methods such as Evolutionary Computation IEEE Congress on Evolutionary Computation
Research
Researcher Groups
UCL Center for Research on Evolution, Search and Testing http://crest.cs.ucl.ac.uk/
Meta heuristics and Software Engineering http://neo.lcc.uma.es/mase/
Researchers
In no particular order here is a list of SBSE research active people;
Stephanie Forrest Professor of Computer Science, the University of New Mexico in Albuquerque.
Lionel C. Briand, PEARL Chair, Scientific Director, SnT Centre, University of Luxembourg
Edmund Kieran Burke, University of Stirling
Mark Harman, Professor of Software Engineering, UCL
Jean-Marc Jezequel, Professor of Software Engineering, University of Rennes 1 & INRIA, France
Enrique Alba, Professor of Computer Science, University of Málaga
Giuliano (Giulio) Antoniol, Professor at Département de Génie Informatique of the École Polytechnique de Montréal
Massimiliano Di Penta, University of Sannio, Italy
Dave Binkley, Loyola University Maryland
Tim Menzies, West Virginia University
John A Clark, Professor of Critical Systems
Resources
Repository of Publications on Search Based Software Engineering http://crestweb.cs.ucl.ac.uk/resources/sbse_repository/
References
- ^ W. Miller and D. L. Spooner, Automatic Generation of Floating-Point Test Data, IEEE Transactions on Software Engineering, Vol. 2, No. 3, pp. 223–226 (1976)
- ^ S. Xanthakis, C. Ellis, C. Skourlas, A. Le Gall, S. Katsikas and K. Karapoulios, Application of genetic algorithms to software testing, InProceedings of the 5th International Conference on Software Engineering and its Applications, pp. 625–636 (1992)
- ^ M. Harman and B. F. Jones, Search-based software engineering, Information & Software Technology, Vol. 43, No. 14, pp. 833–839 (2001)
- ^ P. McMinn, Search-based software test data generation: a survey, Software Testing, Verification and Reliability, Vol. 14, No. 2, pp. 105–156 (2004)
- ^ D. Greer and G. Ruhe, Software release planning: an evolutionary and iterative approach,Information & Software Technology, Vol. 46, No. 4, pp. 243–253 (2004)
- ^ F. Colares et al., A New Approach to the Software Release Planning, In Proceedings of XXIII Brazilian Symposium on Software Engineering (SBES '09), pp.207–215, 5–9 Oct, Brazil (2009)
- ^ J. A. Clark and J. L. Jacob, Protocols are programs too: the meta-heuristic search for security protocols, Information & Software Technology, Vol. 43, No. 14, pp. 891–904 (2001)
- ^ E. Alba and F. Chicano, Software Project Management with GAs, Information Sciences, Vol. 177, pp. 2380–2401 (2007)
- ^ G. Antoniol, M. Di Penta and M. Harman, Search-Based Techniques Applied to Optimization of Project Planning for a Massive Maintenance Project, In Proceedings of IEEE International Conference on Software Maintenance, pp. 240–249 (2005)
- ^ M. Harman, The Current State and Future of Search Based Software Engineering, In Proceedings of the 29th International Conference on Software Engineering (ICSE 2007), 20–26 May, Minneapolis, USA (2007)
External links
Google Scholar page on Search-based software engineering]