ElementRank: Ranking Java Software Classes and Packages using a Multilayer Complex Network-Based Approach

dc.contributor.author Pan, Weifeng
dc.contributor.author Ming, Hua
dc.contributor.author Chang, Carl
dc.contributor.author Yang, Zijiang
dc.contributor.author Chen, Bi
dc.contributor.department Department of Computer Science
dc.date.accessioned 2022-10-11T18:38:55Z
dc.date.available 2022-10-11T18:38:55Z
dc.date.issued 2021-10-01
dc.description.abstract Software comprehension is an important part of software maintenance. To understand a piece of large and complex software, the first problem to be solved is where to start the understanding process. Choosing to start the comprehension process from the important software elements has proven to be a practical way. Research on complex networks opens new opportunities for identifying important elements, and many approaches have been proposed. However, the software networks that existing approaches use neglect the multilayer nature of software systems. That is, nodes in the network can have different types of relationships at the same time, and each type of relationship forms a specific layer. Worse still, they mainly focus on identifying important classes, and little work has been done on quantifying package importance. In this paper, we propose an ElementRank approach to provide a ranked list of classes (or packages) for maintainers to start the comprehension process. The top-ranked classes (or packages) can be seen as the starting points for the software comprehension process at the class (or package) level. First, we introduce two kinds of multilayer software networks to describe the topological structure of software at the class level and package level, respectively. Second, we propose a weighted PageRank algorithm to calculate the weighted PageRank value of classes (or packages) in each layer of the corresponding multilayer software network. Then, we use AHP (Analytic Hierarchy Process) to weigh each layer in the corresponding multilayer software network, and further aggregate the weighted PageRank value to obtain the global weighted PageRank value for each class (or package). Finally, all the classes (or packages) are ranked according to their global weighted PageRank values in a descending order, and the top-ranked classes (or packages) can serve as the starting points for the software comprehension process at the class (or package) level. ElementRank is validated theoretically using the widely accepted Weyuker’s criteria. Theoretical results show that the global weighted PageRank value for classes (or packages) satisfies most of Weyuker’s properties. Furthermore, ElementRank is evaluated empirically using a set of twelve open source software systems. Through a set of experiments, we show the rank correlation between the results of ElementRank and that of the approaches in the related work, and the benefits of ElementRank are also illustrated in comparison with other approaches in the related work. Empirical results also show that ElementRank can be applied to large software systems.
dc.description.comments This is a manuscript of an article published as W. Pan, H. Ming, C. K. Chang, Z. Yang and D. -K. Kim, "ElementRank: Ranking Java Software Classes and Packages using a Multilayer Complex Network-Based Approach," in IEEE Transactions on Software Engineering, vol. 47, no. 10, pp. 2272-2295, 1 Oct. 2021, doi: 10.1109/TSE.2019.2946357.<br/><br/>© 2019 IEEE. Personal use of this material is permitted. Permission from IEEE must be obtained for all other uses, in any current or future media, including reprinting/republishing this material for advertising or promotional purposes, creating new collective works, for resale or redistribution to servers or lists, or reuse of any copyrighted component of this work in other works.
dc.identifier.uri https://dr.lib.iastate.edu/handle/20.500.12876/6wBl2xDr
dc.language.iso en
dc.publisher IEEE
dc.source.uri https://doi.org/10.1109/TSE.2019.2946357 *
dc.subject.keywords Important software elements
dc.subject.keywords weighted PageRank algorithm
dc.subject.keywords complex network
dc.subject.keywords software comprehension
dc.subject.keywords static analysis
dc.title ElementRank: Ranking Java Software Classes and Packages using a Multilayer Complex Network-Based Approach
dc.type article
dspace.entity.type Publication
relation.isAuthorOfPublication 366e740a-4f95-4d06-99f2-8ad8667e2f3b
relation.isOrgUnitOfPublication f7be4eb9-d1d0-4081-859b-b15cee251456
File
Original bundle
Now showing 1 - 1 of 1
No Thumbnail Available
Name:
2019-Chang-ElementrankRankingManuscript.pdf
Size:
10.49 MB
Format:
Adobe Portable Document Format
Description:
Collections