@inproceedings{09b0be59f2754f1698a3e6985b3dd33d,
title = "FeatureCoPP: Unfolding Preprocessor Variability",
abstract = "Annotation-based and composition-based variability mechanisms have complementary strengths regarding software maintenance and evolution. Consequently, several proposals have been made to combine, integrate, and substitute both mechanisms. An open challenge is to provide a unified, automatic, and practical technique to adopt such proposals. In this paper, we present a technique to convert variable feature code that is enclosed in the C preprocessor{\textquoteright}s conditional compilation into compositional feature modules and vice versa. We facilitate the usability of our technique by keeping the annotation-based representation of the C preprocessor. Besides contributing a practicable implementation, we describe the core principles of our technique and demonstrate its functionality based on previous empirical studies and by analyzing the Linux kernel. While our technique is fast in transforming projects, we also illustrate the challenges of maintaining fine-grained feature modules.",
keywords = "Software product lines, Preprocessor, Variability analysis, Empirical study, Software metrics",
author = "Kai Ludwig and Jacob Kr{\"u}ger and Thomas Leich",
note = "DBLP License: DBLP's bibliographic metadata records provided through http://dblp.org/ are distributed under a Creative Commons CC0 1.0 Universal Public Domain Dedication. Although the bibliographic metadata records are provided consistent with CC0 1.0 Dedication, the content described by the metadata records is not. Content may be subject to copyright, rights of privacy, rights of publicity and other restrictions.",
year = "2020",
month = feb,
day = "5",
doi = "10.1145/3377024.3377039",
language = "English",
series = "ACM International Conference Proceeding Series",
publisher = "Association for Computing Machinery, Inc",
pages = "24:1--24:9",
editor = "Maxime Cordy and Mathieu Acher and Danilo Beuche and Gunter Saake",
booktitle = "Proceedings - VaMoS 2020",
address = "United States",
}