Abstract:In software product lines, the core of product customization is to select appropriate features.Due to the various competing and even conflicting non-functional requirements (NFRs), feature selection, in essential, is a multi-objective optimization process.What's more, the search space in optimization is constrained largely by the relationships between features and the definitive functional requirements (FRs).Besides, some NFRs are with clear numerical limits, while others are not.These varied types of NFRs also present challenges for feature selection.To solve these problems, a novel multi-objective optimization algorithm with a feature selection reviser is proposed.Firstly, description language for the dependency and constraints relationships between features (DL-DCF) are designed to format different types of relationships between features uniformly, which stipulates the coexistence of two or more features.Next, during selection, all NFRs are transformed to optimization goals, and the quantified constraints on NFRs are used as filters to exclude invalid solutions.Furthermore, a reviser is designed to repair the configuration which violates any relation between features or FRs.Finally, the reviser is planted into the multi-objective optimization framework to form the proposed algorithm, MOOFs, to perform feature selection.Comparing with four popular baselines running on four feature models with different scales, empirical results show notable performance improvement of the algorithm on efficiency of valid solution generation and on the multiple NFRs balancing, especially when the feature models are large and complex.