  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.
