FLASH
Fitness Landscape Analysis to improve Search Heuristics (2019-2022)
Many software engineering tasks can be formulated as optimization problems and can be automatically solved with different search heuristics/algorithms. Examples for typical software engineering problems, where optimization methods can be used, are requirements prioritization, release planning, architecture and design optimization, automatic program repair, test suite generation and augmentation, and test case selection and prioritization. However, for most of these problems the characteristics of the search space and fitness landscape are usually not known, which leads to algorithm selection on a trail-and-error basis. Furthermore, search spaces as given in the following figure can be diverse and may also vary from problem instance to problem instance. A better understanding of the different search problems will lead to better algorithm selection and parameter tuning. Consequently, the FLASH project aims to perform a systematic descriptive study to classify fitness landscapes. This knowledge will be used to improve search heuristics for different software engineering problems. An experimental validation will be performed to empirically demonstrate that a deep understanding of the different search spaces at design-time and at runtime will help to improve existing state-of-the-art algorithms.
The central research challenges will be (1) to efficiently extract information about the fitness landscapes for different complex problems in software engineering, and (2) to effectively and automatically improve the applied search algorithms to solve specific problems. For this purpose, we will select and investigate several software engineering problems that can be addressed by search-based optimization techniques.
Team:
FLASH is funded by the German Research Foundation / Deutsche Forschungsgemeinschaft (DFG).