Content deleted Content added
Samansouri (talk | contribs) No edit summary |
Samansouri (talk | contribs) No edit summary |
||
Line 1:
'''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 [[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.
One of the earliest attempts in applying [[optimization]] to a [[software engineering]] problem was reported by Miller and Spooner in the area of software testing in 1976 <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-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 5th International Conference on Software Engineering and its Applications, pp. 625-636 (1992)</ref> apply for the first time a search technique to a [[software engineering]] problem. 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-839 (2001)</ref>.
[[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-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-253 (2004)</ref>, 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-904 (2001) </ref>, implementation<ref>E. Alba and F. Chicano, Software Project Management with GAs, Information Sciences, Vol. 177, pp. 2380-2401 (2007)</ref> and 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-249 (2005)</ref>. In his FoSE paper<ref>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)</ref>, Harman identifies the current state of SBSE and highlights future trends in this approach to software engineering.
|