[发明专利]软件代码健康度的检测方法、处理方法、装置及电子设备有效
申请号: | 201810589473.8 | 申请日: | 2018-06-08 |
公开(公告)号: | CN110580217B | 公开(公告)日: | 2023-05-05 |
发明(设计)人: | 傅珉;李元平;朱海;黄燕君;张冰 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 广州铸智知识产权代理有限公司 44886 | 代理人: | 徐瑞红 |
地址: | 英属开曼群岛大开*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 软件 代码 健康 检测 方法 处理 装置 电子设备 | ||
1.一种软件代码健康度的检测方法,其特征在于,包括:
获取待评估软件代码的多个维度的原始度量值;
根据各个维度对应的第一权重值,对所述多个维度的原始度量值进行加权求和,获得待评估软件代码的健康度,其中,所述第一权重值为通过机器学习而获得的权重值,
其中,所述方法还包括:
获取多个作为训练样本的训练软件代码;
获取各个训练软件代码的多个维度的原始度量值作为各个训练样本的训练特征,以及获取各个训练软件代码对应的健康评价结果作为各个训练样本的结果标签;
使用多个训练样本对原始的随机森林模型进行训练,生成训练后的随机森林模型;
获取训练后的随机森林模型中,与各个训练特征对应的第二权重值作为所述第一权重值。
2.根据权利要求1所述的方法,其特征在于,所述多个维度的原始度量值,包括:
动态维度和\或静态维度的原始度量值,
其中,所述动态维度进一步包括:代码测试bug率、代码线上故障率、代码运行时资源使用率中的任意一个或任意多个的组合;
所述静态维度进一步包括规约符合度、软件代码复杂度、代码面向对象性、代码重复率中的任意一个或任意多个的组合。
3.根据权利要求1所述的方法,其特征在于,所述对所述多个维度的原始度量值进行加权求和,获得待评估软件代码的健康度,包括:
根据如下公式计算所述健康度:
其中,y为所述健康度,wk为所述各个维度对应的第一权重值,fk为所述各个维度的原始度量值,l为所述维度的总数。
4.根据权利要求2所述的方法,其特征在于,所述软件代码复杂度通过如下方式获得:
获取待评估软件代码的多个代码片段的代码复杂度指标;
对所述多个代码片段的代码复杂度指标进行逐级纵向聚合,得到第一聚合得分;
对所述第一聚合得分横向聚合,得到第二聚合得分,将所述第二聚合得分作为所述软件代码复杂度输出。
5.一种软件代码健康度的检测装置,其特征在于,包括:
原始度量值获取模块,用于获取待评估软件代码的多个维度的原始度量值;
代码健康度计算模块,用于根据各个维度对应的第一权重值,对所述多个维度的原始度量值进行加权求和,获得待评估软件代码的健康度,其中,所述第一权重值为通过机器学习而获得的权重值;
软件代码获取模块,用于获取多个作为训练样本的训练软件代码;
结果标签获取模块,用于获取各个训练软件代码的多个维度的原始度量值作为各个训练样本的训练特征,以及获取各个训练软件代码对应的健康评价结果作为各个训练样本的结果标签;
模型训练模块,用于使用多个训练样本对原始的随机森林模型进行训练,生成训练后的随机森林模型;
权重值获取模块,用于获取训练后的随机森林模型中,与各个训练特征对应的第二权重值作为所述第一权重值。
6.一种电子设备,其特征在于,包括:
存储器,用于存储程序;
处理器,耦合至所述存储器,用于执行所述程序,以用于:
获取待评估软件代码的多个维度的原始度量值;
根据各个维度对应的第一权重值,对所述多个维度的原始度量值进行加权求和,获得待评估软件代码的健康度,其中,所述第一权重值为通过机器学习而获得的权重值,
其中,所述处理器执行所述程序还用于:
获取多个作为训练样本的训练软件代码;
获取各个训练软件代码的多个维度的原始度量值作为各个训练样本的训练特征,以及获取各个训练软件代码对应的健康评价结果作为各个训练样本的结果标签;
使用多个训练样本对原始的随机森林模型进行训练,生成训练后的随机森林模型;
获取训练后的随机森林模型中,与各个训练特征对应的第二权重值作为所述第一权重值。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201810589473.8/1.html,转载请声明来源钻瓜专利网。
- 上一篇:一种应用提测的方法和装置
- 下一篇:软件代码复杂度的检测方法、装置及电子设备