[发明专利]一种基于层次上下文的API推荐方法有效

专利信息
申请号: 201910503332.4 申请日: 2019-06-11
公开(公告)号: CN110297657B 公开(公告)日: 2023-07-21
发明(设计)人: 李必信;谢仁松;王璐璐;孔祥龙;廖力;周颖 申请(专利权)人: 东南大学
主分类号: G06F8/70 分类号: G06F8/70
代理公司: 南京众联专利代理有限公司 32206 代理人: 杜静静
地址: 210096 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 层次 上下文 api 推荐 方法
【说明书】:

发明公开了一种基于层次上下文的API(Application Programming Interface,应用程序接口)推荐方法,通过静态分析方法中的API调用关系自动生成API序列库,然后利用基于层次上下文推断模型的方法推荐合适的API。本发明充分挖掘了程序上下文中不同调用层次的API关联关系,提升了API序列库的有效性,提高了推荐结果的准确率。

技术领域

本发明涉及评估方法,具体涉及一种基于层次上下文的API推荐方法,属于API推荐技术领域。

背景技术

API是软件库提供的一组可访问的接口,软件库通过API向外提供服务,开发人员通过使用API实现代码复用,提高生产效率。今天的程序广泛使用应用程序编程接口(API):甚至“Hello World”程序也会调用API方法。软件开发人员面临的一个巨大挑战是学习并记住如何使用API。随着软件系统的规模和复杂性急剧增长,软件开发和维护的代价也在持续加大。API推荐技术能够针对大规模程序进行分析和规律挖掘,减少开发人员查找、理解、组合、调试代码的工作量,降低人工错误率,

提高软件的质量。

针对这一问题,目前普遍采取的方法是采用机器学习技术,利用已有方法的JDKAPI序列来推荐API,这种JDKAPI序列过滤掉了项目内部方法。但是项目内部方法的层次调用关系也呈现了JDKAPI的使用方式。本发明扩充了传统API序列集合的范围,利用层次上下文信息将项目内部方法也扩展成JDKAPI。相应的,提出基于层次上下文推断模型的计算方法评估两个API序列的相似值,再根据相似值的大小排序确定最终的API推荐结果。

发明内容

本发明正是针对现有技术中存在的问题,提供一种基于层次上下文的API推荐方法,该方法通过静态分析程序上下文中的API调用关系,利用不同调用层次的信息来自动地生成有效的API序列集,在此基础上采用基于图的序列相似度算法进行API推荐的方法。

为了实现上述目的,本发明的技术方案如下,一种基于层次上下文的API推荐方法,包括如下步骤:

步骤1)分析调用关系,通过静态分析java程序字节码生成调用关系图和获取项目信息,其中调用关系图的节点表示API,用JVM中间语言表示,边表示API之间的调用关系;项目信息包括项目名称,第三方lib库名称等;

步骤2)生成层次上下文信息,去除与API推荐无关的两种调用关系,并删除JDKAPI之间的调用关系来将调用关系图转化为层次上下文信息;

步骤3)生成API序列库,通过遍历层次上下文来抽取API序列,每个API序列体现了API的一种使用方法;

步骤4)抽取推荐点的上下文信息,包括推荐点API序列和推荐点类型,推荐点类型主要指JDK的类型;

步骤5)基于层次上下文推断模型来计算API推荐列表,根据推荐点类型和及其上下文信息,利用基于层次上下文推断模型的方法找出候选API序列集合,最终得到推荐API列表。

本发明方法的优选方案中,步骤2)中通过分析调用图中API调用关系,发现与API推荐无关的两种调用关系,一是递归调用(方法调用方法本身);二是下层方法调用上层方法(构成了“环”)。另外在层次上下文中,存在两类API,一类是项目内部实现的方法,称为methodAPI,记作APIm;一类是JDK实现的方法,即java语言的软件开发包提供的通用接口,称为JDKAPI,记作APIj。对于API推荐技术来说,仅需要考虑推荐项目方法直接调用的JDKAPI,不需要考虑JDKAPI之间的互相调用。基于此,生成层次上下文的方法的具体流程为:

a)遍历图中各个子图,去除构成环的多余的边,将调用关系图转化为多个调用关系树,这些树的不同层次构成了推荐需要的层次上下文信息。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201910503332.4/2.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top