Extraction Algorithm, Visualization and Structure Analysis of Python Software Networks
Software complexity brings software developers and learners a series of challenges to face. Automatically analyzing large-scale software systems with complex network provides a new insight into software analysis, design, evolution, reuse, and iterative developing. Nowadays, extracting network models derived from software systems and making it easily comprehensible remains challengeable for software engineers. This paper focus on Python software. We propose a series of algorithms to extract python software networks, and a concept of visual information entropy to visualize network to an optimal statue by D3.js. Then we analyze python software networks in different perspectives by Pajek. A series experiments illustrate that software network can disclose the internal hidden associations to facilitate programmer and learner to understand the software complex structure and business logic through the simplified complexity. Finally we create a synthetic software tool integrated by above three functions, which can assist programmers to understand software macro structure and the hidden backbone associations.
KeywordsComplex networks Software networks Python
This paper is partly supported by “Key Cultivation Engineering Project of Communication University of China (Project number: 3132017XNG1606 and 3132017XNG1719)”, “the Excellent Young Teachers Training Project (the second level, Project number: YXJS201508)”, “Cultural technological innovation project of Ministry of Culture of P. R. China (Project number: 2014–12)”. The research work was also supported by “Chaoyang District Science and Technology Project (CYXC1504)”.
- 4.Veldhuizen, L.T.: Software libraries and their reuse: entropy, kolmogorov complexity, and zipf ’s law. In: Library-Centric Software Design (LCSD 2005), p. 11 (2005)Google Scholar
- 8.Latva-Koivisto, A.: Finding a complexity measure for business process models (2001)Google Scholar
- 12.Han, Y., Li, D., Chen, G.: Analysis on the topological properties of software network at different levels of granularity and its application. Chin. J. Comput. 32(9), 1711–1721 (2009)Google Scholar
- 13.He, K., Ma, Y., Liu, J., Li, B., Peng, R.: Software Networks. Science Press, China (2008)Google Scholar
- 14.Ma, Y., He, K., Ding, Q., Liu, J.: Research progress of complex networks in software systems. Adv. Mech. 5, 805–814 (2008). ISSN 1000–0992Google Scholar
- 16.Wang, B.: Software system testing based on weighted software network. In: International Conference on Information Technology, Service Science and Engineering Management (2011)Google Scholar
- 17.Wang, B., Lv, J.: Software network node impact analysis of complex software system. J. Softw. 12, 1000–9825 (2013)Google Scholar
- 18.Zhao, Z., Yu, H., Zhu, Z.: The importance of dynamic software network nodes based on the information content. In: Application Research of Computer, no. 7, pp. 1001–3695 (2015)Google Scholar
- 19.Wang, Y., Yu, H.: An integrated test sequence generation method based on the importance of software nodes. J. Comput. Res. Dev. 3, 1000–1239 (2016)Google Scholar
- 21.Li, C., Liu, L., Lu, Z.: Extraction algorithms and structure analysis of software complex networks. Int. J. Digital Content Technol. Appl. 6(13), 333–343 (2012). Binder1, part 36Google Scholar
- 22.Li, C., Liu, L.: Complex networks with external degree. Chinese J. Electron. 23(3), 442–447 (2014)Google Scholar