Journal of Frontiers of Computer Science and Technology ›› 2011, Vol. 5 ›› Issue (10): 891-903.

• 学术研究 • Previous Articles     Next Articles

Identifying Key Classes Using h-Index and its Variants

WANG Musheng, LU Hongmin, ZHOU Yuming, XU Baowen   

  • Received:1900-01-01 Revised:1900-01-01 Online:2011-10-01 Published:2011-10-01

利用h指数及其衍生度量识别关键类

王木生, 卢红敏, 周毓明, 徐宝文   

  1. 1. 南京大学 计算机科学与技术系, 南京 210093
    2. 东南大学 计算机科学与工程学院, 南京 210018
    3. 南京大学 软件新技术国家重点实验室, 南京 210093

Abstract:

When maintaining an unfamiliar software system, software engineers usually need to consume much time to understand the architecture and function of the system. In order to save their efforts, this paper proposes a light-weight approach to automatically identify key classes from source codes using h-index and its invariants. Software engineers can begin to understand the architecture and function of the system from the key classes identified by the proposed approach. To this end, for a given system, this paper first constructs a dependence graph to represent
the dependence relationships among the classes in the system. Then, it computes h-index and its invariants based on this graph to measure the importance of classes. The experimental results in two open source software systems show that the approach can quickly identify key classes while maintaining the accuracy of identification compared to ex-isting work.

Key words: key class, h-index, dependence graph, object-oriented, program comprehension

摘要: 在维护不熟悉的软件系统时, 需要花费大量的时间去理解系统的架构和功能。为帮助人们进行程序理解, 在指数度量的基础上开发了一种轻量级的、自动化的关键类识别方法。软件维护人员可以从该方法识别出来的关键类入手, 熟悉系统的架构和功能。首先根据类间的依赖关系构建类之间的依赖图, 然后在依赖图的基础上计算h指数及其衍生指数度量值评价类的重要性。在两个开源软件系统上的实验结果表明, 与先前的工作相比, 该方法能够在保证识别准确性的情况下快速识别出系统中的关键类。

关键词: 关键类, h指数, 依赖图, 面向对象, 程序理解