The Linux kernel as a case study in software evolution

13 years 1 months ago
The Linux kernel as a case study in software evolution
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 s...
Ayelet Israeli, Dror G. Feitelson
Added 29 Jan 2011
Updated 29 Jan 2011
Type Journal
Year 2010
Where JSS
Authors Ayelet Israeli, Dror G. Feitelson
Comments (0)