System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 代码评审方法、装置、计算机设备和存储介质制造方法及图纸_技高网

代码评审方法、装置、计算机设备和存储介质制造方法及图纸

技术编号:40358124 阅读:5 留言:0更新日期:2024-02-09 14:44
本申请涉及一种代码评审方法、装置、计算机设备和存储介质。所述方法包括:获取软件代码及对应的分析模型,其中,所述分析模型包括所述软件代码对应的标准分析结构图、所述软件代码对应的标准功能的标准分析序列图中的至少一种;将所述软件代码以及所述分析模型输入至代码评审模型,输出所述软件代码对应的评审信息;其中,所述评审信息用于表征所述软件代码与所述分析模型的匹配信息;所述代码评审模型为基于样本软件代码及对应的样本分析模型,对初始自然语言模型进行训练得到。本申请能够高效、准确地自动实现软件代码与分析模型的差异比对,发现软件代码中的问题,给出详细全面的评审信息。

【技术实现步骤摘要】

本申请涉及人工智能,特别是涉及一种代码评审方法、装置、计算机设备、存储介质和计算机程序产品。


技术介绍

1、在软件工程中,分析模型是指导代码实现的重要方式。在分析建模阶段确定分析模型后,软件代码的具体实现需要按照分析模型进行。然而,由于分析模型与软件代码实现之间的复杂性和差异,很多时候,代码实现会偏离分析模型。

2、相关技术中,通过人工评审分析模型与软件代码实现是否一致,人工评审存在时间消耗大、效率低;依赖于评审人员的经验和能力,存在主观性和不一致性;以及难以发现细微的差异和潜在问题。因此,如何高效、准确地比对代码与分析模型的不一致是亟需要解决的技术问题。


技术实现思路

1、基于此,有必要针对上述技术问题,提供一种能够高效、准确地自动实现软件代码与分析模型的差异比对的代码评审方法、装置、计算机设备、计算机可读存储介质和计算机程序产品。

2、第一方面,本申请提供了一种代码评审方法。所述方法包括:

3、获取软件代码及对应的分析模型,其中,所述分析模型包括所述软件代码对应的标准分析结构图、所述软件代码对应的标准功能的标准分析序列图中的至少一种;所述标准分析结构图用于表征标准结构以及标准结构之间的静态关系,所述标准分析序列图用于表征所述标准结构对应的标准功能以及标准结构之间的交互关系;

4、将所述软件代码以及所述分析模型输入至代码评审模型,输出所述软件代码对应的评审信息;其中,所述评审信息用于表征所述软件代码与所述分析模型的匹配信息;所述代码评审模型为基于样本软件代码及对应的样本分析模型,对初始自然语言模型进行训练得到。

5、在其中一个实施例中,所述代码评审模型的获得方式包括:

6、获取第一样本集合;其中,所述第一样本集合包括多种评审任务对应的样本软件代码、样本分析模型,所述样本软件代码上标注有评审信息;

7、分别将多种评审任务对应的样本软件代码及样本分析模型,输入至初始自然语言模型,输出第一预测结果;

8、基于所述第一预测结果与标注的各评审信息之间的差异,对初始自然语言模型进行迭代调整,直到所述差异满足预设要求,得到代码评审模型。

9、在其中一个实施例中,所述获取第一样本集合,包括:

10、获取多种检测任务对应的初始样本软件代码、初始样本分析模型;

11、对所述初始样本软件代码进行代码重构、注释添加或以及变量名称的修改,得到扩展的样本软件代码;

12、基于所述初始样本软件代码、所述初始样本分析模型、所述扩展的样本软件代码,得到第一样本集合。

13、在其中一个实施例中,所述获取第一样本集合,包括:

14、获取多种检测任务对应的候选样本软件代码及对应的候选样本分析模型;

15、将所述候选样本软件代码及对应的候选样本分析模型输入至初始自然语言模型,输出第三预测结果及对应的预测概率;

16、基于所述第三预测结果的预测概率的概率分布,确定候选样本软件代码及对应的候选样本分析模型,得到第一样本集合。

17、第二方面,本申请还提供了一种代码评审模型的训练方法,包括:

18、获取第一样本集合;其中,所述第一样本集合包括多种评审任务对应的样本软件代码、样本分析模型,所述样本软件代码上标注有评审信息;其中,所述样本分析模型包括所述样本软件代码对应的标准分析结构图、所述样本软件代码对应的标准功能的标准分析序列图中的至少一种;所述标准分析结构图用于表征标准结构以及标准结构之间的静态关系,所述标准分析序列图用于表征所述标准结构对应的标准功能以及标准结构之间的交互关系;其中,所述评审信息用于表征所述样本软件代码与所述分析模型的匹配信息;

19、分别将多种评审任务对应的样本软件代码及样本分析模型,输入至初始自然语言模型,输出第一预测结果;

20、基于所述预测结果与标注的各评审信息之间的差异,对初始自然语言模型进行迭代调整,直到所述差异满足预设要求,得到代码评审模型。

21、第三方面,本申请还提供了一种代码评审装置,包括:

22、第一获取模块,用于获取软件代码及对应的分析模型,其中,所述分析模型包括所述软件代码对应的标准分析结构图、所述软件代码对应的标准功能的标准分析序列图中的至少一种;所述标准分析结构图用于表征标准结构以及标准结构之间的静态关系,所述标准分析序列图用于表征所述标准结构对应的标准功能以及标准结构之间的交互关系;

23、生成模块,用于将所述软件代码以及所述分析模型输入至代码评审模型,输出所述软件代码对应的评审信息;其中,所述评审信息用于表征所述软件代码与所述分析模型的匹配信息;所述代码评审模型为基于样本软件代码及对应的样本分析模型,对初始自然语言模型进行训练得到。

24、在其中一个实施例中,所述静态关系包括泛化关系,所述第一获取模块还用于:

25、获取软件代码对应软件系统的各个标准结构;

26、从各个标准结构中确定子级标准结构,以及包含所述子级标准结构的父级标准结构;

27、将各子级标准结构与对应的父级标准结构通过泛化关系符相连接,得到标准分析结构图。

28、在其中一个实施例中,所述静态关系包括关联关系或依赖关系,所述第一获取模块还用于:

29、从软件代码对应的软件系统的各个标准结构中确定多个分组;其中,每个分组包括具有静态关系的第一标准结构和第二标准结构;

30、分别确定所述分组中第一标准结构的数量及用于表征所述第一标准结构数量的数量标识符,第二标准结构的数量及用于表征所述第二标准结构数量的数量标识符;

31、将每个分组的第一标准结构与对应的第二标准结构通过静态关系符相连接,并在第一标准结构和第二标准结构上标记对应数量标识符,得到标准分析结构图。

32、在其中一个实施例中,所述第一获取模块还用于:

33、获取软件代码对应软件系统的系统用例的各标准结构;

34、将各标准结构的标准功能的文字描述添加至对应标准结构的对应位置;

35、将发生交互行为的标准结构通过交互关系符相连接,得到标准分析序列图。

36、在其中一个实施例中,所述生成模块还用于:

37、提取所述分析模型中的语义信息,所述语义信息包括标准结构以及标准结构之间的静态关系,和/或标准结构对应的标准功能以及标准结构之间的交互关系;

38、将所述语义信息写入文本文件,得到包含所述语义信息的文本文件;

39、将包含所述语义信息的文本文件和所述软件代码输入至代码评审模型。

40、在其中一个实施例中,代码信息或模型信息分别包括各个标准结构、标准结构的属性、标准结构对应的标准功能、标准结构之间的静态关系、交互关系中的至少一种,所述评审信息包括缺失类的评审信息,所述生成模块还用于:

41、输出所述软件代码对本文档来自技高网...

【技术保护点】

1.一种代码评审方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述静态关系包括泛化关系,获取软件代码对应的标准分析结构图,包括:

3.根据权利要求1所述的方法,其特征在于,所述静态关系包括关联关系或依赖关系,获取软件代码对应的标准分析结构图,包括:

4.根据权利要求1所述的方法,其特征在于,获取软件代码对应的标准分析序列图,包括:

5.根据权利要求1所述的方法,其特征在于,所述将所述软件代码以及所述分析模型输入至代码评审模型,包括:

6.根据权利要求1所述的方法,其特征在于,代码信息或模型信息分别包括各个标准结构、标准结构的属性、标准结构对应的标准功能、标准结构之间的静态关系、交互关系中的至少一种,所述评审信息包括缺失类的评审信息,所述输出所述软件代码对应的评审信息包括:

7.根据权利要求1所述的方法,其特征在于,代码信息或模型信息分别包括各个标准结构、标准结构的属性、标准结构对应的标准功能、标准结构之间的静态关系、交互关系中的至少一种,所述评审信息包括缺失类的评审信息,所述评审信息包括非一致类的评审信息,所述输出所述软件代码对应的评审信息,包括:

8.根据权利要求1所述的方法,其特征在于,所述代码评审模型的获得方式包括:

9.根据权利要求8所述的方法,其特征在于,所述初始自然语言模型包括编码器网络和解码器网络,分别将多种评审任务对应的样本软件代码及样本分析模型,输入至初始自然语言模型,输出第一预测结果,包括:

10.根据权利要求8所述的方法,其特征在于,获取第一样本集合,包括:

11.根据权利要求8所述的方法,其特征在于,所述初始自然语言模型的获得方式,包括:

12.根据权利要求1所述的方法,其特征在于,在所述输出所述代码中不符合所述分析模型的代码行及对应的评论信息之后,还包括:

13.根据权利要求12所述的方法,其特征在于,在评审信息展示栏展示所述代码片段对应的评审信息,包括:

14.根据权利要求12所述方法,其特征在于,在评审信息展示栏展示所述代码片段对应的评审信息之后,还包括:

15.一种代码评审模型的训练方法,其特征在于,包括:

16.一种代码评审装置,其特征在于,包括:

17.一种代码评审模型的训练装置,其特征在于,包括:

18.一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,其特征在于,所述处理器执行所述计算机程序时实现权利要求1至14中任一项所述的方法的步骤或者实现权利要求15所述的方法的步骤。

19.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤或者实现权利要求15所述的方法的步骤。

20.一种计算机程序产品,包括计算机程序,其特征在于,该计算机程序被处理器执行时实现权利要求1至14中任一项所述的方法的步骤或者实现权利要求15所述的方法的步骤。

...

【技术特征摘要】

1.一种代码评审方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述静态关系包括泛化关系,获取软件代码对应的标准分析结构图,包括:

3.根据权利要求1所述的方法,其特征在于,所述静态关系包括关联关系或依赖关系,获取软件代码对应的标准分析结构图,包括:

4.根据权利要求1所述的方法,其特征在于,获取软件代码对应的标准分析序列图,包括:

5.根据权利要求1所述的方法,其特征在于,所述将所述软件代码以及所述分析模型输入至代码评审模型,包括:

6.根据权利要求1所述的方法,其特征在于,代码信息或模型信息分别包括各个标准结构、标准结构的属性、标准结构对应的标准功能、标准结构之间的静态关系、交互关系中的至少一种,所述评审信息包括缺失类的评审信息,所述输出所述软件代码对应的评审信息包括:

7.根据权利要求1所述的方法,其特征在于,代码信息或模型信息分别包括各个标准结构、标准结构的属性、标准结构对应的标准功能、标准结构之间的静态关系、交互关系中的至少一种,所述评审信息包括缺失类的评审信息,所述评审信息包括非一致类的评审信息,所述输出所述软件代码对应的评审信息,包括:

8.根据权利要求1所述的方法,其特征在于,所述代码评审模型的获得方式包括:

9.根据权利要求8所述的方法,其特征在于,所述初始自然语言模型包括编码器网络和解码器网络,分别将多种评审任务对应的样本软件代码及样本分析模型,输入至初始自然语言模型,输...

【专利技术属性】
技术研发人员:王万里张晋铭
申请(专利权)人:腾讯科技深圳有限公司
类型:发明
国别省市:

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

1