Understanding Configurable Software Systems with Lightweight Feature Slicing

Elton Alves, Sabrina Souto, and Marcelo d’Amorim

Abstract

Dynamic feature interaction is an important abstraction to document highly configurable software systems. Unfortunately, they are to a large extent hidden in the code. This paper proposes a lightweight method to extract these interactions and to identify interesting ones out of those extracted. Our approach is to select a small number of system configurations, to run existing test cases in slicing mode against those configurations, and to process interactions from the many computed slices. Experimental results considering 3 subjects previously used in other studies indicate that there was almost no loss in the set of feature interactions observed when analyzing only the reduced set of configurations, that the cost is substantially lower when using this reduced set, and that both high and low-level abstractions of feature interactions that we used were useful to explain behavior.

Implementation

We implemented the product selection algorithm with the Watchmaker optimization framework and the feature slicer using the infrastructure of the Java PathFinder program model checker.

Results


Please send bug reports, comments, or questions to Elton Alves (erma at cin dot ufpe dot br)
Last updated CST