Proceedings of the 32nd ACM/IEEE International Conference on Software Engineering - Volume 1 2010
DOI: 10.1145/1806799.1806819
|View full text |Cite
|
Sign up to set email alerts
|

An analysis of the variability in forty preprocessor-based software product lines

Abstract: Over 30 years ago, the preprocessor cpp was developed to extend the programming language C by lightweight metaprogramming capabilities. Despite its error-proneness and low abstraction level, the preprocessor is still widely used in present-day software projects to implement variable software. However, not much is known about how cpp is employed to implement variability. To address this issue, we have analyzed forty open-source software projects written in C. Specifically, we answer the following questions: How… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
1
1
1

Citation Types

3
247
0

Year Published

2013
2013
2019
2019

Publication Types

Select...
4
3

Relationship

0
7

Authors

Journals

citations
Cited by 270 publications
(260 citation statements)
references
References 37 publications
3
247
0
Order By: Relevance
“…Finally, some works discuss characteristics of feature implementations in code, such as feature cohesion and coupling [1] or granularity, frequency and structure of preprocessor annotations [12,16]. However, these works are not easily generalizable to address the issue of structural complexity of models.…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…Finally, some works discuss characteristics of feature implementations in code, such as feature cohesion and coupling [1] or granularity, frequency and structure of preprocessor annotations [12,16]. However, these works are not easily generalizable to address the issue of structural complexity of models.…”
Section: Discussion and Related Workmentioning
confidence: 99%
“…We consider only configurable implementation assets (source files). We focus specifically on pre-processor based variability implementation (using #ifdef statements), which, despite known limitations (Spencer and Collyer 1992), is still widely used today (Liebig et al 2010). An example of an addition of a pre-processor statement is presented in Listing 3 where feature SQUASHFS FILE DIRECT is used to condition the compilation of two code blocks, one…”
Section: Assetsmentioning
confidence: 99%
“…To rebuild the models, we rely on CPPSTATS (Liebig et al 2010) to obtain starting and ending lines of each #ifdef block as well as their guarding condition. It should be noted that Fig.…”
Section: Extracting Implementation Changesmentioning
confidence: 99%
See 2 more Smart Citations