Complex Dependencies in Large Software Systems
G.A. Kohring

TL;DR
This paper analyzes large open source software systems using complex systems theory, revealing their dependency structures follow Zipf's law, lack Small-World properties, and highlighting the importance of eigenvector centrality in package selection.
Contribution
It applies complex adaptive systems theory to software dependency graphs, challenging assumptions about Small-World properties and emphasizing eigenvector centrality's role in critical package selection.
Findings
Dependency graphs follow Zipf's law
Software systems lack Small-World properties
Eigenvector centrality indicates package importance
Abstract
Two large, open source software systems are analyzed from the vantage point of complex adaptive systems theory. For both systems, the full dependency graphs are constructed and their properties are shown to be consistent with the assumption of stochastic growth. In particular, the afferent links are distributed according to Zipf's law for both systems. Using the Small-World criterion for directed graphs, it is shown that contrary to claims in the literature, these software systems do not possess Small-World properties. Furthermore, it is argued that the Small-World property is not of any particular advantage in a standard layered architecture. Finally, it is suggested that the eigenvector centrality can play an important role in deciding which open source software packages to use in mission critical applications. This comes about because knowing the absolute number of afferent links…
Peer Reviews
No public reviews on file for this paper yet. If you reviewed it on a platform where reviews are public (OpenReview, ICLR, NeurIPS, ICML), you can paste yours below so the community can read it here.
Videos
No videos yet. Explain this paper in a talk, walkthrough, or lecture? Add one.
Taxonomy
TopicsComplex Network Analysis Techniques · Opinion Dynamics and Social Influence · Complex Systems and Time Series Analysis
