TY - JOUR
T1 - On the measures for ranking software components
AU - Srinivasan, Satish M.
AU - Sangwan, Raghvinder S.
AU - Neill, Colin J.
N1 - Publisher Copyright:
© 2017, Springer-Verlag London Ltd.
PY - 2017/9/1
Y1 - 2017/9/1
N2 - Large software systems consist of many components some of which are more significant than others. A component is deemed significant if it plays an important role and can have a significant impact on the rest of the system when modified. Identifying such core components is important since change is inevitable as a normal course of evolution in any system and core components must be designed to minimize their impact of change. Several different graph-based strategies exist for ranking software components that can be used to identify the core components within a software system. However, each ranking strategy behaves differently and most fail to pick up all of the significant core components among their top tier of highly ranked components. In this paper, we propose a component ranking approach that models the component graph of a system as a Discrete-Time Markov Chain and uses it as a basis for component ranking. Using this approach produces results that are superior to ranking strategies based on centrality measures such as closeness, betweenness and eigenvector centrality. We demonstrate the utility of the metric and compare it against existing graph-based measures, in the analysis of Kona and JUnit, two published systems with documented architectures.
AB - Large software systems consist of many components some of which are more significant than others. A component is deemed significant if it plays an important role and can have a significant impact on the rest of the system when modified. Identifying such core components is important since change is inevitable as a normal course of evolution in any system and core components must be designed to minimize their impact of change. Several different graph-based strategies exist for ranking software components that can be used to identify the core components within a software system. However, each ranking strategy behaves differently and most fail to pick up all of the significant core components among their top tier of highly ranked components. In this paper, we propose a component ranking approach that models the component graph of a system as a Discrete-Time Markov Chain and uses it as a basis for component ranking. Using this approach produces results that are superior to ranking strategies based on centrality measures such as closeness, betweenness and eigenvector centrality. We demonstrate the utility of the metric and compare it against existing graph-based measures, in the analysis of Kona and JUnit, two published systems with documented architectures.
UR - http://www.scopus.com/inward/record.url?scp=85027677588&partnerID=8YFLogxK
UR - http://www.scopus.com/inward/citedby.url?scp=85027677588&partnerID=8YFLogxK
U2 - 10.1007/s11334-017-0302-5
DO - 10.1007/s11334-017-0302-5
M3 - Article
AN - SCOPUS:85027677588
SN - 1614-5046
VL - 13
SP - 161
EP - 175
JO - Innovations in Systems and Software Engineering
JF - Innovations in Systems and Software Engineering
IS - 2-3
ER -