...
首页> 外文期刊>Future generation computer systems >Identifying key classes in object-oriented software using generalized k-core decomposition
【24h】

Identifying key classes in object-oriented software using generalized k-core decomposition

机译:使用广义K核分解识别面向对象软件中的关键类

获取原文
获取原文并翻译 | 示例

摘要

AbstractIdentifying key classes can help developers familiarize with a previously unknown software system. Complex network research opens new opportunities for identifying key classes, and many approaches have been proposed. However, the software network that existing approaches rely on is un-weighted and un-directed, which does not conform to the reality of a software system. Thus, how to identify key classes by using more accurate software network models and appropriate complex network theories is still a problem that has never been reported. The objective of this paper is to provide a ranked list of classes for new developers as starting points for the program comprehension process. Our approach is based on a more accurate software network and a generalized version ofk-core decomposition in complex network research. First, we use a weighted directed software network to represent the topological structure of software at the class level, which takes into consideration both the coupling direction and coupling strength. Then, we propose a generalizedk-core decomposition method and use it to calculate the generalized coreness of each class. Finally, we sort classes with respect to their generalized corenesses in a descending order. The top-ranked classes serve as the key class candidates. Experiments have been performed on four open-source software systems. Empirical results have shown that our approach is able to identify a majority of true key classes, with a recall larger than 64% on the subject systems. Comparison studies with other nine static analysis based approaches have also been performed. Results show that our approach performs best in the whole set of subject systems according to the average ranking of the Friedman test. The evaluation indicates that our approach improves the effectiveness of existing approaches on identification of key classes. The key class candidates recommended by our approach can be excellent starting points for program comprehension process. Our approach is a valuable technique for developers who are aiming to gain a thorough understanding of a previously unknown software system.HighlightsWe propose a novel approach to identify key class candidates in object-oriented software.We use a weighted directed software network to represent the topological structure of software.We propose a generalizedk-core decomposition to quantify the class importance.Experimental results show the effectiveness of our approach on the key class identification.Key classes identified by our approach can be excellent starting points for program comprehension process.
机译: 摘要 识别键类可以帮助开发人员熟悉以前未知的软件系统。复杂的网络研究为识别关键类别提供了新的机会,并且已经提出了许多方法。但是,现有方法所依赖的软件网络是不加权和不定向的,这不符合软件系统的现实。因此,如何通过使用更准确的软件网络模型和适当的复杂网络理论来识别密钥类别仍然是一个从未报告过的问题。本文的目的是为新开发人员提供分级的类列表,作为程序理解过程的起点。我们的方法基于更准确的软件网络和 k -核心分解。首先,我们使用加权有向软件网络来表示类级别的软件拓扑结构,该结构同时考虑了耦合方向和耦合强度。然后,我们提出了一个广义的 k -核心分解方法,并使用它来计算每个类的广义核心性。最后,我们针对类的广义核心性按降序排序。排名最高的班级是关键班级的候选人。已经在四个开源软件系统上进行了实验。实证结果表明,我们的方法能够识别大多数真正的键类别,在主题系统上的召回率超过64%。还与其他九种基于静态分析的方法进行了比较研究。结果表明,根据弗里德曼测验的平均排名,我们的方法在整个主题系统中表现最佳。评估表明,我们的方法提高了现有方法在识别关键类别方面的有效性。我们的方法推荐的关键课程候选人可以成为程序理解过程的绝佳起点。对于希望全面了解以前未知的软件系统的开发人员而言,我们的方法是一种有价值的技术。 突出显示 我们提出了一种新颖的方法来识别面向对象软件中的关键类候选对象。 我们使用加权有向软件网络来表示软件的拓扑结构。 我们建议广义 k 核心分解以量化类的重要性。 实验结果证明了我们的方法在键类识别中的有效性。 我们方法确定的键类可以是程序理解过程的绝佳起点。

著录项

相似文献

  • 外文文献
  • 中文文献
  • 专利
获取原文

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号