[发明专利]一种基于软件运行网络的关键包识别方法有效
申请号: | 201910033604.9 | 申请日: | 2019-01-14 |
公开(公告)号: | CN109976807B | 公开(公告)日: | 2022-11-25 |
发明(设计)人: | 潘伟丰;蒋海波;王家乐;柴春来;姜波;朱云芳 | 申请(专利权)人: | 深圳游禧科技有限公司 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 北京高航知识产权代理有限公司 11530 | 代理人: | 王庞 |
地址: | 518000 广东省深圳市南山区招商*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 软件 运行 网络 关键 识别 方法 | ||
本发明公开了一种基于软件运行网络的关键包识别方法,包括以下步骤:将Java语言编写的软件在运行时的方法调用过程抽象为方法调用网;基于方法调用网构建类依赖网;基于类依赖网构建包依赖网;基于包依赖网计算包节点的g核数,并以包节点的g核数作为其重要性的度量指标;按包节点的g核数进行降序排列,得到关键包。现有技术主要基于软件源代码的静态分析,所构建的用于描述包及包之间关系的模型不够准确。同时,所使用的度量指标未能准确刻画包的重要性。本发明弥补了现有技术的不足,使用一种基于软件运行的动态分析方法,并使用g核数度量包的重要性,进而识别关键包。本发明对于提高软件理解效率、代码维护效率等具有重要意义。
技术领域
本发明涉及一种软件关键包识别方法,尤其涉及一种基于软件运行网络的关键包识别方法。
背景技术
计算机软件在我们生活中扮演着越来越重要的角色,以至于人们对软件质量的要求越来越高。然而,软件的开发是一个非常复杂的智力活动,特别是随着软件复杂性的增加,软件开发过程中不可避免的会引入错误。同时,软件的需求具有不确定性,在软件的生命周期中总会不断涌现新的需求。软件为了保持持续的活力,软件必须不断的演化以适应新的需求。软件的演化也会引入新的错误。因此,为了降低软件维护过程中错误引入的概率,必须对所维护的软件具有很好的理解。然而,理解软件并不是一件容易的事情,特别是当软件变得异常复杂的时候。因此,提供一种有效的技术来辅助维护人员对软件的理解,进而简化软件的维护工作,降低软件引入错误的概率,提高软件的质量对于日常的软件维护工作具有重要的意义。
软件如此复杂,我们应该从何处开始理解软件呢?研究表明,从软件的关键元素(包、类、方法、属性等)开始理解软件是一种可行的方法,即首先理解关键的元素,然后顺着元素间的依赖关系,理解与关键元素相关的元素,以此类推,从而逐步理解整个软件。要识别关键的软件元素,首先必须构建度量指标对软件元素的重要性进行度量。在关键元素识别方面已有不少工作:Zaidman等人构建了静态类依赖图,并使用HITS算法度量类的重要性。周毓明等人用类依赖图抽象类粒度的软件系统,并使用PageRank算法、HITS和介数中心性等度量类的重要性。姜淑娟等人构建了软件的状态转换模型,进而通过计算状态转换树节点的复杂度来度量类的重要性。潘伟丰等人构建了类粒度、包粒度的软件结构图,进而通过使用PageRank算法、a指数等度量类和包的重要性。尽管目前已经有一些软件关键元素识别方面的工作,但是仍有如下不足:
(1)现有的软件关键元素识别方面的工作,主要基于对软件源代码的静态分析,缺少对软件实际运行时的动态分析。静态分析不需要运行软件,仅仅依靠软件源代码,提取的元素间的关系实际上是一种“最坏”情况下的关系,可能包含多余的关系;动态分析需要运行软件,收集软件运行过程中的元素及元素间的关系,代表的是元素间的真实交互。动态分析比静态分析更准确。
(2)现有的软件关键元素识别方面的工作,主要集中在度量类的重要性,方法和包粒度的重要性度量方面的工作极少。同时,在度量类的重要性时,往往基于类间的交互关系及其强度构建指标,忽视了类的度(交互的其它类的数量)对类重要性的影响,未能准确刻画类的重要性。
包、类、方法是软件理解的不同层次。包层次的粒度最大,方法层次的粒度最细,类粒度居中。对于一些大型的软件,选择从包粒度开始理解软件是一种可行的方式。提出一种基于软件运行网络的关键包识别方法可以弥补现有工作的不足,从而构建更加准确的模型表达包及包间依赖,并提出更加准确的度量指标量度包的重要性,为软件理解及软件维护工作提供技术支持。
发明内容
本发明的目的在于针对现有技术的不足,提供了一种基于软件运行网络的关键包识别方法。
本发明的上述技术问题主要是通过下述技术方案得以解决的:一种基于软件运行网络的关键包识别方法,该方法包括以下步骤:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳游禧科技有限公司,未经深圳游禧科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910033604.9/2.html,转载请声明来源钻瓜专利网。