[发明专利]一种面向代码重用的源代码推荐方法有效

专利信息
申请号: 202110205302.2 申请日: 2021-02-24
公开(公告)号: CN112925563B 公开(公告)日: 2022-01-04
发明(设计)人: 文万志;赵甜;胡晨;郑大顺;胡逸涛;朱星宇;程实 申请(专利权)人: 南通大学
主分类号: G06F8/73 分类号: G06F8/73;G06F8/33;G06F8/36
代理公司: 北京科家知识产权代理事务所(普通合伙) 11427 代理人: 徐思波
地址: 226019 *** 国省代码: 江苏;32
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 面向 代码 重用 源代码 推荐 方法
【说明书】:

发明提供一种面向代码重用的源代码推荐方法,主要用于帮助公司程序员根据软件需求规范查找实例代码和相关实现,包括如下步骤:源代码预处理和验证;生成函数摘要;获取函数标签词;构造键值对;生成问题词条;查询匹配度计算;搜索结果输出;本发明新提出的代码推荐方法具有较高的实用性和正确性,能有效辅助程序员理解软件需求文档,实现功能,节省软件开发时间。

技术领域

本发明属于软件工程技术领域,具体涉及一种面向代码重用的源代码推荐方法。

背景技术

随着软件技术的发展,用户量不断加大且用户对软件功能的需求不断增加,这使得软件开发的规模不断增大。开发人员在软件开发过程经常要对一些功能函数进行重复编写,而且很多时候开发人员不能很好的理解软件需要文档。开发人员通过搜索引擎等方法搜索其他开发者的代码作为参考完成自己的任务,但对于搜索引擎得到的参考代码并不能很好的切合自己已写的代码。开发者通常还要阅读自己的代码,对参考代码进行一定的修改才能得到自己想要的形式,这对开发人员是在时间和精力上极大的消耗,大大拉长了软件开发周期。

目前已有一些深度学习方法开始应用到代码推荐当中,例如循环神经网络或者transformer(转换器)模型等等。但这些模型很少能够充分获取代码中的结构信息,并且存在对长序列的信息丢失问题,这些问题使得推荐的代码不够准确,并不能够很好的帮助到开发人员。代码块的另一种表征形式是抽象语法树,这一结构可以很好的体现结构信息,适应抽象语法树结构,不仅可以解决结构信息获取不足问题,同时也解决了长序列信息丢失问题,提高推荐精度。

基于以上叙述,可以通过重用以前项目中的源代码来减少开发时间和成本,需提供一种面向重用的源代码推荐方法,以帮助程序员根据软件需求规范找到相关的实现或示例代码。

发明内容

本发明要解决的技术问题是提供一种面向代码重用的源代码推荐方法,具有较高的实用性和正确性,能有效辅助程序员理解软件需求文档,实现功能,节省软件开发时间。

为解决上述技术问题,本发明的实施例提供一种面向代码重用的源代码推荐方法,包括如下步骤:

S1、源代码预处理和验证:对上传的源代码进行预处理,再通过构造抽象语法树从源代码中提取包括函数名和变量名的重要属性,如果在构造AST时出现错误,则将这段代码视为无效并放弃对该代码的上传;完成AST构造后对函数源代码进行验证,判断是否是库内已有函数源代码的功能延展,或者是库内某函数源代码的简版;

S2、生成函数摘要:结合步骤S1针对每个函数源代码构造的抽象语法树,通过AST提取函数源代码的包括函数名和变量的信息,与函数源代码的注释部分结合生成函数源代码的函数摘要;

S3、获取函数标签词:结合步骤S2针对函数源代码生成的函数摘要,识别函数摘要里的函数名、重要变量名以及部分重要注释,将这三部分内容结合在一起得到函数标签词;

S4、构造键值对:将步骤S1中经过预处理后的函数源代码与根据该函数源代码由步骤S2生成的函数摘要以及步骤S3生成的函数标签词生成具有相同“键”的键值对,即构造{Fun_id,Source_code}、{Fun_id,Fun_describe}、{Fun_id,Fun_label}键值对,分成存入数据库;其中,Fun_id表示为函数编号,Source_code表示为函数源代码,Fun_describe表示为函数摘要,Fun_label表示为函数标签词;

S5、生成问题词条:根据用户输入的已知问题项为用户推荐查询,分析用户输入的问题句,通过对比无效词库将自然语言的问题句进行剔除得到问题有效句,再对问题有效句进行分析转换成有效词条;

S6、查询匹配度计算:计算由步骤S5通过分析问题句得到的有效词条与库内各个函数源代码的函数标签词的相关系数,以及问题有效句在函数摘要的存在系数;查询匹配度来源于两个数值:相关系数以及存在系数;

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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