Community structure of complex software systems: Analysis and applications
Lovro \v{S}ubelj, Marko Bajec

TL;DR
This paper investigates the community structure in class dependency networks of software systems, revealing significant communities that differ from traditional packages, with implications for software engineering applications.
Contribution
It demonstrates the presence of community structures in software networks and explores their properties and potential applications, expanding understanding of software system organization.
Findings
Software networks exhibit significant community structures.
Communities do not exactly match software packages.
Community detection can be applied to software engineering tasks.
Abstract
Due to notable discoveries in the fast evolving field of complex networks, recent research in software engineering has also focused on representing software systems with networks. Previous work has observed that these networks follow scale-free degree distributions and reveal small-world phenomena, while we here explore another property commonly found in different complex networks, i.e. community structure. We adopt class dependency networks, where nodes represent software classes and edges represent dependencies among them, and show that these networks reveal a significant community structure, characterized by similar properties as observed in other complex networks. However, although intuitive and anticipated by different phenomena, identified communities do not exactly correspond to software packages. We empirically confirm our observations on several networks constructed from Java…
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.
