Identifying important classes of large software systems through K-core decomposition

P. Meyer, H. Siy, S. Bhowmick

Research output: Contribution to journalArticlepeer-review

39 Scopus citations


In a large software project, the number of classes, and the dependencies between them, generally increase as software evolves. The size and scale of the system often makes it difficult to easily identify the important components in a particular software product. To address this problem, we model software as a network, where the classes are the vertices in the network and the dependencies are the edges, and apply K-core decomposition to identify a core subset of vertices as potentially important classes. We study three open source Java projects over a 10-year period and demonstrate, using different metrics, that the K-core decomposition of the network can help us identify the key classes of the corresponding software. Specifically, we show that the vertices with the highest core number represent the important classes and demonstrate that the core-numbers of classes with similar functionalities evolve at similar trends.

Original languageEnglish (US)
Article number1550004
JournalAdvances in Complex Systems
Issue number7-8
StatePublished - Dec 28 2014


  • K-core decomposition
  • Network analysis
  • software evolution

ASJC Scopus subject areas

  • Control and Systems Engineering


Dive into the research topics of 'Identifying important classes of large software systems through K-core decomposition'. Together they form a unique fingerprint.

Cite this