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.
Similar content being viewed by others
References
Myers C.R.: “Software systems as complex networks: Structure, function, and evolvability of software collaboration graphs,”. Phys. Rev. E, 68(4), 046116 (2003)
Albert R, Jeong H., Barabási A-L.: “Internet: Diameter of the World-Wide Web,”. Nature, 401, 130–131 (1999)
Liu, J. G. et al.: “Relationship between the in-degree and out-degree of WWW,”. Physica A, 371(2), 861–869 (2006)
Girvan, M., Newman, M. E. J: “Community structure in social and biological networks,”. PNAS, 99(12), 7821–7826 (2002)
Barabási, A-L. et al.: “Evolution of the social network of scientific collaborations,”. Physica A, 311(3), 590–614 (2002)
Newman M.E.J.: “Scientific collaboration networks. I. Network construction and fundamental results,”. Phys. Rev. E, 64(1), 016131 (2001)
Newman M.E.J.: “Scientific collaboration networks. II. Shortest paths, weighted networks, and centrality,”. Phys. Rev. E, 64(2), 016132 (2001)
Barabási, A-L, Oltval, Z. N.: “Network biology: understanding the cells functional organization,”. Nature Reviews Genetics, 5, 101–113 (2004)
Valverde, S, Cancho, R. F., Sole, R. V.: “Scale-free networks from optimal design,”. Europhysics Letters, 60(4), 512–517 (2002)
Concas G. et al.: “Power-Laws in a Large Object-Oriented Software System,”. IEEE Transactions on Software Engineering, 33, 687–708 (2006)
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)
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)
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)
Barabási, A-L., Albert, R.: “Emergence of scaling in random networks,”. Science, 286(5439), 509–512 (1999)
Watts, D. J., Strogatz, S. H.: “Collective dynamics of ’small-world’ networks,”. Nature, 393, 440–442 (1998)
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)
Potanin, A. et al.: “Scale-free Geometry in Object-Oriented Programs,”. Communications of the ACM - Adaptive complex enterprises, 48, 99–103 (2005)
Louridas, P., Spinellis, D. and Vlachos, V., “Power Laws in Software,”. ACM Transactions on Software Engineering and Methodology, 18, 1, 2008.
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)
Valverde, S., Solé, R. V.: “Hierarchical Small-Worlds in Software Architecture,”. Discrete and Impulsive Systems, Series B: Applications and Algorithms, 14, 1–14 (2007)
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.
S̆ubelj, L., Bajec, M.: “Community structure of complex software systems: Analysis and applications,”. Physica A, 390(16), 2968–2975 (2011)
Zheng X. L. et al.: “Analyzing open-source software systems as complex networks,”. Physica A, 387(24), 6190–6200 (2008)
Pan, W. F. et al.: “A Novel Software Evolution Model Based on Software Networks,”. Social Informatics and Telecommunications Engineering, 5, 2181–2191 (2009)
Tessone, C. J., Geipel, M. M., Schweitzer, F.: “Sustainable growth in complex networks,”. Europhysics Letters, 96(5), 58005 (2011)
Clauset, A., Shalizi, C. R., Newman, M. E. J.: “Power-Law Distributions in Empirical Data,”. SIAM REVIEW, 51(4), 661–703 (2009)
Wang, L. et al.: “Evolution and stability of Linux kernels based on complex networks,”. SCIENCE CHINA: Information Sciences, 54(9), 1972–1982 (2012)
Canfora, G. et al.: “How changes affect software entropy: an empirical study,”. Empirical Software Engineering, 54, 1–38 (2012)
Cai, K. Y., Yin, B. B.: “Software execution processes as an evolving complex network,”. Information Sciences, 179(12), 1903–1928 (2009)
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)
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)
Fortuna, M. A., Bonachela, J. A., Levin, S. A.: “Evolution of a modular software network,”. PNAS, 108(50), 19985–19989 (2011)
Li, H. et al.: “A modular attachment mechanism for software network evolution,”. Physica A, 392(9), 2025–2037 (2013)
Kemerer, C. F., Slaughter, S.: “An Empirical Approach to Studying Software Evolution,”. IEEE Transactions on Software Engineering, 25(4), 493–509 (1999)
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.
Lehman M.M.: “Program Evolution: Processes of Software Change,”. LNCS, 1149, 108–124 (1996)
Ebel, H., Mielsch, L-I., Bornholdt, S.: “Scale-free topology of e-mail networks,”. Phys. Rev. E, 66(3), 035103 (2002)
Peier W.: “Time evolution of open systems: I. Master equations,”. Physica, 57(4), 565–584 (1972)
Ferreira, K. A. M. et al.: “Identifying thresholds for object-oriented software metrics,”. The Journal of Systems and Software, 85(2), 244–251 (2012)
Author information
Authors and Affiliations
Corresponding authors
About this article
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
Received:
Revised:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00354-014-0405-6