DocumentCode :
112162
Title :
Where Do Configuration Constraints Stem From? An Extraction Approach and an Empirical Study
Author :
Nadi, Sarah ; Berger, Thorsten ; Kastner, Christian ; Czarnecki, Krzysztof
Author_Institution :
Dept. of Comput. Sci., Tech. Univ. Darmstadt, Darmstadt, Germany
Volume :
41
Issue :
8
fYear :
2015
fDate :
Aug. 1 2015
Firstpage :
820
Lastpage :
841
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.
Keywords :
configuration management; program diagnostics; configuration combination; configuration constraints; configuration constraints extraction; constraint sources identification; extraction approach; static analysis approach; variability model; variability model engineering; variability model evolution; variability model verification techniques; Accuracy; Feature extraction; Interviews; Kernel; Linux; Manuals; Reverse-engineering; Variability models; configuration constraints; qualitative studies; reverse-engineering; static analyses;
fLanguage :
English
Journal_Title :
Software Engineering, IEEE Transactions on
Publisher :
ieee
ISSN :
0098-5589
Type :
jour
DOI :
10.1109/TSE.2015.2415793
Filename :
7065312
Link To Document :
بازگشت