Search-based software engineering

Search-based software engineering (SBSE) applies metaheuristic search techniques such as genetic algorithms, simulated annealing and tabu search to software engineering problems. Many activities in software engineering can be stated as optimization problems. Optimization techniques of operations research such as linear programming or dynamic programming are often impractical for large scale software engineering problems because of their computational complexity or their assumptions on the problem structure. Researchers and practitioners use metaheuristic search techniques, which impose little assumptions on the problem structure, to find near-optimal or "good-enough" solutions.[1]

SBSE problems can be divided into two types:

  • black-box optimization problems, for example, assigning people to tasks (a typical combinatorial optimization problem).
  • white-box problems where operations on source code need to be considered.[2]
  1. ^ Mohan, M.; Greer, D. (1 August 2019). "Using a many-objective approach to investigate automated refactoring". Information and Software Technology. 112: 83–101. doi:10.1016/j.infsof.2019.04.009. ISSN 0950-5849.
  2. ^ Harman, Mark (2010). "Why Source Code Analysis and Manipulation Will Always be Important". 10th IEEE Working Conference on Source Code Analysis and Manipulation (SCAM 2010). 10th IEEE Working Conference on Source Code Analysis and Manipulation (SCAM 2010). pp. 7–19. doi:10.1109/SCAM.2010.28.

© MMXXIII Rich X Search. We shall prevail. All rights reserved. Rich X Search