TY - JOUR
T1 - The Linux kernel as a case study in software evolution
AU - Israeli, Ayelet
AU - Feitelson, Dror G.
PY - 2010/3
Y1 - 2010/3
N2 - We use 810 versions of the Linux kernel, released over a period of 14 years, to characterize the system's evolution, using Lehman's laws of software evolution as a basis. We investigate different possible interpretations of these laws, as reflected by different metrics that can be used to quantify them. For example, system growth has traditionally been quantified using lines of code or number of functions, but functional growth of an operating system like Linux can also be quantified using the number of system calls. In addition we use the availability of the source code to track metrics, such as McCabe's cyclomatic complexity, that have not been tracked across so many versions previously. We find that the data supports several of Lehman's laws, mainly those concerned with growth and with the stability of the process. We also make some novel observations, e.g. that the average complexity of functions is decreasing with time, but this is mainly due to the addition of many small functions.
AB - We use 810 versions of the Linux kernel, released over a period of 14 years, to characterize the system's evolution, using Lehman's laws of software evolution as a basis. We investigate different possible interpretations of these laws, as reflected by different metrics that can be used to quantify them. For example, system growth has traditionally been quantified using lines of code or number of functions, but functional growth of an operating system like Linux can also be quantified using the number of system calls. In addition we use the availability of the source code to track metrics, such as McCabe's cyclomatic complexity, that have not been tracked across so many versions previously. We find that the data supports several of Lehman's laws, mainly those concerned with growth and with the stability of the process. We also make some novel observations, e.g. that the average complexity of functions is decreasing with time, but this is mainly due to the addition of many small functions.
KW - Lehman's laws
KW - Linux kernel
KW - Software evolution
UR - http://www.scopus.com/inward/record.url?scp=75349084371&partnerID=8YFLogxK
U2 - 10.1016/j.jss.2009.09.042
DO - 10.1016/j.jss.2009.09.042
M3 - ???researchoutput.researchoutputtypes.contributiontojournal.article???
AN - SCOPUS:75349084371
SN - 0164-1212
VL - 83
SP - 485
EP - 501
JO - Journal of Systems and Software
JF - Journal of Systems and Software
IS - 3
ER -