[发明专利]代码质量评价方法和代码质量评价装置在审
申请号: | 202210148361.5 | 申请日: | 2022-02-17 |
公开(公告)号: | CN114489760A | 公开(公告)日: | 2022-05-13 |
发明(设计)人: | 魏亚东;沈志钢;刘博;张建荣 | 申请(专利权)人: | 中国工商银行股份有限公司 |
主分类号: | G06F8/70 | 分类号: | G06F8/70 |
代理公司: | 北京同立钧成知识产权代理有限公司 11205 | 代理人: | 陈洪艳;黄健 |
地址: | 100140 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 代码 质量 评价 方法 装置 | ||
1.一种代码质量评价方法,其特征在于,包括:
获取待评价代码的代码质量问题数据,所述代码质量问题数据是基于代码检查工具对所述待评价代码进行检查得到的;
对所述代码质量问题数据进行预处理,得到多个维度的指标数据;
将所述多个维度的指标数据输入至代码质量评价模型,得到所述待评价代码的评价结果,其中,所述代码质量评价模型是基于历史代码的多个维度的指标数据和所述历史代码的评价结果作为样本训练得到的。
2.根据权利要求1所述的方法,其特征在于,所述多个维度包括:可靠性、安全性、可维护性、代码重复度以及可测性;
其中,所述可靠性的指标数据包括有效代码行数、问题个数以及技术债比率,所述安全性的指标数据包括有效代码行数、漏洞个数以及技术债比率,所述可维护性的指标数据包括有效代码行数、成熟代码坏味道个数、注释行占比、平均认知复杂度以及技术债比率,所述代码重复度的指标数据包括重复代码行占比和重复代码块个数,所述可测性的指标数据包括有效代码行数、分支覆盖率以及平均方法圈复杂度。
3.根据权利要求1所述的方法,其特征在于,所述评价结果是基于所述多个维度的指标数据、所述多个维度的指标数据对应的权重、所述多个维度的指标数据对应的放大因子、以及所述多个维度中每个维度的偏置量得到的。
4.根据权利要求3所述的方法,其特征在于,所述待评价代码为X,所述代码质量评价模型通过下列公式表示:
其中,f(X)表示所述待评价代码X的评价结果,xi,j表示所述待评价代码X的第i个维度的第j个指标数据,ωi,j为所述第i个维度的第j个指标数据的权重,λi,j所述第i个维度的第j个指标数据的放大因子,bi为所述第i个维度的偏置量,为映射函数。
5.根据权利要求1至4中任一项所述的方法,其特征在于,所述方法还包括:
统计提交所述待评价代码的账户提交的多个代码的评价结果;
在所述多个代码的评价结果中不满足质量评价条件的评价结果的数量累积超出第一预设阈值的情况下,发送预警信息,所述预警信息用于提示管理员所述账户存在问题,所述质量评价条件为所述评价结果大于或等于第二预设阈值。
6.一种代码质量评价装置,其特征在于,包括:
获取模块,用于获取待评价代码的代码质量问题数据,所述代码质量问题数据是基于代码检查工具对所述待评价代码进行检查得到的;
处理模块,用于对所述代码质量问题数据进行预处理,得到多个维度的指标数据;以及,将所述多个维度的指标数据输入至代码质量评价模型,得到所述待评价代码的评价结果,其中,所述代码质量评价模型是基于历史代码的多个维度的指标数据和所述历史代码的评价结果作为样本训练得到的。
7.根据权利要求6所述的装置,其特征在于,所述多个维度包括:可靠性、安全性、可维护性、代码重复度以及可测性;
其中,所述可靠性的指标数据包括有效代码行数、问题个数以及技术债比率,所述安全性的指标数据包括有效代码行数、漏洞个数以及技术债比率,所述可维护性的指标数据包括有效代码行数、成熟代码坏味道个数、注释行占比、平均认知复杂度以及技术债比率,所述代码重复度的指标数据包括重复代码行占比和重复代码块个数,所述可测性的指标数据包括有效代码行数、分支覆盖率以及平均方法圈复杂度。
8.根据权利要求6所述的装置,其特征在于,所述评价结果是基于所述多个维度的指标数据、所述多个维度的指标数据对应的权重、所述多个维度的指标数据对应的放大因子、以及所述多个维度中每个维度的偏置量得到的。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国工商银行股份有限公司,未经中国工商银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210148361.5/1.html,转载请声明来源钻瓜专利网。