Abstract
The variability of a Software Product Line is usually both described in the \it problem space (by using a \it variability
model) and in the \it solution space (i.e., the \it system implementation). If the two spaces are not aligned, wrong decisions
can be done regarding the system configuration. In this work, we consider the case in which the variability model is not aligned
with the solution space, and we propose an approach to automatically repair (possibly) faulty constraints in variability models.
The approach takes as input a variability model and a set of combinations of features that trigger conformance faults between
the model and the real system, and produces the repaired set of constraints as output. The approach consists of three major
phases. First, it generates a test suite and identifies the condition triggering the faults. Then, it modifies the constraints
of the variability model according to the type of faults. Lastly, it uses a logic minimization method to simplify the modified
constraints. We evaluate the process on variability models of 7 applications of various sizes. An empirical analysis on these
models shows that our approach can effectively repair constraints among features in an automated way.
[download the pdf file] [DOI]