On the measures for ranking software components

Research output: Contribution to journalArticle

2 Citations (Scopus)

Abstract

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.

Original languageEnglish (US)
Pages (from-to)161-175
Number of pages15
JournalInnovations in Systems and Software Engineering
Volume13
Issue number2-3
DOIs
StatePublished - Sep 1 2017

Fingerprint

Eigenvalues and eigenfunctions
Markov processes

All Science Journal Classification (ASJC) codes

  • Software

Cite this

@article{1eefb938e70442b588c917fe2050ee6d,
title = "On the measures for ranking software components",
abstract = "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.",
author = "Srinivasan, {Satish M.} and Sangwan, {Raghvinder S.} and Neill, {Colin J.}",
year = "2017",
month = "9",
day = "1",
doi = "10.1007/s11334-017-0302-5",
language = "English (US)",
volume = "13",
pages = "161--175",
journal = "Innovations in Systems and Software Engineering",
issn = "1614-5046",
publisher = "Springer London",
number = "2-3",

}

TY - JOUR

T1 - On the measures for ranking software components

AU - Srinivasan, Satish M.

AU - Sangwan, Raghvinder S.

AU - Neill, Colin J.

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

VL - 13

SP - 161

EP - 175

JO - Innovations in Systems and Software Engineering

JF - Innovations in Systems and Software Engineering

SN - 1614-5046

IS - 2-3

ER -