Software Product Lines Engineering (SPLE) is a rapidly emerging paradigm which drives software engineering (SE) towards a planned and systematic (as opposed to opportunistic) reuse of existing assets (such as pieces of code and libraries for example) during the development of multiple products that share common parts. Variability modelling is central to this paradigm and consists in the identification and modelling of these common parts, as well as the variations between the products.
Feature models (FM) are now the de-facto standard for variability modelling. With basic FM, a feature could either be included in or left out of a product. Feature cardinalities allow to include several instances of a feature, as required by many real-world applications. Feature cardinalities have a profound impact on the semantics of FM as well as on configuration operations. Moreover, common feature modelling languages usually do not provide a satisfactory constraint language on this type of FM.
While feature cardinalities have already been studied, previous work fail to provide a complete formal definition of FM with cardinalities, their associated constraint language and the configuration operations.
Starting with the observation that one of our industrial partners struggled with the limitations of existing languages and configuration systems, we identified their requirements and extended TVL (our feature modelling language) with appropriate structures. We provided formal definitions of the language extensions and the configuration operations. Finally, we built and benchmarked software that supports extensions of TVL and implements these configuration operations in a generic way by relying on efficient constraint solvers.
The main contribution of this thesis is an improvement in expressiveness of feature modelling languages allowing to define complex constraints on FM with feature cardinalities that could not have been defined previously along with an adaptation of configuration operations.