Abstract
Software systems are a typical kind of man-made complex systems. Understanding their evolutions can lead to better software engineering practices. In this paper, the authors use complex network theory as a tool to analyze the evolution of object-oriented (OO) software from a multigranularity perspective. First, a multi-granularity software networks model is proposed to represent the topological structures of a multi-version software system from three levels of granularity. Then, some parameters widely used in complex network theory are applied to characterize the software networks. By tracing the parameters’ values in consecutive software systems, we have a better understanding about software evolution. A case study is conducted on an open source OO project, Azureus, as an example to illustrate our approach, and some underlying evolution characteristics are uncovered. These results provide a different dimension to our understanding of software evolutions and also are very useful for the design and development of OO software systems.
Similar content being viewed by others
References
L. Costa, O. Oliveria, and G. Travieso, Analyzing and modeling real-world phenomena with complex networks: A survey of applications, ArXiv: 0711.3199v2, 2008.
J. Lü and G. Chen, Analysis, control and application of complex networks: A brief overview, Proceedings of the 2009 IEEE International Symposium on Circuits and Systems, Taipei, Taiwan, 2009.
J. Lü and D. Liu, A brief overview of the complex biological and engineering networks, Proceedings of the 2007 IEEE International Symposium on Circuits and Systems, New Orleans, USA, 2007.
C. R. Myers, Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs, Physical Review E, 2003, 68: 046116.
A. Potanin, J. Noble, M. Frean, and R. Biddle, Scale-free geometry in OO programs, Communication of the ACM, 2005, 48(5): 99–103.
G. Concas, M. Marchesi, S. Pinna, and N. Serra, Power-laws in a large object-oriented software system, IEEE Transactions on Software Engineering, 2007, 33(10): 687–708.
W. Pan, B. Li, Y. Ma, Y. Qin, and X. Zhou, Measuring structural quality of object-oriented softwares via bug propagation analysis on weighted software networks, Journal of Computer Science and Technology, 2010, 25(6): 1202–1213.
J. Liu, J. Lü, K. He, B. Li, and C. K. Tse, Characterizing the structure quality of general complex software networks, International Journal of Bifurcation and Chaos, 2008, 18(2): 605–613.
J. Lü, H. Wang, and K. He, Complex dynamical networks and their applications in software engineering, Journal of Computer Research and Development, 2009, 45(12): 2052–2059.
B. Li, Y. Ma, J. Liu, and Q. Ding, Advances in the studies on complex networks of software systems, Advances in Mechanics, 2008, 38(6): 805–814.
H. C. Gall and M. Lanza, Software evolution: Analysis and visualization, Proceedings of the 28th International Conference on Software Engineering, Shanghai, China, 2006.
S. Jenkins and S. R. Kirk, Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution, Information Science, 2007, 177(12): 2587–2601.
M. Shi, X. Li, and X. Wang, Evolving topology of Java networks, Proceedings of the 6th World Congress on Control and Automation, Dalian, China, 2006.
L. Wang, Z. Wang, C. Yang, L. Zhang, and Q. Ye, Linux kernels as complex networks: A novel method to study evolution, Proceedings of the 25th International Conference on Software Maintenance, Edmonton, Alberta, Canada, 2009.
H. Li, B. Huang, and J. Lü, Dynamical evolution analysis of the object-oriented software systems, Proceedings of the 2008 IEEE World Congress on Computational Intelligence, Hong Kong, 2008.
Azureus web site, http://sourceforge.net/projects/azureus/files.
Sourceforge repository web site, http://sourceforge.org.
D. R. Cox and P. A. W. Lewis, The Statistical Analysis of Series of Events, Chapman and Hall, 1966.
A. L. Barabási, H. Jeong, and Z. Néda, Evolution of the social network of scientific collaborations, Physica A, 2002, 311(3–4): 590–614.
A. P. Masucci and G. J. Rodgers, Network properties of written human language, Physical Review E, 2006, 74: 026102.
A. P. Masucci and G. J. Rodgers, Analyzing open-source software systems as complex networks, Physica A, 2008, 387(24): 6190–6200.
A. L. Barabási and R. Albert, Emergence of scaling in random networks, Science, 1999, 286: 509–512.
D. J. Watts and S. H. Strogatz, Collective dynamics of small-world networks, Nature, 1998, 393(6684): 440–442.
M. E. J. Newman, Fast algorithm for detecting community structure in networks, Physical Review, 2004, 69: 066133.
M. E. J. Newman, Assortative mixing in networks, Physical Review Letters, 2002, 89: 208701.
S. Zhou and R. J. Mondragon, The rich-club phenomenon in the Internet topology, IEEE Communication Letters, 2004, 8(3): 180–182.
Author information
Authors and Affiliations
Corresponding author
Additional information
This research is supported by the National Basic Research 973 Program of China under Grant No. 2007CB310801, the National Natural Science Foundation of China under Grant Nos. 60873083 and 61003073, the Research Fund for the Doctoral Program of Higher Education of China under Grant No. 20090141120022, the Fundamental Research Funds for the Central Universities of China under Grant Nos. 114013 and 6082005, and the Scientific Research Fund of Zhejiang Provincial Education Department under Grant No. Y201018008.
This paper was recommended for publication by Editor Jinhu LÜ.
Rights and permissions
About this article
Cite this article
Pan, W., Li, B., Ma, Y. et al. Multi-granularity evolution analysis of software using complex network theory. J Syst Sci Complex 24, 1068–1082 (2011). https://doi.org/10.1007/s11424-011-0319-z
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s11424-011-0319-z