Advertisement

Information Systems Frontiers

, Volume 14, Issue 2, pp 301–315 | Cite as

Modeling the growth of complex software function dependency networks

  • James Ma
  • Daniel ZengEmail author
  • Huimin Zhao
Article

Abstract

Software engineering efforts can potentially benefit much from a good understanding of the structures of existing software systems and the processes governing their development. Towards that end, we study software systems by means of the complex network analysis framework. We model a software package as a network, with nodes representing the functions in the package and edges representing the dependencies among the functions. Our empirical analysis of five widely-adopted open-source software packages reveals a set of interesting features of such networks, which cannot be adequately reproduced by existing complex network models. We then set out to develop a new network growth model, explicitly imitating generally-advocated software development principals, such as divide-and-conquer, modularization, high intra-module cohesion, and low inter-module coupling. Results of our analytical derivations and numeric studies show that our model can more closely reproduce the particular features exhibited by real-world software packages, thus hopefully better explaining the phenomena of concern.

Keywords

Software systems Complex networks Network growth model Cohesion and coupling 

Notes

Acknowledgements

The authors would like to thank the anonymous reviewers for their constructive comments and Cheng Nie for his help in drawing the network diagrams. The second author wishes to acknowledge funding support from the National Natural Science Foundation of China (60875049, 60621001), the Chinese Academy of Sciences (2F07C01, 2F08N03), and the Ministry of Science and Technology (2006AA010106).

References

  1. Adamic, L. A. (2000). Zipf, power-laws, and Pareto – a ranking tutorial. Retrieved May 20, 2010, from http://www.hpl.hp.com/shl/papers/ranking/.
  2. Albert, R., & Barabasi, A. L. (2002). Statistical mechanics of complex networks. Reviews of Modern Physics, 74, 47–97.CrossRefGoogle Scholar
  3. Amaral, L. A. N., Scala, A., Barthelemy, M., & Stanley, H. E. (2000). Classes of small-world networks. Proceedings of the National Academy of Sciences of the United States of America, 97, 11149–11152.CrossRefGoogle Scholar
  4. Barabasi, A. L., & Albert, R. (1999). Emergence of scaling in random networks. Science, 286, 509–512.CrossRefGoogle Scholar
  5. Barabasi, A. L., Albert, R., & Jeong, H. (1999). Mean-field theory for scale-free random networks. Physica A, 272, 173–187.CrossRefGoogle Scholar
  6. Barabasi, A. L., Jeong, H., Neda, Z., Ravasz, E., Schubert, A., & Vicsek, T. (2002). Evolution of the social network of scientific collaborations. Physica A, 311, 590–614.CrossRefGoogle Scholar
  7. Darcy, D. P., Kemerer, C. F., Slaughter, S. A., & Tomayko, J. E. (2005). The structural complexity of software: an experimental test. IEEE Transactions on Software Engineering, 31, 982–995.CrossRefGoogle Scholar
  8. Dhama, H. (1995). Quantitative models of cohesion and coupling in software. Journal of Systems and Software, 29, 65–74.CrossRefGoogle Scholar
  9. Dorogovtsev, S. N., & Mendes, J. F. F. (2001). Scaling properties of scale-free evolving networks: continuous approach. Physical Review E, 63, 056125.Google Scholar
  10. Erdos, P., & Renyi, A. (1959). On random graphs. Publicationes Mathematicae, 6, 290–297.Google Scholar
  11. Erdos, P., & Renyi, A. (1960). On the evolution of random graphs. Bulletin of the International Statistical Institute, 38, 343–347.Google Scholar
  12. Erdos, P., & Renyi, A. (1961). On the strength of connectedness of a random graph. Acta Mathematica Scientia Hungary, 12, 261–267.CrossRefGoogle Scholar
  13. Etzkorn, L., Davis, C., & Li, W. (1998). A practical look at the lack of cohesion in methods metric. Journal of Object-Oriented Programming, 11, 27–34.Google Scholar
  14. Faloutsos, C., Faloutsos, P., & Faloutsos, M. (1999). On power law relationships of the Internet topology, in Proceedings of ACM SIGCOMM, vol. 12. Cambridge, MA, pp. 251–262.Google Scholar
  15. Fothi, A., Nyeky-Gaizler, J., & Porkolab, Z. (2003). The structured complexity of object-oriented programs. Mathematical and Computer Modelling, 38, 815–827.CrossRefGoogle Scholar
  16. Harrison, R., Samaraweera, L. G., Dobie, M. R., & Lewis, P. H. (1996). Comparing programming paradigms: an evaluation of functional and object-oriented programs. Software Engineering Journal, 11, 247–254.CrossRefGoogle Scholar
  17. Hu, J. Q., Guo, C. G., Jia, Y., & Zou, P. (2005). Stratus: a distributed Web service discovery infrastructure based on double-overlay network. Web Technologies Research and Development—Apweb 2005, 3399, 1027–1032.CrossRefGoogle Scholar
  18. Kang, B. K., & Bieman, J. M. (1999). A quantitative framework for software restructuring. Journal of Software Maintenance-Research and Practice, 11, 245–284.CrossRefGoogle Scholar
  19. Kanmani, S., Uthariaraj, V. R., Sankaranarayanan, V., & Thambidurai, P. (2004). Measuring the object-oriented properties in small sized C++ programs—an empirical investigation. Product Focused Software Process Improvement, 3009, 185–202.CrossRefGoogle Scholar
  20. Kennel, E. B., Perry, M. S., & Donovan, B. D. (1989). Reliability and single point failure design considerations in thermionic space nuclear-power systems. Space Power, 8, 219–223.Google Scholar
  21. Leino, K. R. M., & Nelson, G. (2002). Data abstraction and information hiding. ACM Transactions on Programming Languages and Systems, 24, 491–553.CrossRefGoogle Scholar
  22. Li, W., & Henry, S. (1993). Object-oriented metrics that predict maintainability. Journal of Systems and Software, 23, 111–122.CrossRefGoogle Scholar
  23. Li, Y., Zou, F. T., Wu, Z. D., & Ma, F. Y. (2004). PWSD: a scalable Web service discovery architecture based on peer-to-peer overlay network. Advanced Web Technologies and Applications, 3007, 291–300.CrossRefGoogle Scholar
  24. Milgram, S. (1967). Small-world problem. Psychology Today, 1, 61–67.Google Scholar
  25. Newman, M. E. J. (2003). The structure and function of complex networks. SIAM Review, 45, 167–256.CrossRefGoogle Scholar
  26. Newman, M. E. J., Strogatz, S. H., & Watts, D. J. (2001). Random graphs with arbitrary degree distributions and their applications. Physical Review E, 64, 026118.Google Scholar
  27. Newman, M. E. J., Watts, D. J., & Strogatz, S. H. (2002). Random graph models of social networks. Proceedings of the National Academy of Sciences of the United States of America, 99, 2566–2572.CrossRefGoogle Scholar
  28. Parnas, D. L. (1972a). Criteria to be used in decomposing systems into modules. Communications of the ACM, 15, 1053.CrossRefGoogle Scholar
  29. Parnas, D. L. (1972b). Technique for software module specification with examples. Communications of the ACM, 15, 330.CrossRefGoogle Scholar
  30. Potanin, A., Noble, J., Frean, M., & Biddle, R. (2005). Scale-free geometry in OO programs. Communications of the ACM, 48, 99–103.CrossRefGoogle Scholar
  31. Ravasz, E., & Barabasi, A. L. (2003). Hierarchical organization in complex networks. Physical Review E, 67, 026112.Google Scholar
  32. Tonella, P. (2001). Concept analysis for module restructuring. IEEE Transactions on Software Engineering, 27, 351–363.CrossRefGoogle Scholar
  33. Wang, Y. H., Chung, C. M., Shih, T. K., Keh, H. C., & Chen, J. F. (2000). The complexity measurement of software through program decomposition. Computer Systems Science and Engineering, 15, 127–134.Google Scholar
  34. Watts, D. J. (1999). Small worlds: The dynamics of networks between order and randomness. Cambridge: Cambridge Univ. Press.Google Scholar
  35. Watts, D. J., & Strogatz, S. H. (1998). Collective dynamics of ‘small-world’ networks. Nature, 393, 440–442.CrossRefGoogle Scholar
  36. Xu, J., Gao, Y., Christley, S., & Madey, G. (2005). A topological analysis of the open souce software development community, in 38th Hawaii International Conference on System Sciences (HICSS). Hawaii.Google Scholar
  37. Zheng, X., Zeng, D., Li, H., & Wang, F. (2008). Analyzing open-source software systems as complex networks. Physica A: Statistical Mechanics and its Applications, 387, 6190–6200.CrossRefGoogle Scholar

Copyright information

© Springer Science+Business Media, LLC 2010

Authors and Affiliations

  1. 1.Department of Management Information SystemsThe University of ArizonaTucsonUSA
  2. 2.School of BusinessMenlo CollegeAthertonUSA
  3. 3.The Key Lab of Complex Systems and Intelligence Science, Institute of AutomationChinese Academy of SciencesBeijingChina
  4. 4.Sheldon B. Lubar School of BusinessUniversity of Wisconsin-MilwaukeeMilwaukeeUSA

Personalised recommendations