Abstract
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.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Similar content being viewed by others
References
Watts, D.J., Strogatz, S.H.: Collective dynamics of “smallworld” networks. Nature 393(6684), 440–442 (1998)
Barabasi, A.-L., Albert, R.: Emergence of scaling in random networks. Science 286(5439), 509–512 (1999)
Morzy, M., Kajdanowicz, T., Kazienko, P.: On measuring the complexity of networks: kolmogorov complexity versus entropy. Complexity 2017, 12 (2017). Article ID 3250301
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)
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)
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). https://doi.org/10.1007/11837862_13
Cardoso, J.: Complexity analysis of BPEL web processes. Softw. Process Improv. Pract. 12(1), 35–49 (2007)
Latva-Koivisto, A.: Finding a complexity measure for business process models (2001)
Constantine, G.M.: Graph complexity and the Laplacian matrix in blocked experiments. Linear Multilinear Algebr. 28(1–2), 49–56 (1990)
Neel, D.L., Orrison, M.E.: The linear complexity of a graph. Electron. J. Comb. 13(1), 19 (2006). ResearchPaper 9
Strogatz, S.H.: Exploring complex networks. Nature 410(6825), 268–276 (2001)
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)
He, K., Ma, Y., Liu, J., Li, B., Peng, R.: Software Networks. Science Press, China (2008)
Ma, Y., He, K., Ding, Q., Liu, J.: Research progress of complex networks in software systems. Adv. Mech. 5, 805–814 (2008). ISSN 1000–0992
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)
Wang, B.: Software system testing based on weighted software network. In: International Conference on Information Technology, Service Science and Engineering Management (2011)
Wang, B., Lv, J.: Software network node impact analysis of complex software system. J. Softw. 12, 1000–9825 (2013)
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)
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)
Myers, C.R.: Software systems as complex networks: structure, function, and evolvability of software collaboration graphs. Phys. Rev. E 68(4), 046116 (2003)
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 36
Li, C., Liu, L.: Complex networks with external degree. Chinese J. Electron. 23(3), 442–447 (2014)
Acknowledgements
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)”.
Author information
Authors and Affiliations
Corresponding author
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2018 Springer Nature Switzerland AG
About this paper
Cite this paper
Shang, A., Li, C., Zheng, H., Shi, M. (2018). Extraction Algorithm, Visualization and Structure Analysis of Python Software Networks. In: Meng, X., Li, R., Wang, K., Niu, B., Wang, X., Zhao, G. (eds) Web Information Systems and Applications. WISA 2018. Lecture Notes in Computer Science(), vol 11242. Springer, Cham. https://doi.org/10.1007/978-3-030-02934-0_33
Download citation
DOI: https://doi.org/10.1007/978-3-030-02934-0_33
Published:
Publisher Name: Springer, Cham
Print ISBN: 978-3-030-02933-3
Online ISBN: 978-3-030-02934-0
eBook Packages: Computer ScienceComputer Science (R0)