TY - JOUR
T1 - Identifying important classes of large software systems through K-core decomposition
AU - Meyer, P.
AU - Siy, H.
AU - Bhowmick, S.
N1 - Publisher Copyright:
© 2014 World Scientific Publishing Company.
Copyright:
Copyright 2017 Elsevier B.V., All rights reserved.
PY - 2014/12/28
Y1 - 2014/12/28
N2 - 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.
AB - 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.
KW - K-core decomposition
KW - Network analysis
KW - software evolution
UR - http://www.scopus.com/inward/record.url?scp=84929946180&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=84929946180&partnerID=8YFLogxK
U2 - 10.1142/S0219525915500046
DO - 10.1142/S0219525915500046
M3 - Article
AN - SCOPUS:84929946180
SN - 0219-5259
VL - 17
JO - Advances in Complex Systems
JF - Advances in Complex Systems
IS - 7-8
M1 - 1550004
ER -