Advertisement

Complex Networks and Link Streams for the Empirical Analysis of Large Software

  • Matthieu Latapy
  • Tiphaine Viard
Part of the Lecture Notes in Computer Science book series (LNCS, volume 8489)

Abstract

Large software may be modeled as graphs in several ways. For instance, nodes may represent modules, objects or functions, and links may encode dependencies between them, calls, heritage, etc. One may then study a large software through such graphs, called complex networks because they have no strong mathematical properties. Studying them sheds much light on the structure of the considered software. If one turns to the analysis of the dynamics of large software, like execution traces, then the considered graphs evolve over time. This raises challenging issues, as there is currently no clear way to study such objects. We develop a new approach consisting in modeling traces as link streams, i.e. series of triplets (t,a,b) meaning that a and b interacted at time t. For instance, such a triplet may model a call between two modules at run time. Analyzing such streams directly turns out to be much easier and powerful than transforming them into dynamic graphs that poorly capture their dynamics. We present our work on this topic, with directions for applications in software analysis.

Keywords

complex networks dynamic graphs link streams software traces 

Preview

Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.

References

  1. 1.
    Alawneh, L., Hamou-Lhadj, A.: Identifying computational phases from inter-process communication traces of hpc applications. In: Beyer, D., van Deursen, A., Godfrey, M.W. (eds.) ICPC, pp. 133–142 (2012)Google Scholar
  2. 2.
    Alvarez-Hamelin, J.I., Fleury, E., Vespignani, A., Ziviani, A.: Complex dynamic networks: Tools and methods. Computer Networks 56(3), 967–969 (2012)CrossRefGoogle Scholar
  3. 3.
    Bhattacharya, P., Iliofotou, M., Neamtiu, I., Faloutsos, M.: Graph-based analysis and prediction for software evolution. In: Glinz, M., Murphy, G.C., Pezzè, M. (eds.) ICSE, pp. 419–429. IEEE (2012)Google Scholar
  4. 4.
    Cai, K.-Y., Yin, B.-B.: Software execution processes as an evolving complex network. Inf. Sci. 179(12), 1903–1928 (2009)CrossRefGoogle Scholar
  5. 5.
    Caudwell, A.H.: Gource: visualizing software version control history. In: Cook, W.R., Clarke, S., Rinard, M.C. (eds.) SPLASH/OOPSLA Companion, pp. 73–74. ACM (2010)Google Scholar
  6. 6.
    Fortunato, S.: Community detection in graphs. CoRR, abs/0906.0612 (2009)Google Scholar
  7. 7.
    Guo, F., Wang, Y., Zhao, L., Zhang, M.: Introduction to the applications of complex networks in software engineering. In: ICEE, pp. 4162–4165. IEEE (2010)Google Scholar
  8. 8.
    Holme, P., Saramäki, J.: Temporal networks. CoRR, abs/1108.1780 (2011)Google Scholar
  9. 9.
    Latapy, M.: Main-memory triangle computations for very large (sparse (power-law)) graphs. Theor. Comput. Sci. 407(1-3), 458–473 (2008)MathSciNetCrossRefGoogle Scholar
  10. 10.
    Li, B., Pan, W., Lu, J.: Multi-granularity dynamic analysis of complex software networks. In: ISCAS, pp. 2119–2124. IEEE (2011)Google Scholar
  11. 11.
    Li, D., Han, Y., Hu, J.: Complex network thinking in software engineering. In: CSSE (1), pp. 264–268. IEEE Computer Society (2008)Google Scholar
  12. 12.
    Li, H., Huang, B., Lu, J.: Dynamical evolution analysis of the object-oriented software systems. In: IEEE Congress on Evolutionary Computation, pp. 3030–3035. IEEE (2008)Google Scholar
  13. 13.
    Liu, J., Lu, J., He, K., Li, B., Tse, C.K.: Characterizing the structural quality of general complex software networks. I. J. Bifurcation and Chaos 18(2), 605–613 (2008)CrossRefGoogle Scholar
  14. 14.
    Pan, W., Li, B., Ma, Y., Liu, J., Qin, Y.: Class structure refactoring of object-oriented softwares using community detection in dependency networks. Frontiers of Computer Science in China 3(3), 396–404 (2009)CrossRefGoogle Scholar
  15. 15.
    Pan, W., Li, B., Ma, Y., Qin, Y., Zhou, X.-Y.: Measuring structural quality of object-oriented softwares via bug propagation analysis on weighted software networks. J. Comput. Sci. Technol. 25(6), 1202–1213 (2010)CrossRefGoogle Scholar
  16. 16.
    Subelj, L., Bajec, M.: Software systems through complex networks science: review, analysis and applications. In: Software Mining, pp. 9–16. ACM (2012)Google Scholar
  17. 17.
    Viard, J., Latapy, M.: Identifying roles in an ip network with temporal and structural density. In: INFOCOM Workshops (2014)Google Scholar
  18. 18.
    Šubelj, L., Bajec, M.: Software systems through complex networks science: Review, analysis and applications. In: Proceedings of the First International Workshop on Software Mining, SoftwareMining 2012, pp. 9–16. ACM, New York (2012)Google Scholar
  19. 19.
    Wang, H., He, K., Li, B., Lü, J.: On some recent advances in complex software networks: Modeling, analysis, evolution and applications. I. J. Bifurcation and Chaos 22(2) (2012)CrossRefGoogle Scholar
  20. 20.
    Wehmuth, K., Ziviani, A., Fleury, E.: A unifying model for representing time-varying graphs. CoRR, abs/1402.3488 (2014)Google Scholar
  21. 21.
    Wen, L., Kirk, D., Geoff Dromey, R.: Software systems as complex networks. In: Zhang, D., Wang, Y., Kinsner, W. (eds.) IEEE ICCI, pp. 106–115. IEEE (2007)Google Scholar
  22. 22.
    Zanetti, M.S., Scholtes, I., Tessone, C.J., Schweitzer, F.: Categorizing bugs with social networks: a case study on four open source software communities. In: Notkin, D., Cheng, B.H.C., Pohl, K. (eds.) ICSE, pp. 1032–1041. IEEE / ACM (2013)Google Scholar
  23. 23.
    Zanetti, M.S., Schweitzer, F.: A network perspective on software modularity. In: Mühl, G., Richling, J., Herkersdorf, A. (eds.) ARCS Workshops. LNI, vol. 200, pp. 175–186. GI (2012)Google Scholar
  24. 24.
    Zhang, X., Zhao, G., Lv, T., Yin, Y., Zhang, B.: Analysis on key nodes behavior for complex software network. In: Liu, B., Ma, M., Chang, J. (eds.) ICICA 2012. LNCS, vol. 7473, pp. 59–66. Springer, Heidelberg (2012)CrossRefGoogle Scholar
  25. 25.
    Zhao, C., Ates, K., Kong, J., Zhang, K.: Discovering program’s behavioral patterns by inferring graph-grammars from execution traces. In: ICTAI (2), pp. 395–402. IEEE Computer Society (2008)Google Scholar
  26. 26.
    Zhao, C., Kong, J., Zhang, K.: Program behavior discovery and verification: A graph grammar approach. IEEE Trans. Software Eng. 36(3), 431–448 (2010)CrossRefGoogle Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2014

Authors and Affiliations

  • Matthieu Latapy
    • 1
    • 2
  • Tiphaine Viard
    • 1
    • 2
  1. 1.Sorbonne Universités, UPMC Univ Paris 06, UMR 7606, LIP6ParisFrance
  2. 2.CNRS, UMR 7606, LIP6ParisFrance

Personalised recommendations