[发明专利]一种基于反馈机制的API误用检测与修正方法在审
申请号: | 202310349086.8 | 申请日: | 2023-04-04 |
公开(公告)号: | CN116483700A | 公开(公告)日: | 2023-07-25 |
发明(设计)人: | 张静宣;李灿;李朱杭;孙天悦;唐艺璇 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/30;G06F8/41 |
代理公司: | 南京瑞弘专利商标事务所(普通合伙) 32249 | 代理人: | 许海洲 |
地址: | 210016 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 反馈 机制 api 误用 检测 修正 方法 | ||
1.一种基于反馈机制的API误用检测与修正方法,其特征在于,包括以下步骤:
1)收集应用程序编程接口API正确使用源代码集和API误用源代码集;
2)从API正确使用源代码集和API误用源代码集中挖掘出API正确使用模式与API误用模式;
3)给出待检测代码,将待检测代码转换为待检测API使用图,并利用图距离算法完成是否发生API误用的检测;
4)在检测出API误用后,对于误用API提出修改意见。
2.如权利要求1所述的一种基于反馈机制的API误用检测与修正方法,其特征在于,
步骤1)的实现过程为:
步骤1.1)选择大型真实的开源客户端代码作为API正确使用源代码集;
对于获取的API正确使用源代码集,根据开发语言对API正确使用源代码集的多个源文件进行筛选,保留以.java结尾的源文件;通过Java代码解析工具JavaParser对以.java结尾的源文件进行解析,获取以.java结尾的源文件中包含的每个方法体的抽象语法树,从中提取出目标API,并使用程序切片技术提取出目标API对应的使用示例,将提取出的使用示例作为API正确使用示例;
步骤1.2)通过技术问答网站StackOverflow的群智知识获取API误用源代码集;
从官方文档中提取API类型,使用搜索引擎从技术问答网站StackOverflow中进行搜索并链接到对应的API类型;同时选择通过搜索在帖子的title或question中出现API类型与关键词获取API误用示例。
3.如权利要求2所述的一种基于反馈机制的API误用检测与修正方法,其特征在于,
步骤2)中:
将源代码集转换为API使用图的转换过程为:1)将API用法中的对象、值和文本用数据节点进行表示;2)将API用法中的方法调用、操作符和指令用动作节点进行表示;3)将节点表示的实体和动作之间的控制和数据流用边来表示,分为八种类型,包括接收边、参数边、定义边、顺序边、条件边、抛出边、处理边和同步边;其中API用法包括API正确使用和API误用;
对获取的API使用图进行修改和提升:首先,在API使用图每个顺序边order上添加一个类型属性表示方法调用的前后顺序;其次,用不同于局部变量的字段和参数来表示数据节点中的信息;最后,从包含构造函数和字段初始化的代码块中找到识别误用基本信息的语句,并将找到的对应语句通过顺序边order链接到使用对应语句的方法的API使用图中;
步骤2.1)根据转换过程将API正确使用源代码集和API误用源代码集分别转换成API正确使用图集和API误用图集;
步骤2.2)对于API正确使用模式的挖掘:以API正确使用图和最低阈值min_sup作为频繁子图挖掘算法gSpan的输入,识别出现频率高于最低阈值min_sup的子图,即挖掘出API正确使用模式,得到API正确使用模式数据集;
对于API误用模式的挖掘:由于API误用形式多种多样,每种API误用情况都单独作为一种API误用模式存在,因此API误用模式直接用API误用图表示,得到API误用模式数据集;
步骤2.3)对于获取的API正确使用模式,根据频繁支持度进行初始排序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202310349086.8/1.html,转载请声明来源钻瓜专利网。