Affiliation:
1. Technische Universität Braunschweig, Braunschweig, Germany
2. Universität Passau, Passau, Germany
Abstract
The C preprocessor (
CPP
) is a simple and language-independent tool, widely used to implement variable software systems using conditional compilation (i.e., by including or excluding annotated code). Although
CPP
provides powerful means to express variability, it has been criticized for allowing arbitrary annotations that break the underlying structure of the source code. We distinguish between
disciplined
annotations, which align with the structure of the source code, and
undisciplined
annotations, which do not. Several studies suggest that especially the latter type of annotations makes it hard to (automatically) analyze the code. However, little is known about whether the type of annotations has an effect on program comprehension. We address this issue by means of a controlled experiment with human subjects. We designed similar tasks for both, disciplined and undisciplined annotations, to measure program comprehension. Then, we measured the performance of the subjects regarding correctness and response time for solving the tasks. Our results suggest that there are no differences between disciplined and undisciplined annotations from a program-comprehension perspective. Nevertheless, we observed that finding and correcting errors is a time-consuming and tedious task in the presence of preprocessor annotations.
Publisher
Association for Computing Machinery (ACM)
Subject
Computer Graphics and Computer-Aided Design,Software
Cited by
6 articles.
订阅此论文施引文献
订阅此论文施引文献,注册后可以免费订阅5篇论文的施引文献,订阅后可以查看论文全部施引文献
1. Evaluating the Code Comprehension of Novices with Eye Tracking;Proceedings of the XXII Brazilian Symposium on Software Quality;2023-11-07
2. Feature trace recording;Proceedings of the 29th ACM Joint Meeting on European Software Engineering Conference and Symposium on the Foundations of Software Engineering;2021-08-18
3. Composing annotations without regret? Practical experiences using FeatureC;Software: Practice and Experience;2017-09-13
4. Aspects influencing feature-oriented software comprehension;Proceedings of the 11th Brazilian Symposium on Software Components, Architectures, and Reuse - SBCARS '17;2017
5. FeatureCoPP: compositional annotations;Proceedings of the 7th International Workshop on Feature-Oriented Software Development;2016-10-30