Software systems as complex networks: structure, function, and evolvability of software collaboration graphs
C. R. Myers

TL;DR
This paper analyzes software collaboration graphs as complex networks, revealing scale-free and small-world properties, and proposes a model of software evolution based on refactoring, with implications for design and robustness.
Contribution
It introduces a network-based analysis of software systems, demonstrating their scale-free and small-world characteristics, and presents a simple evolution model capturing key features.
Findings
Software collaboration graphs are scale-free and small-world networks.
Refactoring-based evolution model reproduces observed network features.
Implications for object-oriented design and software robustness.
Abstract
Software systems emerge from mere keystrokes to form intricate functional networks connecting many collaborating modules, objects, classes, methods, and subroutines. Building on recent advances in the study of complex networks, I have examined software collaboration graphs contained within several open-source software systems, and have found them to reveal scale-free, small-world networks similar to those identified in other technological, sociological, and biological systems. I present several measures of these network topologies, and discuss their relationship to software engineering practices. I also present a simple model of software system evolution based on refactoring processes which captures some of the salient features of the observed systems. Some implications of object-oriented design for questions about network robustness, evolvability, degeneracy, and organization are…
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.
