The increasing complexity and cost of software-intensive systems has led developers to seek waysof reusing software components across development projects. One approach to increasing softwarereusability is to develop a software product-line (SPL), which is a software architecture that can bereconfigured and reused across projects. Rather than developing software from scratch for a new project,a new configuration of the SPL is produced. It is hard, however, to find a configuration of an SPL thatmeets an arbitrary requirement set and does not violate any configuration constraints in the SPL.Existing research has focused on techniques that produce a configuration of an SPL in a single step.Budgetary constraints or other restrictions, however, may require multi-step configuration processes.For example, an aircraft manufacturer may want to produce a series of configurations of a plane over aspan of years without exceeding a yearly budget to add features.This paper provides three contributions to the study of multi-step configuration for SPLs. First, wepresent a formal model of multi-step SPL configuration and map this model to constraint satisfactionproblems (CSPs). Second, we show how solutions to these SPL configuration problems can be automaticallyderived with a constraint solver by mapping them to CSPs. Moreover, we show how feature modelchanges can be mapped to our approach in a multi-step scenario by using feature model drift. Third, wepresent empirical results demonstrating that our CSP-based reasoning technique can scale to SPL modelswith hundreds of features and multiple configuration steps.
展开▼