2015
DOI: 10.1007/s10664-015-9360-1
|View full text |Cite
|
Sign up to set email alerts
|

Preprocessor-based variability in open-source and industrial software systems: An empirical study

Abstract: Almost every sufficiently complex software system today is configurable. Conditional compilation is a simple variability-implementation mechanism that is widely used in open-source projects and industry. Especially, the C preprocessor (cpp) is very popular in practice, but it is also gaining (again) interest in academia. Although there have been several attempts to understand and improve cpp, there is a lack of understanding of how it is used in open-source and industrial systems and whether different usage pa… Show more

Help me understand this report

Search citation statements

Order By: Relevance

Paper Sections

Select...
2
2
1

Citation Types

0
55
0

Year Published

2015
2015
2023
2023

Publication Types

Select...
5
3

Relationship

2
6

Authors

Journals

citations
Cited by 73 publications
(57 citation statements)
references
References 45 publications
0
55
0
Order By: Relevance
“…GQM is used to detect design pattern using source code metrics combining with machine learning [11]. In recent literature, GQM has been used to guide a metric development for fulfilling security goal in the cloud [12], analysis of the use of the C preprocessor in community and industry [13] and designing a mobile app for behavior change [14]. GQM is also used to recommend design patterns for software designers and developers [15].…”
Section: Related Workmentioning
confidence: 99%
“…GQM is used to detect design pattern using source code metrics combining with machine learning [11]. In recent literature, GQM has been used to guide a metric development for fulfilling security goal in the cloud [12], analysis of the use of the C preprocessor in community and industry [13] and designing a mobile app for behavior change [14]. GQM is also used to recommend design patterns for software designers and developers [15].…”
Section: Related Workmentioning
confidence: 99%
“…SD is based on the number of maintenance program locations that one potentially has to consider to maintain a feature and has been already used in other studies [13,14,19,26]. Likewise, our definition of TD is also based on Liebig et al However, the tool used by Liebig et al for computing SD and TD (cppstats) applies transformations on the annotations of the code (e.g., by propagating the condition of outer ifdefs to inner ones and conjoining each #elif/#else condition with the condition of preceding branches).…”
Section: Data Collection and Metricsmentioning
confidence: 99%
“…Hunsen et al [13] used the same metrics and tools, including the transformations on the ifdef conditions, as Liebig et al to compare metric values for open-source and industrial systems. While the authors report the metrics for the individual systems using centrality and dispersion statistics, they used distribution-independent statistical tests (i.e., the MannWhitney U test) to check their hypotheses regarding the difference between open-source and closed-source systems.…”
Section: Related Workmentioning
confidence: 99%
“…Consistent co-evolution of artefacts is a necessity adding complexity to an already non-trivial evolutionary process (Mens et al 2005), occurring in both industrial (Hellebrand et al 2014) and open-source contexts (Passos et al 2015;Hunsen et al 2015). Inconsistent modifications across the three spaces (variability, mapping, and implementation) may lead to the incapacity to derive products, code compilation errors, or dead code (Tartler et al 2011;Nadi and Holt 2012;Abal et al 2014).…”
Section: Introductionmentioning
confidence: 99%
“…While the tool we built to extract changes is centered on the Linux kernel, the approach itself is applicable to a larger set of systems (Berger et al 2013;Hunsen et al 2015) with an explicit variability model, where the implementation of variability is performed using annotative methods (pre-processor statements in our case), and where the mapping between features and implementation assets can be recovered from the build system.…”
Section: Introductionmentioning
confidence: 99%