电子学报 ›› 2018, Vol. 46 ›› Issue (5): 1071-1077.DOI: 10.3969/j.issn.0372-2112.2018.05.007

• 学术论文 • 上一篇    下一篇

基于软件网络加权k-核分析的关键类识别方法

潘伟丰1, 宋贝贝1, 胡博2, 李兵3, 姜波1   

  1. 1. 浙江工商大学计算机与信息工程学院, 浙江杭州 310018;
    2. 金蝶国际软件集团金蝶研究院, 广东深圳 518057;
    3. 武汉大学国际软件学院, 湖北武汉 430072
  • 收稿日期:2016-11-16 修回日期:2017-04-13 出版日期:2018-05-25
    • 作者简介:
    • 潘伟丰 男,1982年12月出生于浙江省杭州市,毕业于武汉大学获工学博士学位,现为浙江工商大学副教授,硕士生导师,主要研究方向为软件工程、服务计算、复杂网络和智能计算.E-mail:wfpan1982@163.com;宋贝贝 女,1989年4月出生于河南省太康县,现为浙江工商大学硕士研究生,主要研究方向为软件工程和服务计算.E-mail:m13023651060@163.com
    • 基金资助:
    • 国家自然科学基金 (No.61572371); 浙江省自然科学基金 (No.LY15F020004); 浙江省科技厅公益技术研究项目 (No.2014C23008)

Identifying Key Classes Based on Weighted K-Core Analysis of Software Networks

PAN Wei-feng1, SONG Bei-bei1, HU Bo2, LI Bing3, JIANG Bo1   

  1. 1. School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou, Zhejiang 310018, China;
    2. Kingdee Research, Kingdee International Software Group Co. Ltd, Shenzhen, Guangdong 518057, China;
    3. International School of Software, Wuhan, Hubei 430072, China
  • Received:2016-11-16 Revised:2017-04-13 Online:2018-05-25 Published:2018-05-25
    • Supported by:
    • National Natural Science Foundation of China (No.61572371); National Natural Science Foundation of Zhejiang Province,  China (No.LY15F020004); Public Welfare Technology Research Program of Science and Technology Department of Zhejiang Province (No.2014C23008)

摘要: 识别关键类可以帮助人们尽快理解不熟悉的软件系统.尽管目前已有一些关键类识别方面的工作,但是大部分方法构建的依赖图是无权的,未考虑类之间交互的种类及次数.有鉴于此,提出了一种基于软件网络加权k-核分析的关键类识别方法.首先,用加权类耦合网络抽象类(接口)、类(接口)间的交互及其次数;然后,引入加权k-核分解方法计算类的加权核数;最后,以加权核数作为类重要性的量度指标,降序排列所有类,并通过过滤得到候选关键类.真实软件上的数据实验验证了本文方法的有效性.

关键词: 关键类, 加权k-核分解, 软件网络, 程序理解

Abstract: Identifying key classes can help software engineers understand software systems that they previously were not familiar with.Though there are some methods on the identification of key classes,a majority of them use un-weighted dependency graphs,neglecting the coupling types and frequencies.In this paper,we propose a method to identify the key classes based on weighted k-core analysis of software networks.First,it uses a weighted class coupling network to represent classes (interfaces) and their couplings and coupling frequencies.Then,we introduce the weighted k-core decomposition method to compute the weighted coreness for each class (interface).Finally,we use the weighted coreness to quantify the importance of classes (interfaces) and sort them in a descending order with respect to their weighted corenesses.And the top-ranked classes (interfaces) will serve as the key class candidates.Empirical results show the effectiveness of our approach.

Key words: key class, weighted k-core decomposition, software network, program comprehension

中图分类号: