Search-based software engineering

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.

__TOC__

Brief history

One of the earliest attempts in applying optimization to a software engineering problem was reported by Miller and Spooner in 1976 in the area of software testing [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)] . Xanthakis et al. [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)] 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 [M. Harman and B. F. Jones, Search-based software engineering, "Information & Software Technology", Vol. 43, No. 14, pp. 833-839 (2001)] .

Application areas

Software testing has been one of the major applications of search techniques in software engineering [P. McMinn, Search-based software test data generation: a survey, "Software Testing, Verification and Reliability", Vol. 14, No. 2, pp. 105-156 (2004)] . However, search techniques have been applied to other software engineering activities, for instance: requirements analysis [D. Greer and G. Ruhe, Software release planning: an evolutionary and iterative approach, "Information & Software Technology", Vol. 46, No. 4, pp. 243-253 (2004)] , software design [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) ] , software development [E. Alba and F. Chicano, Software Project Management with GAs, "Information Sciences", Vol. 177, pp. 2380-2401 (2007)] and software maintenance [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)] . In his FoSE paper [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)] , Harman identifies the current state of SBSE and highlights future trends in this approach to software engineering.

References

External links

* [http://www.sebase.org/sbse/publications/ Repository of publications on SBSE]


Wikimedia Foundation. 2010.

Игры ⚽ Нужна курсовая?

Look at other dictionaries:

  • History of software engineering — Software engineering has evolved steadily from its founding days in the 1940s until today in the 2000s. Applications have evolved continuously.The ongoing goal to improve technologies and practices, seeks to improve the productivity of… …   Wikipedia

  • Software design — is a process of problem solving and planning for a software solution. After the purpose and specifications of software are determined, software developers will design or employ designers to develop a plan for a solution. It includes low level… …   Wikipedia

  • Software maintenance — In software engineering, software maintenance is the modification of a software product after delivery to correct faults, to improve performance or other attributes, or to adapt the product to a modified environment.”(ISO/IEC 14764). This… …   Wikipedia

  • Software architecture — The software architecture of a program or computing system is the structure or structures of the system, which comprise software components, the externally visible properties of those components, and the relationships between them. The term also… …   Wikipedia

  • Software prototyping — Software prototyping, a possible activity during software development, is the creation of prototypes, i.e., incomplete versions of the software program being developed.A prototype typically simulates only a few aspects of the features of the… …   Wikipedia

  • Software development effort estimation — is the process of predicting the most realistic use of effort required to develop or maintain software based on incomplete, uncertain and/or noisy input. Effort estimates may be used as input to project plans, iteration plans, budgets, investment …   Wikipedia

  • Ingeniería del software basada en búsqueda — (ISBB), proviene del término originario inglés Search Based Software Engineering (SBSE). Alude a la aplicación de técnicas de optimización ya utilizadas en otros campos de la ingeniería y de la ciencia, como algoritmos genéticos, simulated… …   Wikipedia Español

  • Software as a service — (SaaS, typically pronounced sass ) is a model of software deployment where an application is hosted as a service provided to customers across the Internet. By eliminating the need to install and run the application on the customer s own computer …   Wikipedia

  • Software product management — is the process of managing software that is built and served as a product as opposed to a serviceoftware productsA software product is typically a single application or suite of applications built by a software company to be used by *many*… …   Wikipedia

  • Software patent debate — is the argument dealing with the extent to which it should be possible to patent software and computer implemented inventions as a matter of public policy. Policy debate on software patents has been active for years. [Cite book |last=Nichols… …   Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”