Search-based software engineering Mark Harman a, * , Bryan F. Jones b,1 a Department of Information Systems and Computing, Brunel University, Uxbridge, Middlesex, UB8 3PH, UK b School of Computing, University of Glamorgan, Pontypridd, CF37 1DL, UK Abstract This paper claims that a new ®eld of software engineering research and practice is emerging: search-based software engineering. The paper argues that software engineering is ideal for the application of metaheuristic search techniques, such as genetic algorithms, simulated annealing and tabu search. Such search-based techniques could provide solutions to the dif®cult problems of balancing competing and some times inconsistent) constraints and may suggest ways of ®nding acceptable solutions in situations where perfect solutions are either theoretically impossible or practically infeasible. In order to develop the ®eld of search-based software engineering, a reformulation of classic software engineering problems as search problems is required. The paper brie¯y sets out key ingredients for successful reformulation and evaluation criteria for search-based software engineering. q 2001 Elsevier Science B.V. All rights reserved. Keywords: Software engineering; Metaheuristic; Genetic algorithm 1. Introduction Software engineers often face problems associated with the balancing of competing constraints, trade-offs between concerns and requirement imprecision. Perfect solutions are often either impossible or impractical and the nature of the problems often makes the de®nition of analytical algorithms problematic. Like other engineering disciplines, software engineering is typically concerned with near optimal solutions or those which fall within a speci®ed acceptable tolerance. It is precisely these factors which make robust metaheuristic search-based optimisation techniques readily applicable. Metaheuristic algorithms, such as genetic algorithms GA) [17], simulated annealing [37] and tabu search [16] have been applied successfully to a number of engineering problems. For example, a literature survey of genetic algo- rithms reveals applications to, among others: ² mechanical engineering [24,33] ² chemical engineering [8,22] ² medical and biomedical engineering [29,32,40] ² civil engineering [1,6,14,19] ² electronic engineering [5,11,25] GA research and researchers have even received interest from observers in the ®eld of social science. Though GA practitioners may not agree with the ®ndings of sociologists [18], it is an indication of the wide appreciation of the signi®cance of these search-based technologies that they should have penetrated the collective consciousness of even `non-technical' disciplines such as social science. However, the discipline of software engineering appears to be unique with regard to the application of genetic algo- rithms and similar search-based, metaheuristic optimisa- tion techniques); metaheuristic algorithms have received comparatively little attention from software engineers in comparison with that which they have received from researchers and practitioners in the more established ®elds of engineering. A literature search on `software engineering' and `genetic algorithms' reveals work within the areas of testing [20,21,36,28,38,39] and cost estimation [12,13], but few others. Work has also taken place on automatic program- ming using genetic programming [23] and parallelisation [31,44], which could be thought of speci®c topics within coding, which in turn, could be considered to be a part of software engineering. Even with the inclusion of this work on coding, the application of search-based techniques to problems in software engineering has been, hitherto, some- what patchy. The thesis underpinning the present paper is that search-based metaheuristic optimisation techniques are highly applicable to software engineering and that their Information and Software Technology 43 2001) 833±839 0950-5849/01/$ - see front matter q 2001 Elsevier Science B.V. All rights reserved. PII: S0950-584901)00189-6 www.elsevier.com/locate/infsof * Corresponding author. Tel.: 144-1895-274-000; fax: 144-1895-251- 686. E-mail addresses: mark.harman@brunel.ac.uk M. Harman), bfjo- nes@glam.ac.uk B.F. Jones). 1 Tel.: 144-1443-482730; fax: 144-1443-482715