[发明专利]一种结合用户反馈和代码依赖的软件可追踪生成方法有效
申请号: | 201810184034.9 | 申请日: | 2018-03-06 |
公开(公告)号: | CN108459965B | 公开(公告)日: | 2021-11-02 |
发明(设计)人: | 匡宏宇;胡昊;吕建;张宗飞 | 申请(专利权)人: | 南京大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 南京苏高专利商标事务所(普通合伙) 32204 | 代理人: | 李玉平 |
地址: | 210008 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 结合 用户 反馈 代码 依赖 软件 追踪 生成 方法 | ||
1.一种结合用户反馈和代码依赖的软件可追踪生成方法,其特征在于,包括以下步骤:
步骤1,在目标系统中插桩代码依赖捕获工具,运行目标系统,得到目标系统存在的代码依赖,其中代码依赖包括调用依赖和数据依赖;
步骤2,计算代码依赖紧密度,设置紧密度阈值,只保留紧密度大于阈值的代码依赖得到调用依赖域和数据依赖域;
步骤3,计算需求和代码元素之间的文本相似度,并按照文本相似度值自大到小排序;
步骤4,根据用户对未判断代码域的反馈结果和软件本身的代码依赖信息,优化初始候选线索排序表;
所述步骤4包括以下步骤:
步骤4.1,对于未判断的代码域,根据各域内类与需求相似度最大值,对未判断代码域按照相似度值自大到小的顺序重排序;对于排名第一的代码域,取其域内与需求相似度最大的类交由用户判断;如果与需求具备相关性则执行步骤4.2,否则执行步骤4.4;
步骤4.2,提高域内类对应候选线索的相似度值,公式为:
公式参数解释:maxIRValue为与需求对应所有候选线索的相似度最大值,countInThisRegion为域中的类的个数;
IRnow=Min(maxIRValue,IRorigin+bonus)
其中IRorigin为候选线索当前相似度值,IRnow为对应候选线索更新之后的相似度值,该值不超过maxIRValue即与需求相似度的全局最大值;接下来执行步骤4.3;
步骤4.3,提高域外类对应候选线索相似度值;根据相关域是调用依赖域还是数据依赖域,采用不同方法提高域外类对应候选线索的相似度值;如果是调用依赖域,寻找从域外类到被判定相关代码域内类的路径,该路径需遵循以下规则:
1)从域外类到域内类,一直都是调用的关系;或从域外类到域内类,一直都是被调用的关系;
2)路径上只能出现一个域内类;
对于符合要求的所有路径,对每条路径上所有边紧密度值累乘,最后用累乘值最大的路径提高域外类对应候选线索的相似度值;
公式如下:
公式参数解释:IRnow为该候选线索更新之后的相似度值,IRmaxInRegion为该调用依赖域中,所有域内类对应候选线索的相似度最大值;域外类到域内类可能存在多条路径,PATH为路径中所有边紧密度累乘值最大的路径x为该路径上的边,ClosenessDC(x)为边x的调用依赖紧密度;
如果是数据依赖域,寻找从域外类到被判定相关代码域内类的路径,该路径需遵循以下规则:
1)域外的类必须与域内类存在直接数据依赖;
2)路径上只能出现一个域内的类;
对于符合要求的所有路径,用数据依赖紧密度最大的路径提高域外类对应候选线索的相似度值;
公式如下:
IRnow=IRorigin+IRmaxInRegion*ClosenessCD(x)
公式参数解释:IRnow为该候选线索更新之后的相似度值,IRmaxInRegion为该数据依赖域中,所有域内类对应候选线索的相似度最大值,域外类到域内类可能存在多条路径,x数据依赖紧密度最大的边,ClosenessCD(x)为这条边的数据依赖紧密度;
步骤4.4,按照相似度值从大到小的顺序对所有候选线索重排序;由用户决定是否需要继续判断候选代码域;如果用户继续判断则重复步骤4.1,否则方法流程结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810184034.9/1.html,转载请声明来源钻瓜专利网。