Skip to main content
Log in

Symmetric Preferential Attachment for New Vertices Attaching to Software Networks

  • Published:
New Generation Computing Aims and scope Submit manuscript

Abstract

The evolution of open-source software systems can be regarded as the process of self-organization. Most existing models for software network evolution are based on preferential attachment. However, our empirical studies on the attachment of new vertices show that preferential attachment is not completely suitable for the formation of software networks. In this paper, the attachment mechanism of new vertices is studied in a set of real-world software systems. Firstly, these software systems are treated as directed networks, then based on our empirical studies on the connecting direction between the new vertices and existing networks, a mechanism of symmetric preferential attachment in software network evolution is proposed. It is worth mentioning that the probabilities for a vertex to acquire new incoming and outgoing connections are proportional to its in-degree and out-degree, respectively. Furthermore, the probability density functions of in-degree and out-degree distributions deduced through theoretical computations show that symmetric preferential attachment can produce scale-free networks, and the value ranges of the given exponent expressions are proved to be in accordance with those of various real-world software networks. Finally, the relationship between the exponents of in-degree and out-degree distributions and existing code reuse in software design and development is revealed. This work could provide a different perspective to observe potential formation and integration of real-world software systems.

This is a preview of subscription content, log in via an institution to check access.

Access this article

Price excludes VAT (USA)
Tax calculation will be finalised during checkout.

Instant access to the full article PDF.

Similar content being viewed by others

References

  1. Myers C.R.: “Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs,”. Phys. Rev. E, 68(4), 046116 (2003)

    Article  Google Scholar 

  2. Albert R, Jeong H., Barabási A-L.: “Internet: Diameter of the World-Wide Web,”. Nature, 401, 130–131 (1999)

    Article  Google Scholar 

  3. Liu, J. G. et al.: “Relationship between the in-degree and out-degree of WWW,”. Physica A, 371(2), 861–869 (2006)

    Article  Google Scholar 

  4. Girvan, M., Newman, M. E. J: “Community structure in social and biological networks,”. PNAS, 99(12), 7821–7826 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  5. Barabási, A-L. et al.: “Evolution of the social network of scientific collaborations,”. Physica A, 311(3), 590–614 (2002)

    Article  MathSciNet  MATH  Google Scholar 

  6. Newman M.E.J.: “Scientific collaboration networks. I. Network construction and fundamental results,”. Phys. Rev. E, 64(1), 016131 (2001)

    Article  Google Scholar 

  7. Newman M.E.J.: “Scientific collaboration networks. II. Shortest paths, weighted networks, and centrality,”. Phys. Rev. E, 64(2), 016132 (2001)

    Article  Google Scholar 

  8. Barabási, A-L, Oltval, Z. N.: “Network biology: understanding the cells functional organization,”. Nature Reviews Genetics, 5, 101–113 (2004)

    Article  Google Scholar 

  9. Valverde, S, Cancho, R. F., Sole, R. V.: “Scale-free networks from optimal design,”. Europhysics Letters, 60(4), 512–517 (2002)

    Article  Google Scholar 

  10. Concas G. et al.: “Power-Laws in a Large Object-Oriented Software System,”. IEEE Transactions on Software Engineering, 33, 687–708 (2006)

    Article  Google Scholar 

  11. Zhang, H.H. et al.: “Using the k-core decomposition to analyze the static structure of large-scale software systems,”. The Journal of Supercomputing, 53(2), 352–369 (2010)

    Article  Google Scholar 

  12. Jenkins, S., Kirk, S. R.: “Software architecture graphs as complex networks: A novel partitioning scheme to measure stability and evolution,”. Information Sciences, 177(12), 2587–2601 (2007)

    Article  Google Scholar 

  13. Pan, W. F. et al.: “Multi-Granularity Evolution Analysis of Software using Complex Network Theory,”. Journal of Systems Science and Complexity, 24(6), 1068–1082 (2011)

    Article  Google Scholar 

  14. Barabási, A-L., Albert, R.: “Emergence of scaling in random networks,”. Science, 286(5439), 509–512 (1999)

    Article  MathSciNet  Google Scholar 

  15. Watts, D. J., Strogatz, S. H.: “Collective dynamics of ’small-world’ networks,”. Nature, 393, 440–442 (1998)

    Article  Google Scholar 

  16. Moura, A. P. S., Lai, Y., Motter, A. E.: “Signatures of small-world and scale-free properties in large computer programs,”. Physical Review E, 68(1), 017102 (2003)

    Article  Google Scholar 

  17. Potanin, A. et al.: “Scale-free Geometry in Object-Oriented Programs,”. Communications of the ACM - Adaptive complex enterprises, 48, 99–103 (2005)

    Google Scholar 

  18. Louridas, P., Spinellis, D. and Vlachos, V., “Power Laws in Software,”. ACM Transactions on Software Engineering and Methodology, 18, 1, 2008.

  19. Wen, L., Dromey, R. G.: “Software Engineering and Scale-Free Networks,”. IEEE Transactions on Systems, Man, and Cybernetics, Part B: Cybernetics, 39(4), 845–854 (2009)

    Article  Google Scholar 

  20. Valverde, S., Solé, R. V.: “Hierarchical Small-Worlds in Software Architecture,”. Discrete and Impulsive Systems, Series B: Applications and Algorithms, 14, 1–14 (2007)

    Google Scholar 

  21. Zhang, H. H. et al., “Visualization and Cognition of Large-scale Software Structure using the k-core Analysis,” Proc. of the 2008 International Conference on Intelligent Information Hiding and Multimedia Signal Processing, pp. 954–957, 2008.

  22. S̆ubelj, L., Bajec, M.: “Community structure of complex software systems: Analysis and applications,”. Physica A, 390(16), 2968–2975 (2011)

    Article  Google Scholar 

  23. Zheng X. L. et al.: “Analyzing open-source software systems as complex networks,”. Physica A, 387(24), 6190–6200 (2008)

    Article  Google Scholar 

  24. Pan, W. F. et al.: “A Novel Software Evolution Model Based on Software Networks,”. Social Informatics and Telecommunications Engineering, 5, 2181–2191 (2009)

    Google Scholar 

  25. Tessone, C. J., Geipel, M. M., Schweitzer, F.: “Sustainable growth in complex networks,”. Europhysics Letters, 96(5), 58005 (2011)

    Article  Google Scholar 

  26. Clauset, A., Shalizi, C. R., Newman, M. E. J.: “Power-Law Distributions in Empirical Data,”. SIAM REVIEW, 51(4), 661–703 (2009)

    Article  MathSciNet  MATH  Google Scholar 

  27. Wang, L. et al.: “Evolution and stability of Linux kernels based on complex networks,”. SCIENCE CHINA: Information Sciences, 54(9), 1972–1982 (2012)

    Google Scholar 

  28. Canfora, G. et al.: “How changes affect software entropy: an empirical study,”. Empirical Software Engineering, 54, 1–38 (2012)

    Google Scholar 

  29. Cai, K. Y., Yin, B. B.: “Software execution processes as an evolving complex network,”. Information Sciences, 179(12), 1903–1928 (2009)

    Article  Google Scholar 

  30. Koch S.: “Software evolution in open source projectsa large-scale investigation,”. Journal of Software Maintenance and Evolution: Research and Practice, 19(6), 361–382 (2007)

    Article  Google Scholar 

  31. Israeli, A., Feitelson, D. G.: “The Linux kernel as a case study in software evolution,”. The Journal of Systems and Software, 83(3), 485–501 (2010)

    Article  Google Scholar 

  32. Fortuna, M. A., Bonachela, J. A., Levin, S. A.: “Evolution of a modular software network,”. PNAS, 108(50), 19985–19989 (2011)

    Article  Google Scholar 

  33. Li, H. et al.: “A modular attachment mechanism for software network evolution,”. Physica A, 392(9), 2025–2037 (2013)

    Article  Google Scholar 

  34. Kemerer, C. F., Slaughter, S.: “An Empirical Approach to Studying Software Evolution,”. IEEE Transactions on Software Engineering, 25(4), 493–509 (1999)

    Article  Google Scholar 

  35. Atkinson, C. and Hummel, O., “Iterative and Incremental Development of Component-Based Software Architectures,” Proc. of the 15th ACM SIGSOFT Symposium on Component Based Software Engineering, pp. 77–82, 2012.

  36. Lehman M.M.: “Program Evolution: Processes of Software Change,”. LNCS, 1149, 108–124 (1996)

    Google Scholar 

  37. Ebel, H., Mielsch, L-I., Bornholdt, S.: “Scale-free topology of e-mail networks,”. Phys. Rev. E, 66(3), 035103 (2002)

    Article  Google Scholar 

  38. https://github.com/ntamas/plfit

  39. Peier W.: “Time evolution of open systems: I. Master equations,”. Physica, 57(4), 565–584 (1972)

    MathSciNet  Google Scholar 

  40. Ferreira, K. A. M. et al.: “Identifying thresholds for object-oriented software metrics,”. The Journal of Systems and Software, 85(2), 244–251 (2012)

    Article  Google Scholar 

  41. http://www.doxygen.org/

Download references

Author information

Authors and Affiliations

Authors

Corresponding authors

Correspondence to Li-Ying Hao or Rong Chen.

About this article

Check for updates. Verify currency and authenticity via CrossMark

Cite this article

Li, H., Hao, LY., Chen, R. et al. Symmetric Preferential Attachment for New Vertices Attaching to Software Networks. New Gener. Comput. 32, 271–296 (2014). https://doi.org/10.1007/s00354-014-0405-6

Download citation

  • Received:

  • Revised:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s00354-014-0405-6

Keywords

Navigation