基于图嵌入的软件项目源代码检索方法

作者:凌春阳;邹艳珍;林泽琦;谢冰;赵俊峰; 刊名:软件学报 上传者:梁尔会

【摘要】源代码检索是软件工程领域的一项重要研究问题,其主要任务是检索和复用软件项目API(application programinterface,应用程序接口).随着软件项目的规模越来越大、越来越复杂,当前,源代码检索一方面需要提高基于自然语言API查询的准确性,另一方面需要定位和展示目标API及其相关代码之间的关联,以更好地辅助用户理解API的实现逻辑和使用场景.为此,提出一种基于图嵌入的软件项目源代码检索方法.该方法能够基于软件项目源代码自动构建其代码结构图,并通过图嵌入对源代码进行信息表示.在此基础上,用户可以输入自然语言问题、检索并返回相关的API及其关联信息构成的连通代码子图,从而提高API检索和复用的效率.在以开源项目Apache Lucene和POI为例的检索实验中,该方法检索结果的F1值比现有基于最短路径的方法提高了10%,同时显著缩短了平均响应时间.

全文阅读

软件学报 ISSN 1000-9825, CODEN RUXUEW E-mail: jos@iscas.ac.cn Journal of Software,2019,30(5):1481−1497 [doi: 10.13328/j.cnki.jos.005721] http://www.jos.org.cn ©中国科学院软件研究所版权所有. Tel: +86-10-62562563 基于图嵌入的软件项目源代码检索方法 ∗ 凌春阳 1,2, 邹艳珍 1,2,3, 林泽琦 1,2, 谢 冰 1,2, 赵俊峰 1,2,3 1(高可信软件技术教育部重点实验室(北京大学),北京 100871) 2(北京大学 信息科学技术学院,北京 100871) 3(北京大学(天津滨海)新一代信息技术研究院,天津 300450) 通讯作者: 谢冰, E-mail:xiebing@pku.edu.cn 摘 要: 源代码检索是软件工程领域的一项重要研究问题,其主要任务是检索和复用软件项目 API(application program interface,应用程序接口).随着软件项目的规模越来越大、越来越复杂,当前,源代码检索一方面需要提高基于自然语言 API 查询的准确性,另一方面需要定位和展示目标 API 及其相关代码之间的关联,以更好地辅助用户理解 API 的实现逻辑和使用场景.为此,提出一种基于图嵌入的软件项目源代码检索方法.该方法能够基于软件项目源代码自动构建其代码结构图,并通过图嵌入对源代码进行信息表示.在此基础上,用户可以输入自然语言问题、检索并返回相关的 API 及其关联信息构成的连通代码子图,从而提高 API 检索和复用的效率.在以开源项目 Apache Lucene 和 POI 为例的检索实验中,该方法检索结果的 F1 值比现有基于最短路径的方法提高了 10%,同时显著缩短了平均响应时间. 关键词: API 检索;代码检索;代码图;图嵌入 中图法分类号: TP311 中文引用格式: 凌春阳,邹艳珍,林泽琦,谢冰,赵俊峰.基于图嵌入的软件项目源代码检索方法.软件学报,2019,30(5):1481− 1497. http://www.jos.org.cn/1000-9825/5721.htm 英文引用格式: Ling CY, Zou YZ, Lin ZQ, Xie B, Zhao JF. Approach to searching software source code with graph embedding. Ruan Jian Xue Bao/Journal of Software, 2019,30(5):1481−1497 (in Chinese). http://www.jos.org.cn/1000-9825/5721.htm Approach to Searching Software Source Code with Graph Embedding LING Chun-Yang1,2, ZOU Yan-Zhen1,2,3, LIN Ze-Qi1,2, XIE Bing1,2, ZHAO Jun-Feng1,2,3 1(Key Laboratory of High Confidence Software Technologies (Peking University), Ministry of Education, Beijing 100871, China) 2(School of Electronics Engineering and C

参考文献

引证文献

问答

我要提问