首页 专利交易 科技果 科技人才 科技服务 商标交易 会员权益 IP管家助手 需求市场 关于龙图腾
 /  免费注册
到顶部 到底部
清空 搜索

【发明授权】一种基于决策树算法的API误用检测方法_大连理工大学_202111352689.0 

申请/专利权人:大连理工大学

申请日:2021-11-16

公开(公告)日:2024-06-14

公开(公告)号:CN114153721B

主分类号:G06F11/36

分类号:G06F11/36

优先权:

专利状态码:有效-授权

法律状态:2024.06.14#授权;2022.03.25#实质审查的生效;2022.03.08#公开

摘要:本发明提供一种基于决策树算法的API误用检测方法,属于软件工程技术领域。API复用已有的软件框架或类库,可有效地提高软件开发效率。若违反了这些规约就会造成API误用,目前检测技术面临两个方面挑战:1难以获取API使用规约;2难以同时检测多种不同类型的API误用。该方法首先从代码托管工具上收集开源项目,从中提取出API使用示例。将API使用示例转换为AUG图,从图中挖掘API使用规约,有效解决第一个挑战。基于API使用规约信息构建API使用决策树,通过融入剪枝策略提高API使用决策树的泛化能力。在误用检测阶段,采用粗粒度和细粒度相结合的方式,提高API使用决策树的检测能力有效解决第二个挑战。

主权项:1.一种基于决策树算法的API误用检测方法,其特征在于,步骤如下:步骤1、项目收集:从源代码托管平台上收集包含目标API使用的开源软件项目;步骤2、API示例提取:针对步骤1中收集到的软件项目,识别出目标API,解析源文件并提取API使用示例;步骤3、构建API使用图:首先通过JavaParser将Java源代码解析为抽象语法树AST,提取操作节点和控制节点;确定操作节点和控制节点之间的数据依赖关系以及总体使用顺序,用实线箭头边和虚线箭头边来分别表示控制流和数据流,节点集和边集构成了整体的API使用图AUG;步骤4、提取API使用规约信息:从API使用图中挖掘规约信息并以键值对key,value的形式存入Map集合中;目标API使用规约信息包括参数值、方法调用的顺序信息,即目标API的上一个方法调用和目标API的下一个方法调用、前置条件信息、后置条件信息以及异常信息共五类信息;API使用图是一个有向连通图,采用广度优先搜索API使用图中的每一个节点,已经访问过的节点加入到已访问节点集合Set中,直至所有的节点都加入到节点集合Set中,遍历结束,最后将Map中内容持久化到JSON文件;步骤5、构建API使用决策树:在挖掘到规约信息的基础上,API误用检测问题建模为一个分类预测问题,构建API使用决策树以进行预测;步骤6、对API使用决策树进行剪枝:对步骤5构建的API使用决策树,通过融入剪枝策略来提高API使用决策树的泛化能力;后剪枝对于生成的一棵完整的决策树,自底向上对非叶子节点进行考察,若该节点对应的子树用叶子节点能带来决策树泛化性能的提升,则将该子树替换为叶子节点;步骤7、检测阶段:通过步骤3和步骤4,将目标JAVA文件转换为AUG,然后挖掘其中的规约信息;执行步骤5和步骤6中所构建的API使用决策树,采用粗粒度和细粒度相结合的检测方式,提高API使用决策树的检测能力;检测目标文件中的API误用报给开发人员。

全文数据:

权利要求:

百度查询: 大连理工大学 一种基于决策树算法的API误用检测方法

免责声明
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。