The Linux kernel as a case study in software evolution

被引:82
作者
Israeli, Ayelet [1 ]
Feitelson, Dror G. [1 ]
机构
[1] Hebrew Univ Jerusalem, Dept Comp Sci, IL-91904 Jerusalem, Israel
关键词
Software evolution; Lehman's laws; Linux kernel; MAINTAINABILITY; COMPLEXITY; CRITIQUE; MODEL; LAWS;
D O I
10.1016/j.jss.2009.09.042
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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. (C) 2009 Elsevier Inc. All rights reserved.
引用
收藏
页码:485 / 501
页数:17
相关论文
共 64 条
[1]  
Albinet A, 2004, 2004 INTERNATIONAL CONFERENCE ON DEPENDABLE SYSTEMS AND NETWORKS, PROCEEDINGS, P867
[2]  
[Anonymous], 1975, MYTHICAL MAN MONTH E
[3]  
[Anonymous], 2005, Linux Kernel Development
[4]   Software visualization in the large [J].
Ball, T ;
Eick, SG .
COMPUTER, 1996, 29 (04) :33-&
[5]  
Bowman I. T., 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002), P555, DOI 10.1109/ICSE.1999.841045
[6]  
BRIAND L, 1999, IEEE INT C SOFTW MAI, P475, DOI DOI 10.1109/ICSM.1999.792645
[7]   Structural evolution of an Open Source system: a case study [J].
Capiluppi, A ;
Morisio, M ;
Ramil, JF .
IWPC 2004: 12TH IEEE INTERNATIONAL WORKSHOP ON PROGRAM COMPREHENSION, PROCEEDINGS, 2004, :172-182
[8]   Models for the evolution of OS projects [J].
Capiluppi, A .
INTERNATIONAL CONFERENCE ON SOFTWARE MAINTENANCE, PROCEEDINGS, 2003, :65-74
[9]   Open-source change logs [J].
Chen, K ;
Schach, SR ;
Yu, LG ;
Offutt, J ;
Heller, GZ .
EMPIRICAL SOFTWARE ENGINEERING, 2004, 9 (03) :197-210
[10]  
Chou Andy., 2001, P 18 ACM S OPERATING, P73