Learning Feature Interactions With and without Specifications
Developers of software product lines and highly configurable systems reuse and combine features (units of functionality) to build new or customize existing products. However, features can interact in ways that are contrary to developers’ intent. Predicting whether a new combination of features will produce an unwanted or even hazardous feature interaction is a continuing challenge. Current techniques to detect unwanted feature interactions are costly, slow, and inadequate. In this thesis, we investigate how to detect unwanted feature interactions early in development and that are scalable to large software product lines or highly configurable systems. First, we propose a similarity-based method to identify unwanted feature interactions much earlier in the development process for early detection. It uses knowledge of prior feature interactions stored with the software product line’s feature model to help find unwanted interactions between a new feature and existing features. Results show that the approach performs well, with 83% accuracy and 60% to 100% coverage of feature interactions in experiments, and scales to a large number of features.
Moreover, to learn and automate the detection, we show how detecting unwanted feature interactions can be e↵ectively represented as a link prediction problem. We investigate six link-based similarity metrics and evaluate our approach on a software product line benchmark. Results show that the best machine learning algorithms achieve an accuracy of 0.75 to 1 for classifying feature interactions.
Finally, we develop a new approach based on program analysis that extracts feature-relevant learning models from the source code to obtain more semantic details of unwanted feature interactions. The method is capable of learning feature interactions whether constraints on feature combinations are specified or not. If specifications of feature constraints are unavailable, as is common in real-world systems, our approach infers the constraints using feature-related data-flow dependency information. Experimental evaluation on three software product line benchmarks and in Chapter 4, we propose a new approach to learn feature interactions, both in those product lines where constraints on feature combinations are specified and in feature-rich configurable systems where such specifications often are not available. We utilize program analysis to extract feature-relevant learning models from the source code in order to detect unwanted feature interactions.Where specifications of feature constraints are unavailable, our approach infers the constraints using feature-related data-flow dependency information. Evaluation in experiments on three software product line benchmarks and a highly configurable system shows that this approach is fast and e↵ective. The contribution is to support developers by automatically detecting feature combinations in a new product or version that can interact in unwanted or unrecognized ways. This enables a better understanding of latent interactions and identifies software components whose features can interact in some configurations.
Future work will seek to ascertain whether our proposed method for link prediction-based learning models for unwanted feature detection can be usefully applied more broadly to software product lines in other domains. Future work also will incorporate o↵set information into our analysis to reduce false positives in data-flow dependencies. Finding test cases which are aligned to the discovered feature dependencies in our study also is of interest.
Committee: Robyn Lutz (major professor), Samik Basu, Andrew Miner, Hridesh Rajan, and Karin Dorman
Join on Zoom: https://iastate.zoom.us/j/5667140701