Inter-package dependency networks in open-source software
University of Northern Iowa
Computer Science Department, University of Northern Iowa
Last modified: May 30, 2006
Internet-based repositories of Open-Source Software provide a growing collection of software programs that interact with each other by code reuse. This software is developed by otherwise non-interacting, disjoint development groups with different goals, resources, and development methodologies. The software has a variety of functions, exists at assorted levels of maturity, and is written in a variety of programming languages. We have mined several large repositories and show that despite diversity in development groups and computer system architecture, resource coupling at the inter-package level creates small-world and scale-free networks with a giant component containing recurring motifs; which makes package networks similar to other natural and engineered systems. We document the effect that network structure can have on software robustness and security.