Weifeng Pan

Prof. Weifeng Pan

School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou 310018, China

Research Focus & Metrics

Academic Career Length

20Years (2007-Present)

(Calculated once Scilit publication data is synced: current year − year of first publication + 1)

Representative Publications

View All Publications
8 October 2019 in IEEE Transactions on Software Engineering
Verified
Journal Article
Closed access
WPWeifeng Pan
Weifeng Pan
HMHua Ming
Hua Ming
CCCarl K. Chang
Carl K. Chang
ZYZijiang Yang
Zijiang Yang
Dae-Kyoo KimDae-Kyoo Kim
Dae-Kyoo Kim
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.

1 April 2018 in Future Generation Computer Systems
Verified
Journal Article
Closed access
WPWeifeng Pan
Weifeng Pan
BSBeibei Song
Beibei Song
KLKangshun Li
Kangshun Li
KZKejun Zhang
Kejun Zhang

6 December 2011 in Journal of Systems Science and Complexity
Verified
Journal Article
Closed access
PDF file
WPWeifeng Pan
Weifeng Pan
BLBing Li
Bing Li
YMYutao Ma
Yutao Ma
JLJing Liu
Jing Liu

1 October 2018 in Future Generation Computer Systems
Verified
Journal Article
Closed access
WPWeifeng Pan
Weifeng Pan
CCChunlai Chai
Chunlai Chai

1 June 2018 in Future Generation Computer Systems
Verified
Journal Article
Closed access
WPWeifeng Pan
Weifeng Pan
BLBing Li
Bing Li
JLJing Liu
Jing Liu
YMYutao Ma
Yutao Ma
BHBo Hu
Bo Hu

10 February 2021 in IEEE Access
Verified
Journal Article
Open access
HLHao Li
Hao Li
TWTian Wang
Tian Wang
WPWeifeng Pan
Weifeng Pan
MWMuchou Wang
Muchou Wang
CCChunlai Chai
Chunlai Chai
JWJing Wang
Jing Wang
Key classes have become excellent starting points for developers to understand unknown software systems. Up to now, a variety of approaches have been proposed to mine key classes in a software project. Many of them are based on a network representation (namely, software networks) of the software projects. However, the software networks they used are usually un-weighted and un-directed, which is not consistent with the reality in a real software project where the coupling actually has direction and strength. Worse still, the number of key class candidates returned by existing approaches is usually very large. Thus, it is usually infeasible for developers to start the comprehension process from these classes, especially when there are tight time and resource constraints. To tackle these problems, in this paper, we propose an approach named MinClass, to Mine key Classes in Java projects by examining a very small number of classes. First, the software structure at the class level is represented by a weighted directed software network, which considers both the coupling strength and direction between every pair of classes. Second, we propose a new metric, OSE (One-order Structural Entropy), and use it to calculate the importance of each class in the system. Finally, we sort classes in descending order according to their OSE values, and a small number of top-ranked classes are treated as the key class candidates identified by MinClass. Experiments are performed on six open-source Java projects, and comparison studies with other eight state-of-the-art approaches are also performed. Results show that, although no one method performs best in all software systems, MinClass is the most promising one. It performs best in the whole set of software systems according to the average ranking of the Friedman test. Thus, MinClass is a valuable technique that can be used to mine the key classes.