Identification of Key Classes in Software Systems Based on Static Analysis and Voting Mechanism

被引:0
作者
Mao, Caiyun [1 ]
Li, Longjie [1 ]
Liu, Li [1 ]
Ma, Zhixin [1 ,2 ]
机构
[1] Lanzhou Univ, Sch Informat Sci & Engn, Lanzhou 730000, Gansu, Peoples R China
[2] Key Lab Media Convergence Technol & Commun, Lanzhou 730000, Gansu, Peoples R China
关键词
Key class identification; software systems; static analysis; voting mechanism; INDEX;
D O I
10.1142/S0218194024500220
中图分类号
TP18 [人工智能理论];
学科分类号
081104 ; 0812 ; 0835 ; 1405 ;
摘要
Identifying key classes of a software system can help developers understand the system quickly, reduce the time for system maintenance, and prevent security risks caused by defects in key classes. So far, many approaches have been proposed to identify key classes from software systems. However, some approaches select too many key class candidates, making it inconvenient and difficult for developers to start understanding the system from these classes. For the other approaches, although the number of key class candidates is not large, their effectiveness needs to be further improved. To this end, in this paper, we propose a new model, named SAVM, to detect key classes by combining static analysis and a voting mechanism. First, we extract structural information from the source codes of a software system and construct a class coupling network (CCN) using this information. Then, we present the VRWD method that iteratively identifies important nodes in CCN based on a voting mechanism. Specifically, in each iteration, a node votes for its outgoing neighbors and in the meantime receives votes from its incoming neighbors. Afterward, the node that attains the highest voting score is elected as the important node in this turn. Finally, the corresponding classes of the selected important nodes are the key class candidates. The effectiveness of the proposed model and eight other baselines is evaluated in eight open-source Java projects. The experimental results show that although no method performs the best in all projects, according to the average ranking of the Friedman test, our method overall performs better compared to the baselines. In addition, this paper also proves through experiments that our approach can be applied to large-scale software projects. These indicate that our approach is a valuable technique for developers.
引用
收藏
页码:1513 / 1535
页数:23
相关论文
共 33 条
[1]  
Abreu FB, 2001, FIFTH EUROPEAN CONFERENCE ON SOFTWARE MAINTENANCE AND REENGINEERING, PROCEEDINGS, P47, DOI 10.1109/CSMR.2001.914968
[2]  
[Anonymous], 2010, PROC 4 WORKSHOP FAMI
[3]  
Brito e Abreu F., 2000, Proceedings of the Fourth European Conference on Software Maintenance and Reengineering, P13, DOI 10.1109/CSMR.2000.827300
[4]   PROGRAM UNDERSTANDING - CHALLENGE FOR THE 1990S [J].
CORBI, TA .
IBM SYSTEMS JOURNAL, 1989, 28 (02) :294-306
[5]   CRA: Identifying Key Classes Using Markov-Chain-Based Ranking Aggregation [J].
Du, Xin ;
Pan, Weifeng ;
Jiang, Bo ;
Ding, Luyun ;
Pan, Yun ;
Yuan, Chengxiang ;
Xiang, Yiming .
AXIOMS, 2022, 11 (10)
[6]   COSPA: Identifying Key Classes in Object-Oriented Software Using Preference Aggregation [J].
Du, Xin ;
Wang, Tian ;
Pan, Weifeng ;
Wang, Muchou ;
Jiang, Bo ;
Xiang, Yiming ;
Chai, Chunlai ;
Wang, Jiale ;
Yuan, Chengxiang .
IEEE ACCESS, 2021, 9 :114767-114780
[7]   SET OF MEASURES OF CENTRALITY BASED ON BETWEENNESS [J].
FREEMAN, LC .
SOCIOMETRY, 1977, 40 (01) :35-41
[8]   An index to quantify an individual's scientific research output [J].
Hirsch, JE .
PROCEEDINGS OF THE NATIONAL ACADEMY OF SCIENCES OF THE UNITED STATES OF AMERICA, 2005, 102 (46) :16569-16572
[9]  
[姜淑娟 Jiang Shujuan], 2015, [电子学报, Acta Electronica Sinica], V43, P2062
[10]   Multiple Precast Component Orders Acceptance and Scheduling [J].
Jiang, Wen ;
Wu, Lanjun ;
Cao, Yunzhong .
MATHEMATICAL PROBLEMS IN ENGINEERING, 2020, 2020