Analyzing the structure of Java software systems by weighted K-core decomposition

Analyzing the structure of Java software systems by weighted K-core decomposition
复制标题

通过加权K核分解分析Java软件系统的结构

DOI:
10.1016/j.future.2017.09.039
复制
发表时间:
2018-06-01
影响因子:
7.5
通讯作者:
Hu, Bo
Hu, Bo
中科院分区:
计算机科学2区
文献类型:
--
作者:
Pan, Weifeng;Li, Bing;Hu, Bo

文献摘要

被引文献

相似文献

未加权软件网络的统计特性已被广泛研究。然而,软件网络本质上应该是加权的。了解加权软件网络中包含的属性可以带来更好的软件工程实践。在本文中,我们从现实世界的 Java 软件系统构建了一组加权软件网络,并通过使用加权 k 核分解来实证研究其拓扑特性。首先,我们研究了加权k-核心结构的静态拓扑特性,发现图核心度的小值是许多软件系统共有的属性,加权核心度的分布遵循指数截止的幂律,并且加权核心度和节点度密切相关,其spearman相关系数大于0.94。其次,我们分析了加权k-核心结构的演化拓扑特性,包括图核心数、主核心的大小以及主核心的新成员和消失成员。经验结果表明,除非系统发生重大变化,否则图的核心度将保持相对稳定,主核的大小在演化过程中保持稳定,主核的新成员或消失成员来自或去往与相应主核非常接近的壳。最后,我们应用加权k核分解方法来识别关键类别,并发现,根据弗里德曼测试的平均排名,与其他九种方法相比,我们的方法在整个主题系统集中表现最好。它可以识别大多数被认为重要的类。这项工作可以帮助开发人员提高对软件的理解,提出软件测量的新指标并评估开发中系统的质量。 (C) 2017 Elsevier B.V. 保留所有权利。
Statistical properties of un-weighted software networks have been extensively studied. However, software networks in their nature should be weighted. Understanding the properties enclosed in the weighted software networks can lead to better software engineering practices. In this paper, we construct a set of weighted software networks from real-world Java software systems and empirically investigate their topological properties by using weighted k-core decomposition. First, we investigate the static topological properties of the weighted k-core structure, and find that small value of the graph coreness is a property shared by many software systems, the distribution of weighted coreness follows a power law with an exponential cutoff, and weighted coreness and node degree are closely correlated with their spearman correlation coefficients larger than 0.94. Second, we analyze the evolving topological properties of the weighted k-core structure, including the graph coreness, size of the main core, and new members and vanishing members of the main core. Empirical results show that the graph coreness will keep relatively stable unless the system undergoes major changes, size of the main core keeps stable in its evolution, and new members or vanishing members of a main core are from or go to the shells very near the corresponding main cores. Finally, we apply the weighted k-core decomposition method to identify the key classes, and find that, compared with other nine approaches, our approach performs best in the whole set of subject systems according to the average ranking of the Friedman test. It can identify a majority of classes deemed important. This work could help developers to improve software understanding, propose new metrics for software measurement and evaluate the quality of the system in development. (C) 2017 Elsevier B.V. All rights reserved.