Community structure of complex software systems: Analysis and applications
arXiv:1105.4276 · doi:10.1016/j.physa.2011.03.036
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 and various third party libraries, and propose different applications of community detection to software engineering.
References in corpus (10)
- Fast unfolding of communities in large networks
- Uncovering the overlapping community structure of complex networks in nature and society
- Near linear time algorithm to detect community structures in large-scale networks
- Resolution limit in community detection
- Comparing community structure identification
- Community Structure in Jazz
- Nonequilibrium phase transition in the coevolution of networks and opinions
- Unfolding communities in large complex networks: Combining defensive and offensive label propagation for core extraction
- Inter-Package Dependency Networks in Open-Source Software
- Modular networks emerge from multiconstraint optimization