Search-based software engineering: Trends, techniques and applications

  title={Search-based software engineering: Trends, techniques and applications},
  author={Mark Harman and S. Afshin Mansouri and Yuanyuan Zhang},
  journal={ACM Comput. Surv.},
In the past five years there has been a dramatic increase in work on Search-Based Software Engineering (SBSE), an approach to Software Engineering (SE) in which Search-Based Optimization (SBO) algorithms are used to address problems in SE. SBSE has been applied to problems throughout the SE lifecycle, from requirements and project planning to maintenance and reengineering. The approach is attractive because it offers a suite of adaptive automated and semiautomated solutions in situations… 

A Hitchhiker's Guide to Search-Based Software Engineering for Software Product Lines

A systematic mapping study of publications that apply SBSE techniques to Software Product Lines (SPLs) identified the stages of the SPL life cycle and provided a guideline for researchers and practitioners interested in exploiting these techniques.

A Systematic Review of Interaction in Search-Based Software Engineering

A classification scheme focused on four crucial aspects of interactive search, i.e., the problem formulation, search technique, interactive approach, and the empirical framework is formulated and its intention is that the classification scheme affords a methodological approach for interactive SBSE.

Search methodologies in real-world software engineering

  • G. Ochoa
  • Computer Science, Business
  • 2013
Case studies on the application of modern search methodologies to challenging real-world problems in software engineering and a recent research initiative to embed optimisation into deployed software to create self-optimising adaptive systems are described.

Search Based Software Engineering Techniques

The basic of SBSE already applied is explained and also signifies the future development in same field.

Search-Based Software Engineering for Self-Adaptive Systems: Survey, Disappointments, Suggestions and Opportunities

This paper provides the first systematic and comprehensive survey exclusively on SBSE for SASs, covering papers in 27 venues from 7 repositories, which eventually leads to several key statistics from the most notable 74 primary studies in this particular field of research.

Search based software engineering for software product line engineering: a survey and directions for future work

Suggestions for the development of recent advances in genetic improvement are focused on, showing how these might be exploited by SPL researchers and practitioners.

The Issues of Solving Staffing and Scheduling Problems in Software Development Projects

This work analyzes the issues of adopting search-based optimization algorithms in what is considered typical settings found in software development organizations and finds few evidence signaling that the expectations of software development Organizations are being attended.

Search-Based Software Engineering for Self-Adaptive Systems: One Survey, Five Disappointments and Six Opportunities

This paper provides the first systematic and comprehensive survey exclusively on SBSE for SASs, covering 3,740 papers in 27 venues from 7 repositories, which eventually leads to several key statistics from the most notable 73 primary studies in this particular field of research.



Search Based Software Engineering: A Comprehensive Analysis and Review of Trends Techniques and Applications

This paper identifies research trends and relationships between the techniques applied and the applications to which they have been applied and highlights gaps in the literature and avenues for further research.

Why the Virtual Nature of Software Makes It Ideal for Search Based Optimization

It is argued that Software Engineering provides the ideal set of application problems for which optimization algorithms are supremely well suited, and therefore finds wide application in Software Engineering.

Search Based Software Engineering for Program Comprehension

  • M. Harman
  • Computer Science
    15th IEEE International Conference on Program Comprehension (ICPC '07)
  • 2007
An overview of search based software engineering is provided, explaining some of the ways in which it has already been applied to program-comprehension related activities and some possible future applications of and challenges for the further application of SBSE to program comprehension.

Getting results from search-based approaches to software engineering

  • M. HarmanJ. Wegener
  • Computer Science
    Proceedings. 26th International Conference on Software Engineering
  • 2004
This area of search-based software engineering has its origins in work on search- based testing, which began in the mid 1990s and has been applied to software engineering problems right through the development life cycle.

Search-Based Software Engineering for Maintenance and Reengineering

The talk describes the search based approach, giving examples of past and possible future success in software maintenance and re-engineering automation and some of the benefits that accrue, paying particular attention to its attractive scalability and robustness characteristics.

A survey on search-based software design

Search-based software maintenance

A novel approach in providing automated refactoring support for software maintenance is described; the formulation of the task as a search problem in the space of alternative designs, guided by a quality evaluation function that must accurately reflectRefactoring goals.

Search-based refactoring: an empirical study

The results of an empirical comparison of simulated annealing, genetic algorithms and multiple ascent hill-climbing in search-based refactoring show HCM to outperform both SA and GA over a set of five input programs.

A novel approach to optimize clone refactoring activity

This paper presents an approach to schedule quality improvement under constraints and priority, including a model of clone removal effort and preliminary results obtained on a real world application.

Search-based determination of refactorings for improving the class structure of object-oriented systems

A novel search-based approach that assists a software engineer who has to perform reconditioning the class structure of a software system by suggesting a list of refactorings that do not change the system's externally visible behavior is described.