Tackling Combinatorial Explosion: A Study of Industrial Needs and Practices for Analyzing Highly Configurable Systems
Paper in proceeding, 2018

Highly configurable systems are complex pieces of software. To tackle this complexity, hundreds of dedicated analysis techniques have been conceived, many of which able to analyze system properties for all possible system configurations, as opposed to traditional, single-system analyses. Unfortunately, it is largely unknown whether these techniques are adopted in practice, whether they address actual needs, or what strategies practitioners actually apply to analyze highly configurable systems. We present a study of analysis practices and needs in industry. It relied on a survey with 27 practitioners engineering highly configurable systems and follow-up interviews with 15 of them, covering 18 different companies from eight countries. We confirm that typical properties considered in the literature (e.g., reliability) are relevant, that consistency between variability models and artifacts is critical, but that the majority of analyses for specifications of configuration options (a.k.a., variability model analysis) is not perceived as needed. We identified rather pragmatic analysis strategies, including practices to avoid the need for analysis. For instance, testing with experience-based sampling is the most commonly applied strategy, while systematic sampling is rarely applicable. We discuss analyses that are missing and synthesize our insights into suggestions for future research.

software product lines


Highly configurable systems


Mukelabai Mukelabai

University of Gothenburg

Damir Nešić

Royal Institute of Technology (KTH)

Salome Honest Maro

University of Gothenburg

Thorsten Berger

University of Gothenburg

Jan-Philipp Steghöfer

University of Gothenburg

Automated Software Engineering

0928-8910 (ISSN) 1573-7535 (eISSN)

978-1-4503-5937-5 (ISBN)

Proceedings of the 33rd ACM/IEEE International Conference on Automated Software Engineering
Montpellier, France,

Subject Categories

Software Engineering

Computer Science



More information

Latest update