Large-Scale Variability-Aware Type Checking and Dataflow Analysis
A software product line is a family of similar software products that share a common set of assets. The advent of proper variability management and generator technology enables end-users to derive individual products solely based on a selection of desired features. This gives rise to a huge configuration space of possible products. But the high degree of variability comes at a cost: classic analysis methods do not scale any more; there are simply too many potential products to analyze. Hence, researchers have begun to develop variabilityaware analyses, which exploit the similarities of the products of a product line to reduce analysis effort. However, while being promising, variability-aware analyses have not been applied to real-world product lines so far. We close this gap by developing and applying two full-fledged analyses to two real-world, largescale systems: the Busybox tool suite and the Linux kernel. We report on our experience with making variability-aware analysis ready for the real world, and with applying it to large-scale product lines. A key result is that variability-aware analysis can outperform even very limited sampling heuristics with respect to analysis time.