Software engineers use SPLs to increase software reusability and to rationalise software maintenance and evolution effort across a range of related products [3].
without automated support, this feature selection process is likely to be highly suboptimal: it requires the si­multaneous satisfaction of multiple objectives, such as match­ing user preferences, minimizing product cost and satisfying technical feasibility constraints in feature spaces defined by many thousands of features.