Where do configuration constraints stem from? An extraction approach and an empirical study

Sarah Nadi, Thorsten Berger, Christian Kästner, Krzysztof Czarnecki

Research output: Contribution to journalArticlepeer-review

Abstract

Highly configurable systems allow users to tailor software to specific needs. Valid combinations of configuration options are often restricted by intricate constraints. Describing options and constraints in a variability model allows reasoning about the supported configurations. To automate creating and verifying such models, we need to identify the origin of such constraints. We propose a static analysis approach, based on two rules, to extract configuration constraints from code. We apply it on four highly configurable systems to evaluate the accuracy of our approach and to determine which constraints are recoverable from the code. We find that our approach is highly accurate (93% and 77% respectively) and that we can recover 28% of existing constraints. We complement our approach with a qualitative study to identify constraint sources, triangulating results from our automatic extraction, manual inspections, and interviews with 27 developers. We find that, apart from low-level implementation dependencies, configuration constraints enforce correct runtime behavior, improve users' configuration experience, and prevent corner cases. While the majority of constraints is extractable from code, our results indicate that creating a complete model requires further substantial domain knowledge and testing. Our results aim at supporting researchers and practitioners working on variability model engineering, evolution, and verification techniques.

Original languageEnglish (US)
Article number7065312
Pages (from-to)820-841
Number of pages22
JournalIEEE Transactions on Software Engineering
Volume41
Issue number8
DOIs
StatePublished - Aug 1 2015

Keywords

  • Reverse-engineering
  • Variability models
  • qualitative studies

ASJC Scopus subject areas

  • Software

Fingerprint

Dive into the research topics of 'Where do configuration constraints stem from? An extraction approach and an empirical study'. Together they form a unique fingerprint.

Cite this