Modularity is a desirable characteristic for software systems. In this article we propose to use a quantitative method from complex network sciences to estimate the coherence between the modularity of the dependency network of large open source Java projects and their decomposition in terms of Java packages. The results presented in this article indicate that our methodology offers a promising and reasonable quantitative approach with potential impact on software engineering processes.
@cite_3: Based on the empirical analysis of the dependency network in 18 Java projects, we develop a novel model of network growth which considersboth: an attachment mechanism and the addition of new nodes with a heterogeneous distribution of their initial degree, k0. Empirically we find that the cumulative degree distributions of initial degrees and of the final network, follow power-law behaviors: P(k0) ∝ k01−α, and P(k) ∝ k1−γ, respectively. For the total number of links as a function of the network size, we find empirically K(N) ∝ Nβ, where β is (at the beginning of thenetwork evolution) between 1.25 and 2, while converging to ∼ 1 for large N. This indicates a transition from a growth regime with increasing network density towards a sustainable regime, which revents a collapse because of ever increasing dependencies. Our theoretical framework is able to predict relations between the exponents α, β, γ, which also link issues of software engineering and developer activity. These relations are verified by means of computer simulations and empirical investigations. They indicate that the growth of real Open Source Software networks occurs on the edge between two regimes, which are either dominated by the initial degree distribution of added nodes, or by the preferential attachment mechanism. Hence, the heterogeneous degree distribution of newly added nodes, found empirically, is essential to describe the laws of sustainable growth in networks.
One of the eye catching features of the time evolution of the @math -metric, as presented in Figure , is the large fluctuation of @math at early stages of the project development. This is in accordance with results reported in @cite_3 . There, it was shown that young open source software projects display an accelerated growth rate while mature projects stabilize their dynamics and can grow further in a sustainable regime.