Does Link Prediction Help Detect Feature Interactions in Software   Product Lines (SPLs)?
An ongoing challenge for the requirements engineering of software product lines is to predict whether a new combination of features (units of functionality) will create an unwanted or even hazardous feature interaction. We thus seek to improve and automate the prediction of unwanted feature interactions early in development. In this paper, we show how the detection of unwanted feature interactions in a software product line can be effectively represented as a link prediction problem. Link prediction uses machine learning algorithms and similarity scores among a graph's nodes to identify likely new edges. We here model the software product line features as nodes and the unwanted interactions among the features as edges. We investigate six link-based similarity metrics, some using local and some using global knowledge of the graph, for use in this context. We evaluate our approach on a software product line benchmark in the literature, building six machine-learning models from the graph-based similarity data. Results show that the best ML algorithms achieved an accuracy of 0.75 to 1 for classifying feature interactions as unwanted or wanted in this small study and that global similarity metrics performed better than local similarity metrics. The work shows how link-prediction models can help find missing edges, which represent unwanted feature interactions that are undocumented or unrecognized, earlier in development.