Visible to the public Where Do Configuration Constraints Stem From? An Extraction Approach and an Empirical StudyConflict Detection Enabled

TitleWhere Do Configuration Constraints Stem From? An Extraction Approach and an Empirical Study
Publication TypeJournal Article
Year of Publication2015
AuthorsSarah Nadi, Thorsten Berger, Christian Kästner, Krzysztof Czarnecki
JournalIEEE Transactions on Software Engineering
Date Published3/2015
KeywordsApr'15, CMU, configuration constraints, qualitative studies, reverse-engineering, static analyses, Variability models

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.

Citation Keynode-25046

Other available formats: