Our paper "A Study of Variability Models and Languages in the Systems Software Domain" (currently available as a preprint) was accepted for the IEEE Transactions on Software Engineering journal. It is joint work with Steven She (Univ. of Waterloo), Rafael Lotufo (Univ. of Waterloo), Andrzej Wasowski (ITU Copenhagen), and Krzysztof Czarnecki (Univ. of Waterloo). Together with the publication, we make all the raw data (diagrams, aggregated statistics, and R scripts) and the extracted variability models of the Linux kernel, the eCos operating system, and eleven systems software projects available. The Kconfig models can be processed using Steven's LVAT toolsuite, and the CDL models using my CDLTools project.
Variability models represent the common and variable features of products in a product line. Since the introduction of FODA in 1990, several variability modeling languages have been proposed in academia and industry, followed by hundreds of research papers on variability models and modeling. However, little is known about the practical use of such languages. We study the constructs, semantics, usage, and associated tools of two variability modeling languages, Kconfig and CDL, which are independently developed outside academia and used in large and significant software projects. We analyze 128 variability models found in twelve open source projects using these languages.
Our study (1) supports variability modeling research with empirical data on the real-world use of its flagship concepts. However, we (2) also provide requirements for concepts and mechanisms that are not commonly considered in academic techniques, and (3) challenge assumptions about size and complexity of variability models made in academic papers. These results are of interest to researchers working on variability modeling and analysis techniques and to designers of tools, such as feature dependency checkers and interactive product configurators.