Evolution of a Modular Software Network
arXiv:1111.5251 · doi:10.1073/pnas.1115960108
Abstract
"Evolution behaves like a tinkerer" (Francois Jacob, Science, 1977). Software systems provide a unique opportunity to understand biological processes using concepts from network theory. The Debian GNU/Linux operating system allows us to explore the evolution of a complex network in a novel way. The modular design detected during its growth is based on the reuse of existing code in order to minimize costs during programming. The increase of modularity experienced by the system over time has not counterbalanced the increase in incompatibilities between software packages within modules. This negative effect is far from being a failure of design. A random process of package installation shows that the higher the modularity the larger the fraction of packages working properly in a local computer. The decrease in the relative number of conflicts between packages from different modules avoids a failure in the functionality of one package spreading throughout the entire system. Some potential analogies with the evolutionary and ecological processes determining the structure of ecological networks of interacting species are discussed.
To appear in PNAS
References in corpus (5)
Cited by in corpus (14)
- Nestedness in complex networks: Observation, emergence, and implications
- A maximum entropy framework for non-exponential distributions
- Laplacian paths in complex networks: information core emerges from entropic transitions
- Zipf and Heaps laws from dependency structures in component systems
- Node mixing and group structure of complex software networks
- Networks with many structural scales: a Renormalization Group perspective
- Evolution in the Debian GNU/Linux software network: analogies and differences with gene regulatory networks
- A Network Perspective on Software Modularity
- How Scale Affects Structure in Java Programs
- A complex network analysis of the Comprehensive R Archive Network (CRAN) package ecosystem
- Asymptotic versus mesoscopic spectral dimensions in networks and inhomogeneous structures
- Node package manager's dependency network robustness
- Hard and soft bounds in the evolution of Ubuntu packages. A lesson for species body masses?
- On the Dependency Heaviness of CRAN/Bioconductor Ecosystem