Learning Software Configuration Spaces: A Systematic Literature Review
Authors:
Juliana Alves Pereira,
Hugo Martin,
Mathieu Acher,
Jean-Marc Jézéquel,
Goetz Botterweck,
Anthony Ventresque
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 t…
▽ More
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.
△ Less
Submitted 7 June, 2019;
originally announced June 2019.
Variability and Evolution in Systems of Systems
Authors:
Goetz Botterweck
Abstract:
In this position paper (1) we discuss two particular aspects of Systems of Systems, i.e., variability and evolution. (2) We argue that concepts from Product Line Engineering and Software Evolution are relevant to Systems of Systems Engineering. (3) Conversely, concepts from Systems of Systems Engineering can be helpful in Product Line Engineering and Software Evolution. Hence, we argue that an exc…
▽ More
In this position paper (1) we discuss two particular aspects of Systems of Systems, i.e., variability and evolution. (2) We argue that concepts from Product Line Engineering and Software Evolution are relevant to Systems of Systems Engineering. (3) Conversely, concepts from Systems of Systems Engineering can be helpful in Product Line Engineering and Software Evolution. Hence, we argue that an exchange of concepts between the disciplines would be beneficial.
△ Less
Submitted 14 November, 2013;
originally announced November 2013.
How to Complete an Interactive Configuration Process?
Authors:
Mikolas Janota,
Goetz Botterweck,
Radu Grigore,
Joao Marques-Silva
Abstract:
When configuring customizable software, it is useful to provide interactive tool-support that ensures that the configuration does not breach given constraints.
But, when is a configuration complete and how can the tool help the user to complete it?
We formalize this problem and relate it to concepts from non-monotonic reasoning well researched in Artificial Intelligence. The results are inte…
▽ More
When configuring customizable software, it is useful to provide interactive tool-support that ensures that the configuration does not breach given constraints.
But, when is a configuration complete and how can the tool help the user to complete it?
We formalize this problem and relate it to concepts from non-monotonic reasoning well researched in Artificial Intelligence. The results are interesting for both practitioners and theoreticians. Practitioners will find a technique facilitating an interactive configuration process and experiments supporting feasibility of the approach. Theoreticians will find links between well-known formal concepts and a concrete practical application.
△ Less
Submitted 20 October, 2009;
originally announced October 2009.