DocumentCode :
2619157
Title :
High-MCC functions in the Linux kernel
Author :
Jbara, Ahmad ; Matan, Adam ; Feitelson, Dror G.
Author_Institution :
Sch. of Comput. Sci. & Eng., Hebrew Univ. of Jerusalem, Jerusalem, Israel
fYear :
2012
fDate :
11-13 June 2012
Firstpage :
83
Lastpage :
92
Abstract :
McCabe´s Cyclomatic Complexity (MCC) is a widely used metric for the complexity of control flow. Common usage decrees that functions should not have an MCC above 50, and preferably much less. However, the Linux kernel includes more than 800 functions with MCC values above 50, and over the years 369 functions have had an MCC of 100 or more. Moreover, some of these functions undergo extensive evolution, indicating that developers are successful in coping with the supposed high complexity. We attempt to explain this by analyzing the structure of such functions and showing that in many cases they are in fact well-structured. At the same time, we observe cases where developers indeed refactor the code in order to reduce complexity. These observations indicate that a high MCC is not necessarily an impediment to code comprehension, and support the notion that complexity cannot be fully captured using simple syntactic code metrics.
Keywords :
Linux; computational complexity; operating system kernels; software metrics; Linux kernel; McCabe cyclomatic complexity; control flow complexity; extensive evolution; high MCC functions; syntactic code metrics; Complexity theory; Correlation; Kernel; Linux; Measurement; Programming; Switches; Linux Kernel; McCabe Cyclomatic Complexity; Software Complexity;
fLanguage :
English
Publisher :
ieee
Conference_Titel :
Program Comprehension (ICPC), 2012 IEEE 20th International Conference on
Conference_Location :
Passau
ISSN :
1092-8138
Print_ISBN :
978-1-4673-1213-4
Electronic_ISBN :
1092-8138
Type :
conf
DOI :
10.1109/ICPC.2012.6240512
Filename :
6240512
Link To Document :
بازگشت