Search-based software engineering: Difference between revisions

Content deleted Content added
style fixes, incl. dates, MOS:LINK and MOS:TEXT
Line 1:
{{Use dmy dates|date=November 2011}}
'''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 (mathematics)|optimization]] problems. Due to the [[computational complexity]] of these problems, exact [[Optimization (mathematics)|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.
 
__TOC__
==Brief history==
One of the earliest attempts in applying [[Optimization (mathematics)|optimization]] to a [[software engineering]] problem was reported by [[Webb Miller]] and David Spooner in 1976 in the area of software testing.<ref>W. Miller and D. L. Spooner, Automatic Generation of Floating-Point Test Data, ''IEEE Transactions on Software Engineering'', Vol. 2, No. 3, pp. 223-226223–226 (1976)</ref> Xanthakis et al. <ref>S. Xanthakis, C. Ellis, C. Skourlas, A. Le Gall, S. Katsikas and K. Karapoulios, Application of genetic algorithms to software testing, In ''Proceedings of the 5<sup>th</sup>5th International Conference on Software Engineering and its Applications'', pp. 625-636625–636 (1992)</ref> 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.<ref>M. Harman and B. F. Jones, Search-based software engineering, ''Information & Software Technology'', Vol. 43, No. 14, pp. 833-839833–839 (2001)</ref>
 
==Application areas==
[[Software testing]] has been one of the major applications of search techniques in [[software engineering]].<ref>P. McMinn, Search-based software test data generation: a survey, ''Software Testing, Verification and Reliability'', Vol. 14, No. 2, pp. 105-156105–156 (2004)</ref> However, search techniques have been applied to other [[software engineering]] activities, for instance: [[requirements analysis]],<ref>D. Greer and G. Ruhe, Software release planning: an evolutionary and iterative approach, ''Information & Software Technology'', Vol. 46, No. 4, pp. 243-253243–253 (2004)</ref> <ref>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-215207–215, 5-95–9 Oct, Brazil (2009) </ref> [[software design]],<ref>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-904891–904 (2001) </ref> [[software development]],<ref>E. Alba and F. Chicano, Software Project Management with GAs, ''Information Sciences'', Vol. 177, pp. 2380-24012380–2401 (2007)</ref> and [[software maintenance]].<ref>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-249240–249 (2005)</ref> In his FoSE paper,<ref>M. Harman, The Current State and Future of Search Based Software Engineering, In ''Proceedings of the 29<sup>th</sup>29th International Conference on Software Engineering (ICSE 2007)'', 20-2620–26 May, Minneapolis, USA (2007)</ref> 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.
 
==References==
{{reflist|colwidth=30em}}
<references/>
 
==External links==