# Learning Software Configuration Spaces: A Systematic Literature Review

**Authors:** Juliana Alves Pereira (DiverSe), Hugo Martin (DiverSe), Mathieu Acher, (DiverSe), Jean-Marc J\'ez\'equel (DiverSe), Goetz Botterweck (LERO), Anthony, Ventresque (UCD)

arXiv: 1906.03018 · 2019-06-10

## TL;DR

This systematic review analyzes how machine learning techniques are used to learn and optimize software configuration spaces across various domains, highlighting current strategies, challenges, and future research directions.

## Contribution

It provides a comprehensive classification of methods, objectives, and evaluation strategies for learning software configuration spaces from existing literature.

## Key findings

- Diverse application objectives like performance prediction and optimization.
- Various strategies for sampling and measurement of configurations.
- Challenges remain due to the vast configuration space, requiring further AI and software engineering integration.

## Abstract

Most modern software systems (operating systems like Linux or Android, Web browsers like Firefox or Chrome, video encoders like ffmpeg, x264 or VLC, mobile and cloud applications, etc.) are highly-configurable. Hundreds of configuration options, features, or plugins can be combined, each potentially with distinct functionality and effects on execution time, security, energy consumption, etc. Due to the combinatorial explosion and the cost of executing software, it is quickly impossible to exhaustively explore the whole configuration space. Hence, numerous works have investigated the idea of learning it from a small sample of configurations' measurements. The pattern "sampling, measuring, learning" has emerged in the literature, with several practical interests for both software developers and end-users of configurable systems. In this survey, we report on the different application objectives (e.g., performance prediction, configuration optimization, constraint mining), use-cases, targeted software systems and application domains. We review the various strategies employed to gather a representative and cost-effective sample. We describe automated software techniques used to measure functional and non-functional properties of configurations. We classify machine learning algorithms and how they relate to the pursued application. Finally, we also describe how researchers evaluate the quality of the learning process. The findings from this systematic review show that the potential application objective is important; there are a vast number of case studies reported in the literature from the basis of several domains and software systems. Yet, the huge variant space of configurable systems is still challenging and calls to further investigate the synergies between artificial intelligence and software engineering.

## Full text

_Full body text omitted from this summary view._ Fetch the complete paper as Markdown: https://tomesphere.com/paper/1906.03018/full.md

## Figures

12 figures with captions in the complete paper: https://tomesphere.com/paper/1906.03018/full.md

## References

122 references — full list in the complete paper: https://tomesphere.com/paper/1906.03018/full.md

---
Source: https://tomesphere.com/paper/1906.03018