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

被引:0
|
作者
Pan W.-F. [1 ]
Song B.-B. [1 ]
Hu B. [2 ]
Li B. [3 ]
Jiang B. [1 ]
机构
[1] School of Computer Science and Information Engineering, Zhejiang Gongshang University, Hangzhou, 310018, Zhejiang
[2] Kingdee Research, Kingdee International Software Group Co.Ltd, Shenzhen, 518057, Guangdong
[3] International School of Software, Wuhan, 430072, Hubei
来源
| 2018年 / Chinese Institute of Electronics卷 / 46期
关键词
Key class; Program comprehension; Software network; Weighted k-core decomposition;
D O I
10.3969/j.issn.0372-2112.2018.05.007
中图分类号
学科分类号
摘要
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. © 2018, Chinese Institute of Electronics. All right reserved.
引用
收藏
页码:1071 / 1077
页数:6
相关论文
共 17 条
  • [1] Boehm B., The changing nature of software evolution, IEEE Software, 27, 4, pp. 26-29, (2010)
  • [2] D'Ambros M., Supporting software evolution analysis with historical dependencies and defect information, IEEE International Conference on Software Maintenance, pp. 412-415, (2008)
  • [3] Yau S., Collofello J.S., Design stability measures for software maintenance, IEEE Transactions on Software Engineering, 11, 9, pp. 849-856, (1985)
  • [4] Yau S., Collofello J.S., Some stability measures for software maintenance, IEEE Transactions on Software Engineering, 6, 6, pp. 545-552, (1980)
  • [5] Zaidman A., Demeyer S., Automatic identification of key classes in a software system using webmining techniques, Journal of Software Maintenance and Evolution: Research and Practice, 20, 6, pp. 387-417, (2008)
  • [6] Jiang S.J., Ju X.L., Wang X.Y., Et al., Measuring the importance of classes using UIO sequence, Acta Electronica Sinica, 43, 10, pp. 2062-2068, (2015)
  • [7] Inoue K., Yokomori R., Yamamoto T., Et al., Ranking significance of software components based on use relations, IEEE Transactions on Software Engineering, 31, 3, pp. 213-225, (2005)
  • [8] Zaidman A., Calders T., Demeyer S., Et al., Applying webmining techniques to execution traces to support the program comprehension process, European Conference on Software Maintenance and Reengineering, pp. 134-142, (2005)
  • [9] Zhou Y.M., Xu B.W., Dependence structure analysis-based approach for measuring importance of classes, Journal of Southeast University (Natural Science Edition), 38, 3, pp. 380-384, (2008)
  • [10] Pan W.F., Li B., Ma Y.T., Et al., Multi-granularity evolution analysis of software using complex network theory, Journal of Systems Science and Complexity, 24, 6, pp. 1068-1082, (2011)