Search-based software engineering

Mark Harman, S. Afshin Mansouri, Yuanyuan Zhang
2012 ACM Computing Surveys  
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 life cycle, from requirements and project planning to maintenance and reengineering. The approach is attractive because it offers a suite of adaptive automated and semi-automated solutions in situations
more » ... ied by large complex problem spaces with multiple competing and conflicting objectives. This paper 1 provides a review and classification of literature on SBSE. The 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. . Afshin Mansouri is with Brunel Business School, Brunel University, UK afshin.mansouri@brunel.ac.uk 1 The paper is a (significantly) extended version of the recent ICSE 'The Current State and Future of Search Based Software Engineering' paper by Harman, one of the present authors [Harman 2007b]. Permission to make digital or hard copies of part or all of this work for personal or classroom use is granted without fee provided that copies are not made or distributed for profit or commercial advantage and that copies show this notice on the first page or initial screen of a display along with the full citation. Copyrights for components of this work owned by others than ACM must be honored. Abstracting with credit is permitted. To copy otherwise, to republish, to post on servers, to redistribute to lists, or to use any component of this work in other works requires prior specific permission and/or a fee. Permissions may be requested from Publications A:2 they are typical of the kinds of problem for which SBSE is well adapted and with which each has been successfully formulated as a search based optimization problem. As we shall see in this survey, SBSE has been applied to testing, design, requirements, project management and refactoring. This survey will show that work on SBSE applied to each of these five areas addresses each of the five questions raised above. This breadth of applicability is one of the enduring appeals of SBSE. In SBSE, the term 'search' is used to refer to the metaheuristic Search Based Optimization (SBO) techniques that are used. SBSE seeks to reformulate SE problems as SBO problems (or 'search problems' for short). The use of the term 'search' should not to be confused with 'search' from other contexts such as textual or hypertextual search. Rather, for SBSE, a search problem is one in which optimal or near optimal solutions are sought in a search space of candidate solutions, guided by a fitness function that distinguishes between better and worse solutions. The interest in SBO for SE has led to an increased interest in other forms of optimization for SE that are not necessarily directly based on a 'search'. In the literature it is common to find the term 'SBSE' applied to any form of optimization in which the problem domain comes from SE and the solution involves optimization according some well-defined notion of fitness. In this paper, we therefore include classical Operations Research (OR) techniques as well as metaheuristic 'search based' techniques in our understanding of SBSE. It has been argued that the virtual nature of software makes it well suited for SBO ]. This is because fitness is computed directly in terms of the engineering artifact, without the need for the simulation and modelling inherent in all other approaches to engineering optimization. The field of SE is also imbued with rich metrics that can be useful initial candidates for fitness functions [Harman and Clark 2004]. This paper aims to provide a comprehensive survey of SBSE. It presents research activity in categories drawn from the ACM subject categories within SE. For each, it lists the papers, drawing out common themes, such as the type of search technique used, the fitness definitions and the nature of evaluation.
doi:10.1145/2379776.2379787 fatcat:m4elb2acwvfdjaifqdcjftgksq