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.
Software systems as complex networks: structure, function, and evolvability of software collaboration graphs
Published 2003 in Physical review. E, Statistical, nonlinear, and soft matter physics
ABSTRACT
PUBLICATION RECORD
- Publication year
2003
- Venue
Physical review. E, Statistical, nonlinear, and soft matter physics
- Publication date
2003-05-23
- Fields of study
Sociology, Physics, Computer Science, Medicine
- Identifiers
- External record
- Source metadata
Semantic Scholar, PubMed
CITATION MAP
EXTRACTION MAP
CLAIMS
- No claims are published for this paper.
CONCEPTS
- No concepts are published for this paper.
REFERENCES
Showing 1-34 of 34 references · Page 1 of 1