Skip to main content
Log in

Using the k-core decomposition to analyze the static structure of large-scale software systems

  • Published:
The Journal of Supercomputing Aims and scope Submit manuscript

Abstract

The structures of large-scale software systems are complex and difficult to understand for designers and developers. Traditional software metrics can hardly describe the structural complexity in modern software, and finding a quantitative method to depict and analyze large-scale software is still a challenge. In this paper we use complex networks theory to study software structure; in particular, we visualize the software graph and use the k-core to study it based on a recursive pruning of the least connected vertices. Different types of software are analyzed and some new noticeable properties are found, such as similar coreness, the vital highest core, high-core connecting tendency, and evolution stability. These features suggest that software is organized in a defined hierarchy of increasing centrality from outside to inside. The k-core analysis can help developers to improve software understanding, instruction test, and measurement and evaluation of the system in development.

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.

Institutional subscriptions

Similar content being viewed by others

References

  1. Dijkstra EW (1972) The Humble programmer. J Commun ACM 15(10):859–866

    Article  Google Scholar 

  2. Dijkstra EW (2001) The end of computing science. J Commun ACM 44(3):92

    Article  MathSciNet  Google Scholar 

  3. Watts DJ, Strogatz SH (1998) Collective dynamics of small-world networks. J Nat 393:440–442

    Article  Google Scholar 

  4. Barabasi A-L (2003) Linked: the new science of networks. Am J Phys 71(4):409–410

    Article  Google Scholar 

  5. Albert R, Barabasi A-L (2002) Statistical mechanics of complex networks. J Rev Modem Phys 74(47)

  6. Ma Y, He K, Du D (2005) A qualitative method for measuring the structural complexity of software systems based on complex networks. J APSEC 257–263

  7. Myers CR (2003) Software systems as complex networks: structure, function, and evolvability of software collaboration graphs. J Phys Rev E 68:046116

    Article  Google Scholar 

  8. Valverde S, Sole RV (2003) Hierarchical small worlds in software architecture. J Working Paper of Santa Fe Institute, SFI/03-07-44

  9. Junger M, Mutzel P (2003) Graph drawing software. Springer, New York

    Google Scholar 

  10. Batagelj V, Zaversnik M (2002) Generalized cores. Prepr ser—Univ Ljubl Inst Math 40(799):1–10. [COBISS. SI-ID 11381081]

    Google Scholar 

  11. Alvarez-Hamelin JI, Dall’Asta L, Barrat A, Vespignani A (2006) k-core decomposition: a tool for the visualization of large scale networks. Adv Neural Inf Process Syst (Can) 18:41

    Google Scholar 

  12. Mahadevan P, Krioukov DV, Fomenkov M, Huffaker B, Dimitropoulos XA, Claffy KC, Vahdat A (2005) Lessons from three views of the Internet topology. CAIDA Technical Report TR-2005-02

  13. Zhou S, Zhang GQ (2007) Chinese Internet AS-level topology. IET Commun 1(2):209–214

    Article  Google Scholar 

  14. Ravasz E, Somera AL, Mongru DA, Oltvai ZN, Barabasi A-L (2002) Hierarchical organization of modularity in metabolic networks. J Sci 297(30)

  15. Barabasi A-L, Bonabeau E (2003) Scale free networks. J Sci Am 60–69

  16. Freeman LC (1977) A set of measures of centrality based on betweenness. J Sociom 44:35–41

    Article  Google Scholar 

  17. Fraser HB, Hirsh AE, Steinmetz LM (2002) Evolutionary rate in the protein interaction network. J Sci 296(5568):750–752

    Google Scholar 

  18. Wuchty S, Almaas E (2005) Peeling the yeast protein network. Proteomics 5(2):444–449

    Article  Google Scholar 

  19. Ma Y, He K, Liu J. (2007) Network motifs in object-oriented software systems. J Dyn Contin, Discrete Impuls Syst, Ser B: Appl Algorithms 14(36):166–172

    Google Scholar 

  20. Lehman MM (1980) On understanding laws, evolution and conservation in the large program life cycle. J Syst Softw 1(3):213–221

    Article  MathSciNet  Google Scholar 

  21. Lehman MM (1997) Laws of software evolution revisited. In: Proc. EWSPT’96, Nancy, 9–11 October 1997, pp 108–124

  22. Sole RV, Valverde S (2008) Spontaneous emergence of modularity in cellular networks. J R Soc Interface 5:129–133

    Article  Google Scholar 

Download references

Author information

Authors and Affiliations

Authors

Corresponding author

Correspondence to Wanlei Zhou.

Rights and permissions

Reprints and permissions

About this article

Cite this article

Zhang, H., Zhao, H., Cai, W. et al. Using the k-core decomposition to analyze the static structure of large-scale software systems. J Supercomput 53, 352–369 (2010). https://doi.org/10.1007/s11227-009-0299-0

Download citation

  • Received:

  • Accepted:

  • Published:

  • Issue Date:

  • DOI: https://doi.org/10.1007/s11227-009-0299-0

Keywords

Navigation