One of the reasons for this high complexity is that due to continuous evolution of the product line a large number of new variable features and configuration parameters are introduced but at the same time obsolete variability is not removed. For example, from a product line component offering only 16 features it is theoretically possible to derive 65.536 variants. This example shows that even a small number of features results in a combinatorial explosion of variants. In order to solve this problem, methods are required that ensure the minimum number of variable features needed to derive existing and future products from the product line.
In this dissertation a semi-automatic method and process for variability optimization is presented. The overall goal of variability optimization is to document, to analyze and to simplify the provided variability of software product lines without affecting the configurability of the product line for existing and future products. Core elements of the method are the usage of a mathematical method, called Formal Concept Analysis (FCA), for deriving a visual representation of the provided variability in software product lines as a basis for analysis and a set of restructuring strategies that can be used to minimize the number of variable features required to derive existing and planned future products. The effectiveness of the method is demonstrated by presenting two case studies of optimizing the variability of large industrial software product lines.