TY - GEN
T1 - Mining Kbuild to detect variability anomalies in Linux
AU - Nadi, Sarah
AU - Holt, Ric
PY - 2012
Y1 - 2012
N2 - The Linux kernel is extensively specialized or configured so that it can be used for many purposes. This variability is implemented by means of three distinct artifacts: source code files, Kconfig (configuration) files, and Makefiles. Any inconsistencies between these three can lead to undesirable anomalies which can lead to increased maintenance efforts or decreased reliability. This paper extends published work that had found anomalies (dead and undead code blocks) by concentrating largely on code and Kconfig files. We detect further anomalies in the Linux kernel when we also consider the Makefiles. At the level of code blocks, our work exposes many additional anomalies -more than we could study manually. We found that when we lift the level from code blocks to code files, the detected anomalies became easier to study and understand and thus more useful to the developer. By means of examples, we illustrate how the anomalies we detect can lead to undesired behavior. We show how, over time, developers tend to find and delete such anomalies. We suggest that automatic detection of such anomalies has the potential to decrease maintenance efforts and increase reliability.
AB - The Linux kernel is extensively specialized or configured so that it can be used for many purposes. This variability is implemented by means of three distinct artifacts: source code files, Kconfig (configuration) files, and Makefiles. Any inconsistencies between these three can lead to undesirable anomalies which can lead to increased maintenance efforts or decreased reliability. This paper extends published work that had found anomalies (dead and undead code blocks) by concentrating largely on code and Kconfig files. We detect further anomalies in the Linux kernel when we also consider the Makefiles. At the level of code blocks, our work exposes many additional anomalies -more than we could study manually. We found that when we lift the level from code blocks to code files, the detected anomalies became easier to study and understand and thus more useful to the developer. By means of examples, we illustrate how the anomalies we detect can lead to undesired behavior. We show how, over time, developers tend to find and delete such anomalies. We suggest that automatic detection of such anomalies has the potential to decrease maintenance efforts and increase reliability.
UR - http://www.scopus.com/inward/record.url?scp=84860505066&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84860505066&partnerID=8YFLogxK
U2 - 10.1109/CSMR.2012.21
DO - 10.1109/CSMR.2012.21
M3 - Conference contribution
AN - SCOPUS:84860505066
SN - 9780769546667
T3 - Proceedings of the European Conference on Software Maintenance and Reengineering, CSMR
SP - 107
EP - 116
BT - Proceedings - 2012 16th European Conference on Software Maintenance and Reengineering, CSMR 2012
T2 - 2012 16th European Conference on Software Maintenance and Reengineering, CSMR 2012
Y2 - 27 March 2012 through 30 March 2012
ER -