[发明专利]一种基于子图搜索的特征定位方法有效
申请号: | 201610254292.0 | 申请日: | 2016-04-24 |
公开(公告)号: | CN105930162B | 公开(公告)日: | 2019-05-03 |
发明(设计)人: | 付焜;彭鑫;赵文耘 | 申请(专利权)人: | 复旦大学 |
主分类号: | G06F8/73 | 分类号: | G06F8/73 |
代理公司: | 上海正旦专利代理有限公司 31200 | 代理人: | 陆飞;陆尤 |
地址: | 200433 *** | 国省代码: | 上海;31 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明属于软件工程技术领域,具体为一种基于子图搜索的特征定位方法。本发明方法包括:对软件源代码进行预处理,获取代码元素间的调用依赖关系信息;用户输入关键字,并通过文本检索方法在软件源代码中搜索到包含任意关键字的代码元素作为候选元素;计算候选元素与输入的关键字的相似度;根据代码元素与关键字的相似度和代码元素间依赖关系定义评价函数,来评价调用依赖图的子图是否为较好的特征定位结果;然后在代码元素间的调用依赖图上搜索使评价函数值最高的子图作为结果。本发明的自动化程度较高,可以让开发者快速的进行特征定位,并能够清晰的了解代码结构,快速理解代码的实现过程。 | ||
搜索关键词: | 一种 基于 搜索 特征 定位 方法 | ||
【主权项】:
1.一种基于子图搜索的特征定位方法,其特征在于具体步骤如下:(1)首先对软件源代码进行预处理,获取代码元素间的调用依赖关系信息;包括:使用静态分析技术对源代码进行预处理,获取到源代码中代码元素间的调用关系,并根据调用关系构建代码元素间的调用依赖图;然后使用弗洛伊德算法处理调用依赖图,得到图中任意两点间的最短路径;(2)用户输入若干关键字,并将通过文本检索方法在软件源代码中搜索到包含任意关键字的代码元素作为候选元素;(3)计算一个候选元素与输入的关键字的相似度,具体计算方式如下式:
其中,Q为用户输入的关键字的集合,m为代码元素中所包含的词语的集合;(4)根据代码元素与关键字的相似度和代码元素间依赖关系定义一个评价函数,来评价调用依赖图的子图是否为较好的特征定位结果;然后在代码元素间的调用依赖图上搜索使评价函数值最高的子图作为结果;(5)在具体搜索时,采用一种基于贪心算法的图扩展算法,获取一个评价值较高的依赖结构图作为结果;所述步骤(4)中,所述评价函数为:
公式中,Q为关键字集合,G(V, E)为搜索到的程序依赖调用图上的子图,V为子图的点集合,也就是函数元素的集合;E为子图上边的集合,也就是元素间调用关系的集合,Sim(Q,vi)为代码元素与输入的关键字之间的文本相似度,∣E∣为子图中边的总长度,ρ为人工设置的参数,用来调节子图的大小对评价值的限制作用。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于复旦大学,未经复旦大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610254292.0/,转载请声明来源钻瓜专利网。