Extraction Algorithm, Visualization and Structure Analysis of Python Software Networks

  • Ao Shang
  • Chunfang LiEmail author
  • Hao Zheng
  • Minyong Shi
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 11242)


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.


Complex 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)”.


  1. 1.
    Watts, D.J., Strogatz, S.H.: Collective dynamics of “smallworld” networks. Nature 393(6684), 440–442 (1998)CrossRefGoogle Scholar
  2. 2.
    Barabasi, A.-L., Albert, R.: Emergence of scaling in random networks. Science 286(5439), 509–512 (1999)MathSciNetCrossRefGoogle Scholar
  3. 3.
    Morzy, M., Kajdanowicz, T., Kazienko, P.: On measuring the complexity of networks: kolmogorov complexity versus entropy. Complexity 2017, 12 (2017). Article ID 3250301MathSciNetCrossRefGoogle Scholar
  4. 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
  5. 5.
    Bonchev, D., Buck, G.A.: Quantitative measures of network complexity. In: Bonchev, D., Rouvray, D.H. (eds.) Complexity in Chemistry, Biology, and Ecology, pp. 191–235. Springer, New York (2005)CrossRefGoogle Scholar
  6. 6.
    Cardoso, J., Mendling, J., Neumann, G., Reijers, H.A.: A discourse on complexity of process models. In: Eder, J., Dustdar, S. (eds.) BPM 2006. LNCS, vol. 4103, pp. 117–128. Springer, Heidelberg (2006). Scholar
  7. 7.
    Cardoso, J.: Complexity analysis of BPEL web processes. Softw. Process Improv. Pract. 12(1), 35–49 (2007)CrossRefGoogle Scholar
  8. 8.
    Latva-Koivisto, A.: Finding a complexity measure for business process models (2001)Google Scholar
  9. 9.
    Constantine, G.M.: Graph complexity and the Laplacian matrix in blocked experiments. Linear Multilinear Algebr. 28(1–2), 49–56 (1990)MathSciNetCrossRefGoogle Scholar
  10. 10.
    Neel, D.L., Orrison, M.E.: The linear complexity of a graph. Electron. J. Comb. 13(1), 19 (2006). ResearchPaper 9MathSciNetzbMATHGoogle Scholar
  11. 11.
    Strogatz, S.H.: Exploring complex networks. Nature 410(6825), 268–276 (2001)CrossRefGoogle Scholar
  12. 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. 13.
    He, K., Ma, Y., Liu, J., Li, B., Peng, R.: Software Networks. Science Press, China (2008)Google Scholar
  14. 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
  15. 15.
    Ma, Y., He, K., Liu, J., Li, B., Zhou, X.: A hybrid set of complexity metrics for large-scale object-oriented software systems. J. Comput. Sci. Technol. 25(6), 1184–1201 (2010)CrossRefGoogle Scholar
  16. 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. 17.
    Wang, B., Lv, J.: Software network node impact analysis of complex software system. J. Softw. 12, 1000–9825 (2013)Google Scholar
  18. 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. 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
  20. 20.
    Myers, C.R.: Software systems as complex networks: structure, function, and evolvability of software collaboration graphs. Phys. Rev. E 68(4), 046116 (2003)MathSciNetCrossRefGoogle Scholar
  21. 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. 22.
    Li, C., Liu, L.: Complex networks with external degree. Chinese J. Electron. 23(3), 442–447 (2014)Google Scholar

Copyright information

© Springer Nature Switzerland AG 2018

Authors and Affiliations

  1. 1.Computer SchoolCommunication University of ChinaBeijingChina

Personalised recommendations