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 (27)
- Emergence of scaling in random networks
- Fast unfolding of communities in large networks
- Community structure in social and biological networks
- Finding and evaluating community structure in networks
- Community detection in graphs
- Finding community structure in very 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
- Defining and identifying communities in networks
- Community detection algorithms: a comparative analysis
- Community Structure in Jazz
- The performance of modularity maximization in practical contexts
- Modularity from Fluctuations in Random Graphs and Complex Networks
- Nonequilibrium phase transition in the coevolution of networks and opinions
- Software systems as complex networks: structure, function, and evolvability of software collaboration graphs
- Scale-free Networks from Optimal Design
- Advanced modularity-specialized label propagation algorithm for detecting communities in networks
- Unfolding communities in large complex networks: Combining defensive and offensive label propagation for core extraction
- Hierarchical Small Worlds in Software Architecture
- Self-similar scaling of density in complex real-world networks
- Inter-Package Dependency Networks in Open-Source Software
- Logarithmic growth dynamics in software networks
- Punctuated Equilibrium in Software Evolution
- Modular networks emerge from multiconstraint optimization
- Unfolding network communities by combining defensive and offensive label propagation
Cited by in corpus (10)
- Self-similar scaling of density in complex real-world networks
- Finding and testing network communities by lumped Markov chains
- Ubiquitousness of link-density and link-pattern communities in real-world networks
- Software systems through complex networks science: Review, analysis and applications
- Group detection in complex networks: An algorithm and comparison of the state of the art
- Node mixing and group structure of complex software networks
- Ordered community detection in directed networks
- Revealing effective classifiers through network comparison
- Redefining measures of Layered Architecture
- Generalized network community detection