Linux kernels as complex networks: A novel method to study evolution

In recent years, many graphs have turned out to be complex networks. This paper presents a novel method to study Linux kernel evolution — using complex networks to understand how Linux kernel modules evolve over time. After studying the node degree distribution and average path length of the call graphs corresponding to the kernel modules of 223 different versions (V1.1.0 to V2.4.35), we found that the call graphs of the file system and drivers module are scale-free small-world complex networks. In addition, both of the file system and drivers module exhibit very strong preferential attachment tendency. Finally, we proposed a generic method that could be used to find major structural changes that occur during the evolution of software systems.

[1]  R. Solé,et al.  Self-organization versus hierarchy in open-source social networks. , 2007, Physical review. E, Statistical, nonlinear, and soft matter physics.

[2]  E. Kay,et al.  Introductory Graph Theory , 1978 .

[3]  Samantha Jenkins,et al.  Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution , 2007, Inf. Sci..

[4]  Meir M. Lehman,et al.  Evolution in software and related areas , 2001, IWPSE '01.

[5]  Alan M. Frieze,et al.  Random graphs , 2006, SODA '06.

[6]  Valérie Issarny,et al.  Multi-view description of software architectures , 1998, ISAW '98.

[7]  Qiang Tu,et al.  Growth, evolution, and structural change in open source software , 2001, IWPSE '01.

[8]  Harald C. Gall,et al.  Populating a Release History Database from version control and bug tracking systems , 2003, International Conference on Software Maintenance, 2003. ICSM 2003. Proceedings..

[9]  M. Newman,et al.  Renormalization Group Analysis of the Small-World Network Model , 1999, cond-mat/9903357.

[10]  Rick Kazman,et al.  An approach to software architecture analysis for evolution and reusability , 1997, CASCON.

[11]  Mark E. J. Newman,et al.  The Structure and Function of Complex Networks , 2003, SIAM Rev..

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

[13]  David Garlan,et al.  Architecture-driven modelling and analysis , 2007 .

[14]  Christopher R. Myers,et al.  Software systems as complex networks: structure, function, and evolvability of software collaboration graphs , 2003, Physical review. E, Statistical, nonlinear, and soft matter physics.

[15]  Sergi Valverde,et al.  Hierarchical Small Worlds in Software Architecture , 2003 .

[16]  Duncan J. Watts,et al.  Collective dynamics of ‘small-world’ networks , 1998, Nature.

[17]  Albert,et al.  Emergence of scaling in random networks , 1999, Science.

[18]  Harald C. Gall,et al.  Fine-grained analysis of change couplings , 2005, Fifth IEEE International Workshop on Source Code Analysis and Manipulation (SCAM'05).

[19]  M. Newman Power laws, Pareto distributions and Zipf's law , 2005 .

[20]  Mourad Oussalah,et al.  A unified approach for software architecture evolution at different abstraction levels , 2005, Eighth International Workshop on Principles of Software Evolution (IWPSE'05).

[21]  Michael W. Godfrey,et al.  Evolution in open source software: a case study , 2000, Proceedings 2000 International Conference on Software Maintenance.

[22]  Harald C. Gall,et al.  Improving evolvability through refactoring , 2005, MSR.

[23]  M. E. J. Newman,et al.  Power laws, Pareto distributions and Zipf's law , 2005 .

[24]  Nathan LaBelle,et al.  Inter-Package Dependency Networks in Open-Source Software , 2004, ArXiv.

[25]  Meir M. Lehman,et al.  Laws of Software Evolution Revisited , 1996, EWSPT.