Exploring community structure of software Call Graph and its applications in class cohesion measurement

Exploring community structure of software Call Graph and its applications in class cohesion measurement
复制标题

Call Graph软件社区结构探讨及其在类凝聚力测量中的应用

DOI:
10.1016/j.jss.2015.06.015
复制
发表时间:
2015-10-01
影响因子:
3.5
通讯作者:
Yang, Zijiang
Yang, Zijiang
中科院分区:
计算机科学2区
文献类型:
--
作者:
Qu, Yu;Guan, Xiaohong;Yang, Zijiang

文献摘要

被引文献

相似文献

许多复杂的联网系统表现出网络节点的自然划分。每个部门或社区都是一个紧密相连的子群。这种社区结构不仅有助于理解,而且在复杂系统中也有广泛的应用。软件网络,例如类依赖网络,是这样的具有社区结构的网络,但它们在函数或方法调用粒度上的特性还没有被研究,这对于评估和改进软件类内结构是有用的。此外,现有提出的软件社区结构的应用还没有直接与现有的软件工程实践进行比较或结合。需要与基准做法进行比较,以说服实践者采用拟议的方法。在本文中,我们证明了由软件方法及其调用形成的网络表现出相对显著的社区结构。基于我们的发现,我们提出了两种新的类内聚度来度量面向对象程序的内聚性。我们在10个大型开源Java程序上的实验验证了社区结构的存在,并且派生的度量给出了额外的有用的类凝聚力度量。作为一个应用,我们证明了新的度量能够比现有的度量更有效地预测软件故障。(C)2015 Elsevier Inc.保留所有权利。
Many complex networked systems exhibit natural divisions of network nodes. Each division, or community, is a densely connected subgroup. Such community structure not only helps comprehension but also finds wide applications in complex systems. Software networks, e.g., Class Dependency Networks, are such networks with community structures, but their characteristics at the function or method call granularity have not been investigated, which are useful for evaluating and improving software intra-class structure. Moreover, existing proposed applications of software community structure have not been directly compared or combined with existing software engineering practices. Comparison with baseline practices is needed to convince practitioners to adopt the proposed approaches. In this paper, we show that networks formed by software methods and their calls exhibit relatively significant community structures. Based on our findings we propose two new class cohesion metrics to measure the cohesiveness of object-oriented programs. Our experiment on 10 large open-source Java programs validate the existence of community structures and the derived metrics give additional and useful measurement of class cohesion. As an application we show that the new metrics are able to predict software faults more effectively than existing metrics. (C) 2015 Elsevier Inc. All rights reserved.