Intl. Trans. in Op. Res. 0 (2017) 1–22 DOI: 10.1111/itor.12414 INTERNATIONAL TRANSACTIONS IN OPERATIONAL RESEARCH Heuristic and exact algorithms for product configuration in software product lines Juliana Alves Pereira a , Lucas Maciel b , Thiago F. Noronha b and Eduardo Figueiredo b a Department of Computer Science, University of Magdeburg, Magdeburg, Germany b Department of Computer Science, Federal University of Minas Gerais, Belo Horizonte, Brazil E-mail: juliana.alves-pereira@ovgu.de [Pereira]; lucasmaciel82@dcc.ufmg.br [Maciel]; tfn@dcc.ufmg.br [Noronha]; figueiredo@dcc.ufmg.br [Figueiredo] Received 3 February 2016; received in revised form 6 February 2017; accepted 15 March 2017 Abstract Software product line (SPL) is a set of software applications that share a common set of features satisfying the specific needs of a particular market segment. SPL engineering is a paradigm to develop software applications that commonly use a feature model to capture and document common and variable features, and their relationships. A big challenge is to derive one product among all possible products in the SPL, which satisfies the business and customer requirements. This task is known as product configuration. Although product configuration has been extensively investigated in the literature, customer’s preferences are frequently neglected. In this paper, we propose a novel approach to configure a product that considers both qualitative and quantitative feature properties. We model the product configuration task as a combinatorial optimization problem, and heuristic and exact algorithms are proposed. As far as we are concerned, this proposal is the first work in the literature that considers feature properties in both leaf and nonleaf features. Computational experiments showed that the best of our heuristics found optimal solutions for all instances where those are known. For the instances where optimal solutions are not known, our heuristic outperformed the best solution obtained by a one-hour run of the exact algorithm by up to 67.89%. Keywords: software product line; product configuration; search-based software engineering; combinatorial optimization; heuristic 1. Introduction The growing need for developing larger and more complex software applications demands better support for reusable software artifacts (Pohl et al., 2005). In order to address these demands, software product line (SPL) has been increasingly adopted in the software industry (Clements and Northrop, 2001; Deelstra et al., 2004; Van der Linden et al., 2007; Apel et al., 2013). SPL is a set of software systems that share a common set of features satisfying the specific needs of a particular market segment (Pohl et al., 2005). It is built around a set of common software components (called C 2017 The Authors. International Transactions in Operational Research C 2017 International Federation of Operational Research Societies Published by John Wiley & Sons Ltd, 9600 Garsington Road, Oxford OX4 2DQ, UK and 350 Main St, Malden, MA02148, USA.