Understanding Conditional Compilation Through Integrated Representation of Variability and Source Code
This addresses a specific problem for software developers working with CPP-based variability, but it is incremental as it builds on existing concepts of feature models and tooling.
The paper tackles the difficulty of understanding variability implemented with the C preprocessor (CPP) in software product lines by developing an analytics tool that integrates feature models with source code, enabling interactive exploration to trace and comprehend the effects of feature flags.
The C preprocessor (CPP) is a standard tool for introducing variability into source programs and is often applied either implicitly or explicitly for implementing a Software Product Line (SPL). Despite its practical relevance, CPP has many drawbacks. Because of that it is very difficult to understand the variability implemented using CPP. To facilitate this task we provide an innovative analytics tool which bridges the gap between feature models as more abstract representations of variability and its concrete implementation with the means of CPP. It allows to interactively explore the entities of a source program with respect to the variability realized by conditional compilation. Thus, it simplifies tracing and understanding the effect of enabling or disabling feature flags.