FLASH: Fitness Landscape Analysis to improve Search Heuristics -
A Systematic Exploration for different Software Engineering Problems
A Systematic Exploration for different Software Engineering Problems
Many software engineering tasks can be formulated as optimisation problems and can be automatically solved with different search heuristics/algorithms. Examples for typical software engineering problems, where optimisation methods can be used, are requirements prioritisation, release planning, architecture and design optimisation, automatic program repair, test suite generation and augmentation, and test case selection and prioritisation. 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 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.
Many software engineering tasks can be formulated as optimisation problems and can be automatically solved with different search heuristics/algorithms. Examples for typical software engineering problems, where optimisation methods can be used, are requirements prioritisation, release planning, architecture and design optimisation, automatic program repair, test suite generation and augmentation, and test case selection and prioritisation. 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 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.
Financer
DFG: Sachbeihilfe
Duration of project
Start date: 02/2019
End date: 12/2022
Research Areas
Software Engineering and Programming Languages
Publications
[1] Thomas Vogel, Chinh Tran, Lars Grunske: Does Diversity Improve the Test Suite Generation for Mobile Applications? SSBSE 2019: 58-74