TY - JOUR
T1 - Exploring community structure of software Call Graph and its applications in class cohesion measurement
AU - Qu, Yu
AU - Guan, Xiaohong
AU - Zheng, Qinghua
AU - Liu, Ting
AU - Wang, Lidan
AU - Hou, Yuqiao
AU - Yang, Zijiang
N1 - Publisher Copyright:
© 2015 Elsevier Inc. All rights reserved.
PY - 2015/10/1
Y1 - 2015/10/1
N2 - 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.
AB - 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.
KW - Class cohesion metrics
KW - Community structure
KW - Complex network
UR - https://www.scopus.com/pages/publications/84937772675
U2 - 10.1016/j.jss.2015.06.015
DO - 10.1016/j.jss.2015.06.015
M3 - 文章
AN - SCOPUS:84937772675
SN - 0164-1212
VL - 108
SP - 193
EP - 210
JO - Journal of Systems and Software
JF - Journal of Systems and Software
ER -