Evolution in open source software: a case study

Most studies of software evolution have been performed on systems developed within a single company using traditional management techniques. With the widespread availability of several large software systems that have been developed using an "open source" development approach, we now have a chance to examine these systems in detail, and see if their evolutionary narratives are significantly different from commercially developed systems. The paper summarizes our preliminary investigations into the evolution of the best known open source system: the Linux operating system kernel. Because Linux is large (over two million lines of code in the most recent version) and because its development model is not as tightly planned and managed as most industrial software processes, we had expected to find that Linux was growing more slowly as it got bigger and more complex. Instead, we have found that Linux has been growing at a super-linear rate for several years. The authors explore the evolution of the Linux kernel both at the system level and within the major subsystems, and they discuss why they think Linux continues to exhibit such strong growth.

[1]  Dewayne E. Perry,et al.  Implications of evolution metrics on software maintenance , 1998, Proceedings. International Conference on Software Maintenance (Cat. No. 98CB36272).

[2]  Richard C. Holt,et al.  Reconstructing ownership architectures to help understand software systems , 1999, Proceedings Seventh International Workshop on Program Comprehension.

[3]  Meir M. Lehman,et al.  Program evolution: processes of software change , 1985 .

[4]  Harald C. Gall,et al.  Software evolution observations based on product release history , 1997, 1997 Proceedings International Conference on Software Maintenance.

[5]  Chris F. Kemerer,et al.  An Empirical Approach to Studying Software Evolution , 1999, IEEE Trans. Software Eng..

[6]  Audris Mockus,et al.  Does Code Decay? Assessing the Evidence from Change Management Data , 2001, IEEE Trans. Software Eng..

[7]  Wladyslaw M. Turski Reference Model for Smooth Growth of Software Systems(003)5402022 , 1996, IEEE Transactions on Software Engineering.

[8]  Eric Lease Morgan,et al.  Review of The Cathedral & the Bazaar: Musings on Linux and Open Source by an Accidental Revolutionary by Eric S. Raymond, Sebastopol, Calif.: O'Reilly, 1999 , 2000 .

[9]  Michael W. Godfrey,et al.  Architectural repair of open source software , 2000, Proceedings IWPC 2000. 8th International Workshop on Program Comprehension.

[10]  Eric S. Raymond,et al.  The cathedral and the bazaar - musings on Linux and Open Source by an accidental revolutionary , 2001 .

[11]  David Lorge Parnas,et al.  Software aging , 1994, Proceedings of 16th International Conference on Software Engineering.

[12]  Richard C. Holt,et al.  Linux as a case study: its extracted software architecture , 1999, Proceedings of the 1999 International Conference on Software Engineering (IEEE Cat. No.99CB37002).

[13]  Richard C. Holt,et al.  Forward and reverse repair of software architecture , 1999, CASCON.

[14]  Dewayne E. Perry,et al.  Dimensions of software evolution , 1994, Proceedings 1994 International Conference on Software Maintenance.

[15]  Michael W. Godfrey,et al.  Architecture Analysis and Repair of Open Source Software , 2000 .

[16]  Dewayne E. Perry,et al.  Metrics and laws of software evolution-the nineties view , 1997, Proceedings Fourth International Software Metrics Symposium.