一种软件开发智能辅助方法及系统技术方案

技术编号:33398635 阅读:19 留言:0更新日期:2022-05-11 23:19
本发明专利技术公开了一种软件开发智能辅助方法及系统,涉及计算机技术领域。获取已登录软件开发智能辅助系统的目标账户的软件开发信息,并根据软件开发信息调用目标软件开发包SDK;当检测到针对目标方法的调用请求时,提取目标方法所在的目标代码行的上下文信息;在目标SDK中获取与上下文信息相似度高的预设数目个待选方法;针对每一待选方法,生成该待选方法的代码摘要,得到待显示方法;将待显示方法显示在软件开发界面。可以通过软件开发信息自动调用目标SDK,并在调用方法时,可以根据目标方法所在的目标代码行的上下文信息自动匹配待选方法,生成待选方法的代码摘要,提高程序代码编写的效率。码编写的效率。码编写的效率。

【技术实现步骤摘要】
一种软件开发智能辅助方法及系统


[0001]本专利技术涉及计算机
,具体涉及一种软件开发智能辅助方法及系统。

技术介绍

[0002]软件开发是根据用户要求建造出软件系统或者系统中的软件部分的过程,包括需求捕捉、需求分析、设计、实现和测试的系统工程。程序代码编写是整个软件开发过程至关重要的部分。
[0003]开发人员在程序代码编写过程中,可以使用SDK(Software Development Kit,软件开发包)辅助编写过程,SDK包含一些可调用的方法(已经编写好的功能函数代码),开发人员可以使用或者参考这些方法。但是,开发人员需要自行调用SDK和在SDK中查找所需的方法,极大影响程序代码编写的效率。

技术实现思路

[0004]本专利技术的目的就在于解决上述
技术介绍
的问题,而提出一种软件开发智能辅助方法及系统。
[0005]本专利技术的目的可以通过以下技术方案实现:
[0006]本专利技术实施例在第一方面,首先提供了一种软件开发智能辅助方法,应用于软件开发智能辅助系统,所述方法包括:
[0007]获取已登录所述软件开发智能辅助系统的目标账户的软件开发信息,并根据所述软件开发信息调用目标软件开发包SDK;所述软件开发信息包括开发人员信息和待开发软件信息;
[0008]当检测到针对目标方法的调用请求时,提取所述目标方法所在的目标代码行的上下文信息;所述上下文信息为包含所述目标代码行的预设数目行代码行,所包含的预设字符信息;
[0009]在所述目标SDK中获取与所述上下文信息相似度高的预设数目个待选方法;
[0010]针对每一待选方法,生成该待选方法的代码摘要,得到待显示方法;其中,方法是所述目标SDK中保存的已经编写好的功能函数代码;
[0011]将所述待显示方法显示在软件开发界面。
[0012]可选地,所述开发人员信息包括该开发人员曾使用的软件开发工具信息和曾调用的SDK信息;所述待开发软件信息包括软件类型信息和软件配置项;
[0013]获取已登录软件开发智能辅助系统的目标账户的软件开发信息,并根据所述软件开发信息调用目标SDK,包括:
[0014]根据开发人员曾调用的SDK信息和所述软件类型信息,确定目标SDK类型;
[0015]根据开发人员曾使用的软件开发工具信息和所述软件配置项,确定目标SDK版本;
[0016]根据所述目标SDK类型和所述目标SDK版本调用目标SDK。
[0017]可选地,所述上下文信息包括行上下文信息和列上下文信息;所述行上下文信息
为所述目标代码行包含的第一预设字符信息;所述列上下文信息为所述目标代码行的前后预设数目行代码行包含的第二预设字符信息;所述第一预设字符信息包括方法名称、Java关键字、类名称和接口名称中的至少一种;所述第二预设字符信息包括方法名称、Java关键字、类名称、接口名称和赋值运算符中的至少一种。
[0018]可选地,在所述目标SDK中获取与所述上下文信息相似度高的预设数目个待选方法,包括:
[0019]使用所述目标方法的名称和类型作为索引,在所述目标SDK中匹配预设数目个方法,作为第一方法;
[0020]针对每一第一方法,生成该第一方法唯一的标识符,以各个第一方法的标识符为值,以所述上下文信息为反向索引结构的键,构建反向索引结构的第一方法列表;
[0021]计算所述上下文信息的哈希值,根据所述第一方法列表计算各个第一方法的哈希值;
[0022]根据各个第一方法的哈希值和所述上下文信息的哈希值,确定相似度高的预设数目个第一方法,作为待选方法。
[0023]可选地,针对每一待选方法,生成该待选方法的代码摘要,得到待显示方法,包括:
[0024]针对每一待选方法,生成该待选方法的抽象语法树AST和令牌ID;
[0025]将所述AST和所述令牌ID输入预先训练的双编码器代码摘要模型中,生成该待选方法的代码摘要;所述双编码器代码摘要模型通过两个编码器分别对所述AST和所述令牌ID进行编码,并将两个编码器的输出结果相结合通过解码器生成代码摘要。
[0026]本专利技术实施例在第二方面,提供了一种软件开发智能辅助系统,包括:
[0027]SDK辅助模块,用于获取已登录软件开发智能辅助系统的目标账户的软件开发信息,并根据所述软件开发信息调用目标SDK;所述软件开发信息包括开发人员信息和待开发软件信息;
[0028]上下文信息提取模块,用于当检测到针对目标方法的调用请求时,提取所述目标方法所在的目标代码行的上下文信息;所述上下文信息为包含所述目标代码行的预设数目行代码行,所包含的预设字符信息;
[0029]待选方法匹配模块,用于在所述目标SDK中获取与所述上下文信息相似度高的预设数目个待选方法;其中,方法是所述目标SDK中保存的已经编写好的功能函数代码;
[0030]代码摘要生成模块,用于针对每一待选方法,生成该待选方法的代码摘要,得到待显示方法;
[0031]显示模块,将所述待显示方法显示在软件开发界面。
[0032]可选地,所述开发人员信息包括该开发人员曾使用的软件开发工具信息和曾调用的SDK信息;所述待开发软件信息包括软件类型信息和软件配置项;
[0033]SDK辅助模块,包括:
[0034]开发信息获取子模块,用于获取已登录软件开发智能辅助系统的目标账户的软件开发信息;
[0035]SDK类型确定子模块,用于根据开发人员曾调用的SDK信息和所述软件类型信息,确定目标SDK类型;
[0036]SDK版本确定子模块,用于根据开发人员曾使用的软件开发工具信息和所述软件
配置项,确定目标SDK版本;
[0037]SDK版本调用子模块,用于根据所述目标SDK类型和所述目标SDK版本调用目标SDK。
[0038]可选地,所述上下文信息包括行上下文信息和列上下文信息;所述行上下文信息为所述目标代码行包含的第一预设字符信息;所述列上下文信息为所述目标代码行的前后预设数目行代码行包含的第二预设字符信息;所述第一预设字符信息包括方法名称、Java关键字、类名称和接口名称中的至少一种;所述第二预设字符信息包括方法名称、Java关键字、类名称、接口名称和赋值运算符中的至少一种。
[0039]可选地,待选方法匹配模块,包括:
[0040]第一匹配子模块,用于使用所述目标方法的名称和类型作为索引,在所述目标SDK中匹配预设数目个方法,作为第一方法;
[0041]第一方法列表创建子模块,用于针对每一第一方法,生成该第一方法唯一的标识符,以各个第一方法的标识符为值,以所述上下文信息为反向索引结构的键,创建反向索引结构的第一方法列表;
[0042]计算子模块,用于计算所述上下文信息的哈希值,根据所述第一方法列表计算各个第一方法的哈希值;
[0043]第二匹配子模块,用于根据各个第一方法的哈希值和所述上下文信息的哈本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种软件开发智能辅助方法,其特征在于,应用于软件开发智能辅助系统,所述方法包括:获取已登录所述软件开发智能辅助系统的目标账户的软件开发信息,并根据所述软件开发信息调用目标软件开发包SDK;所述软件开发信息包括开发人员信息和待开发软件信息;当检测到针对目标方法的调用请求时,提取所述目标方法所在的目标代码行的上下文信息;所述上下文信息为包含所述目标代码行的预设数目行代码行,所包含的预设字符信息;在所述目标SDK中获取与所述上下文信息相似度高的预设数目个待选方法;针对每一待选方法,生成该待选方法的代码摘要,得到待显示方法;其中,方法是所述目标SDK中保存的已经编写好的功能函数代码;将所述待显示方法显示在软件开发界面。2.根据权利要求1所述的一种软件开发智能辅助方法,其特征在于,所述开发人员信息包括该开发人员曾使用的软件开发工具信息和曾调用的SDK信息;所述待开发软件信息包括软件类型信息和软件配置项;获取已登录软件开发智能辅助系统的目标账户的软件开发信息,并根据所述软件开发信息调用目标SDK,包括:根据开发人员曾调用的SDK信息和所述软件类型信息,确定目标SDK类型;根据开发人员曾使用的软件开发工具信息和所述软件配置项,确定目标SDK版本;根据所述目标SDK类型和所述目标SDK版本调用目标SDK。3.根据权利要求1所述的一种软件开发智能辅助方法,其特征在于,所述上下文信息包括行上下文信息和列上下文信息;所述行上下文信息为所述目标代码行包含的第一预设字符信息;所述列上下文信息为所述目标代码行的前后预设数目行代码行包含的第二预设字符信息;所述第一预设字符信息包括方法名称、Java关键字、类名称和接口名称中的至少一种;所述第二预设字符信息包括方法名称、Java关键字、类名称、接口名称和赋值运算符中的至少一种。4.根据权利要求1所述的一种软件开发智能辅助方法,其特征在于,在所述目标SDK中获取与所述上下文信息相似度高的预设数目个待选方法,包括:使用所述目标方法的名称和类型作为索引,在所述目标SDK中匹配预设数目个方法,作为第一方法;针对每一第一方法,生成该第一方法唯一的标识符,以各个第一方法的标识符为值,以所述上下文信息为反向索引结构的键,构建反向索引结构的第一方法列表;计算所述上下文信息的哈希值,根据所述第一方法列表计算各个第一方法的哈希值;根据各个第一方法的哈希值和所述上下文信息的哈希值,确定相似度高的预设数目个第一方法,作为待选方法。5.根据权利要求1所述的一种软件开发智能辅助方法,其特征在于,针对每一待选方法,生成该待选方法的代码摘要,得到待显示方法,包括:针对每一待选方法,生成该待选方法的抽象语法树AST和令牌ID;将所述AST和所述令牌ID输入预先训练的双编码器代码摘要模型中,生成该待选方法
的代码摘要;所述双编码器代码摘要模型通过两个编码器分别对所述AST和所述令牌ID进行编码,并将两个编码器的输出结果相结合通过解码器生成代码摘要。6.一种软件开发智能辅助系统,其特征在于,包括:SDK辅助模块,用于获取已登录软...

【专利技术属性】
技术研发人员:张劲松刘海生黄德鸿王浩王太福吴启伟
申请(专利权)人:广州图创计算机软件开发有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1