Optimizing the Configuration of Software Product Line Variants
White, Christopher Jules
Software Product-Lines (SPLs) are software architectures that provide reusable components that can be configured into variants to meet different requirement sets. A key part of an SPL is a specification of the rules governing how the reusable components can be configured into variants. One of the most widely used modeling techniques for capturing these configuration rules is called feature modeling. This dissertation describes a research approach for addressing the challenges of configuring and optimizing SPL variants. We show that constraint programming techniques can be used to select optimal or good feature selections from feature models. Furthermore, we show how these constraint-based automation techniques can be used to perform modeling guidance to improve manual modeling steps. Finally, we show that a key missing component of SPL automation is the ability to automatically diagnose SPL configuration errors and offer good remedies. We provide a constraint-based diagnosis method for identifying SPL configuration errors.