[发明专利]一种基于软件运行网络的关键包识别方法有效
申请号: | 201910033604.9 | 申请日: | 2019-01-14 |
公开(公告)号: | CN109976807B | 公开(公告)日: | 2022-11-25 |
发明(设计)人: | 潘伟丰;蒋海波;王家乐;柴春来;姜波;朱云芳 | 申请(专利权)人: | 深圳游禧科技有限公司 |
主分类号: | G06F8/75 | 分类号: | G06F8/75 |
代理公司: | 北京高航知识产权代理有限公司 11530 | 代理人: | 王庞 |
地址: | 518000 广东省深圳市南山区招商*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明公开了一种基于软件运行网络的关键包识别方法,包括以下步骤:将Java语言编写的软件在运行时的方法调用过程抽象为方法调用网;基于方法调用网构建类依赖网;基于类依赖网构建包依赖网;基于包依赖网计算包节点的g核数,并以包节点的g核数作为其重要性的度量指标;按包节点的g核数进行降序排列,得到关键包。现有技术主要基于软件源代码的静态分析,所构建的用于描述包及包之间关系的模型不够准确。同时,所使用的度量指标未能准确刻画包的重要性。本发明弥补了现有技术的不足,使用一种基于软件运行的动态分析方法,并使用g核数度量包的重要性,进而识别关键包。本发明对于提高软件理解效率、代码维护效率等具有重要意义。 | ||
搜索关键词: | 一种 基于 软件 运行 网络 关键 识别 方法 | ||
【主权项】:
1.一种基于软件运行网络的关键包识别方法,其特征在于,包括以下步骤:(1)将Java语言编写的软件在运行时的方法调用过程抽象为方法调用网FCN=(N,D)。其中,N为软件中的方法节点的集合;D={(fi,fj)}(fi∈N,fj∈N)是无向边的集合,表示方法间的调用关系;每条边将被赋予一个非负整数,作为方法调用关系的强度值。(2)基于步骤(1)完成的FCN构建类依赖网CDN=(Nc,Dc)。其中,Nc为FCN中方法所在的类节点的集合;Dc={(ci,cj)}(ci∈Nc,cj∈Nc)是一个无向边的集合,表示类之间的依赖关系;CDN中的每条边将被赋予一个非负整数,作为类之间依赖关系的强度值。(3)基于步骤(2)完成的CDN构建包依赖网PDN=(Np,Dp)。其中,Np为CDN中类所在的包节点的集合;Dp={(pi,pj)}(pi∈Np,pj∈Np)是一个无向边的集合,表示包之间的依赖关系;PDN中的每条边将被赋予一个非负整数,作为包之间依赖关系的强度值。(4)基于步骤(3)完成的PDN计算包节点i的g核数g(i),作为节点相应包的重要性值。(5)基于步骤(4)所得的包节点的g核数对包节点进行降序排列,将排名靠前的包作为所识别的关键包。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于深圳游禧科技有限公司,未经深圳游禧科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910033604.9/,转载请声明来源钻瓜专利网。