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

P. Meyer, H. Siy, S. Bhowmick

Research output: Contribution to journalArticle

16 Scopus citations

Abstract

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
Volume17
Issue number7-8
DOIs
Publication statusPublished - Dec 28 2014

    Fingerprint

Keywords

  • K-core decomposition
  • Network analysis
  • software evolution

ASJC Scopus subject areas

  • Control and Systems Engineering

Cite this