[发明专利]一种基于层次上下文的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)遍历图中各个子图,去除构成环的多余的边,将调用关系图转化为多个调用关系树,这些树的不同层次构成了推荐需要的层次上下文信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于东南大学,未经东南大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910503332.4/2.html,转载请声明来源钻瓜专利网。





