国内刊号:11-2560/TP
国际刊号:1000-9825
发布日期:
作者:凌春阳,邹艳珍,林泽琦,谢冰,赵俊峰
单位:凌春阳,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学 信息科学技术学院, 北京 10087111,邹艳珍,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学 信息科学技术学院, 北京 100871;北京大学(天津滨海)新一代信息技术研究院, 天津 30045002,林泽琦,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学 信息科学技术学院, 北京 10087103,谢冰,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学 信息科学技术学院, 北京 10087104,赵俊峰,高可信软件技术教育部重点实验室(北京大学), 北京 100871;北京大学 信息科学技术学院, 北京 100871;北京大学(天津滨海)新一代信息技术研究院, 天津 30045005
关键词:API检索;代码检索;代码图;图嵌入
基金:国家重点研发计划(2016YFB1000801);国家杰出青年科学基金(61525201)
源代码检索是软件工程领域的一项重要研究问题,其主要任务是检索和复用软件项目API(application program interface,应用程序接口).随着软件项目的规模越来越大、越来越复杂,当前,源代码检索一方面需要提高基于自然语言API查询的准确性,另一方面需要定位和展示目标API及其相关代码之间的关联,以更好地辅助用户理解API的实现逻辑和使用场景.为此,提出一种基于图嵌入的软件项目源代码检索方法.该方法能够基于软件项目源代码自动构建其代码结构图,并通过图嵌入对源代码进行信息表示.在此基础上,用户可以输入自然语言问题、检索并返回相关的API及其关联信息构成的连通代码子图,从而提高API检索和复用的效率.在以开源项目Apache Lucene和POI为例的检索实验中,该方法检索结果的F1值比现有基于最短路径的方法提高了10%,同时显著缩短了平均响应时间.
来源:2019年第5期
《软件学报》期刊编辑部