Hierarchical Small Worlds in Software Architecture
Sergi Valverde, Ricard V. Sole

TL;DR
This paper applies complex network analysis to object-oriented software systems, revealing universal small-world and scale-free patterns that are influenced by language features and growth constraints, with implications for software engineering practices.
Contribution
It introduces a network-based approach to analyze software architecture, uncovering universal patterns and their origins in object-oriented programming languages.
Findings
All analyzed OO systems exhibit small-world behavior.
Software networks follow a power-law degree distribution.
Features like encapsulation influence network structure.
Abstract
In this paper, we present a complex network approach to the study of software engineering. We have found universal network patterns in a large collection of object-oriented (OO) software systems written in C++ and Java. All the systems analyzed here display the small-world behavior, that is, the average distance between any pair of classes is very small even when coupling is low and cohesion is high. In addition, the structure of OO software is a very heterogeneous network characterized by a degree distribution following a power-law with similar exponents. We have investigated the origin of these universal patterns. Our study suggests that some features of OO programing languages, like encapsulation, seem to be largely responsible for the small-world behavior. On the other hand, software heterogeneity is largely independent of the purpose and objectives of the particular system under…
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
TopicsSoftware Engineering Research · Advanced Software Engineering Methodologies · Software System Performance and Reliability
