A network perspective on software modularity

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.

[1]  Christopher R. Myers,et al.  Software systems as complex networks: structure, function, and evolvability of software collaboration graphs , 2003, Physical review. E, Statistical, nonlinear, and soft matter physics.

[2]  Thomas W. Reps,et al.  The use of program dependence graphs in software engineering , 1992, International Conference on Software Engineering.

[3]  David Lorge Parnas,et al.  The Modular Structure of Complex Systems , 1984, IEEE Transactions on Software Engineering.

[4]  Simon A. Levin,et al.  Evolution of a modular software network , 2011, Proceedings of the National Academy of Sciences.

[5]  Mark E. J. Newman,et al.  The Structure and Function of Complex Networks , 2003, SIAM Rev..

[6]  Mathieu Bastian,et al.  Gephi: An Open Source Software for Exploring and Manipulating Networks , 2009, ICWSM.

[7]  M. Newman,et al.  Mixing patterns in networks. , 2002, Physical review. E, Statistical, nonlinear, and soft matter physics.

[8]  Claudio J. Tessone,et al.  Sustainable growth in complex networks , 2010, 1007.1330.

[9]  Frank Schweitzer,et al.  The Link between Dependency and Cochange: Empirical Evidence , 2012, IEEE Transactions on Software Engineering.

[10]  Yifan Hu,et al.  Efficient, High-Quality Force-Directed Graph Drawing , 2006 .

[11]  M E J Newman,et al.  Finding and evaluating community structure in networks. , 2003, Physical review. E, Statistical, nonlinear, and soft matter physics.

[12]  Albert-László Barabási,et al.  Statistical mechanics of complex networks , 2001, ArXiv.

[13]  S. Fortunato,et al.  Resolution limit in community detection , 2006, Proceedings of the National Academy of Sciences.

[14]  Mark Newman,et al.  Networks: An Introduction , 2010 .

[15]  G. A. Kohring,et al.  Complex Dependencies in Large Software Systems , 2009, Adv. Complex Syst..

[16]  Marcelo Serrano Zanetti,et al.  The co-evolution of socio-technical structures in sustainable software development: Lessons from the open source software communities , 2012, 2012 34th International Conference on Software Engineering (ICSE).

[17]  Oscar Nierstrasz,et al.  Finding refactorings via change metrics , 2000, OOPSLA '00.