Analysis of Software Dependency Networks
This project investigates the structural and robustness properties of package dependency networks in R, Python, and Java. The analysis is guided by the following research questions:
- How can the robustness of package dependency networks be quantified?
- What are the structural characteristics of these networks across languages?
- How resilient are they to random node failures?
Methodology
Using datasets from the Colorado Index of Complex Networks (ICON), we construct directed graphs representing package dependencies. Robustness is assessed through:
- Topological analysis: Degree distribution, assortativity, and community structure
- Resilience metrics: Betweenness centrality, random attack simulations, dynamical importance
- Proposed metric: Network Vulnerability Index (NVI), integrating local and global structure to evaluate network fragility
Key Findings
The three ecosystems exhibit distinct structural features and varying degrees of robustness. Python’s network is densely connected, Java shows modularity, and R is relatively sparse but more homogeneous in node roles.
Contributions
I was responsible for:
- Data preprocessing and transformation
- Structural analysis (degree, assortativity, community detection)
- Robustness simulations and visualization
