Software systems as complex networks: structure, function, and evolvability of software collaboration graphs
By Christopher R. Myers. Physical review. E, Statistical, nonlinear, and soft matter physics, 2003
456 citations recorded by the source corpus.
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 discussed in the wake of these findings.
Subfields: Computer Science Applications, Information Systems, Statistical and Nonlinear Physics
View Paper: https://www.semanticscholar.org/paper/2e023f8c6e423073ac1755bda723c20254a9b3a6
How researchers see this paper
The researchers whose trusted networks rank it highest, strongest advocate first. Every researcher gets a different order.
In Computer Science Applications
In Information Systems
In Statistical and Nonlinear Physics
- R. V. Solé
- Sergi Valverde
- An Zeng
- Osvaldo Novaes de Oliveira Jr.
- Jianlin Zhou
- Luciano da Fontoura Costa
- Luis Enrique Correa Rocha
- P. R. Villas Boas
Citations in the corpus
- An empirical comparison of dependency network evolution in seven software packaging ecosystems (2017, background): “ness, the small world phenomenon, and power law behaviour. Earlier work has revealed such complex network characteristics for class dependency graphs of individual open source software systems (e.g., [47,61]). Inspired by [11], we hypothesise that package dependency networks of open source packaging”
- Information Theory of Complex Networks: On Evolution and Architectural Constraints (2004, background): “Class diagrams constitute a wellknown example of such graphs [34,35].”
- Analyzing and modeling real-world phenomena with complex networks: a survey of applications (2007, result): “Myers [165] found similar results for six software architectu re networks VTK, CVS, abiWord, the Linux Kernel, MySQL and XMMS), where the distribution of inc oming and outgoing links is scale-free.”
- The science of science: from the perspective of complex systems (2017, background): “In addition, certain models have been proposed for software network evolution and describe the evolutionary mechanisms from different perspectives such as refactoring processes [426], software patterns [436], modular attachment [437] and multi-level networks [438].”