Do background colors improve program comprehension in the #ifdef hell?

Software-product-line engineering aims at the development of variable and reusable software systems. In practice, software product lines are often implemented with preprocessors. Preprocessor directives are easy to use, and many mature tools are available for practitioners. However, preprocessor dir...

Full description

Saved in:
Bibliographic Details
Published inEmpirical software engineering : an international journal Vol. 18; no. 4; pp. 699 - 745
Main Authors Feigenspan, Janet, Kästner, Christian, Apel, Sven, Liebig, Jörg, Schulze, Michael, Dachselt, Raimund, Papendieck, Maria, Leich, Thomas, Saake, Gunter
Format Journal Article
LanguageEnglish
Published Boston Springer US 01.08.2013
Springer Nature B.V
Subjects
Online AccessGet full text

Cover

Loading…
More Information
Summary:Software-product-line engineering aims at the development of variable and reusable software systems. In practice, software product lines are often implemented with preprocessors. Preprocessor directives are easy to use, and many mature tools are available for practitioners. However, preprocessor directives have been heavily criticized in academia and even referred to as “#ifdef hell”, because they introduce threats to program comprehension and correctness. There are many voices that suggest to use other implementation techniques instead, but these voices ignore the fact that a transition from preprocessors to other languages and tools is tedious, erroneous, and expensive in practice. Instead, we and others propose to increase the readability of preprocessor directives by using background colors to highlight source code annotated with ifdef directives . In three controlled experiments with over 70 subjects in total, we evaluate whether and how background colors improve program comprehension in preprocessor-based implementations. Our results demonstrate that background colors have the potential to improve program comprehension, independently of size and programming language of the underlying product. Additionally, we found that subjects generally favor background colors. We integrate these and other findings in a tool called FeatureCommander, which facilitates program comprehension in practice and which can serve as a basis for further research.
Bibliography:SourceType-Scholarly Journals-1
ObjectType-Feature-1
content type line 14
ObjectType-Article-2
content type line 23
ISSN:1382-3256
1573-7616
DOI:10.1007/s10664-012-9208-x