[发明专利]基于集成学习的软件缺陷预测方法、存储介质和计算设备在审
申请号: | 202110192553.1 | 申请日: | 2021-02-20 |
公开(公告)号: | CN112905468A | 公开(公告)日: | 2021-06-04 |
发明(设计)人: | 陆璐;王志涵 | 申请(专利权)人: | 华南理工大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06K9/62;G06N3/04;G06N20/20 |
代理公司: | 广州市华学知识产权代理有限公司 44245 | 代理人: | 郑浦娟 |
地址: | 510640 广*** | 国省代码: | 广东;44 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 集成 学习 软件 缺陷 预测 方法 存储 介质 计算 设备 | ||
1.一种基于集成学习的软件缺陷预测方法,其特征在于,包括以下步骤:
S1、软件模块预处理;
S2、构建基于神经网络的特征提取网络,提取出软件模块的语义特征;
S3、通过挖掘软件缺陷跟踪系统或软件历史仓库,设计可衡量软件质量好坏的各种内在度量元;
S4、对于语义特征和内在度量元这两类软件特征中的各个特征,利用分类算法分别训练得到相应的一个基分类器,每个基分类器都能基于输入的一个特征给出相应的软件模块缺陷预测结果;
S5、基于集成学习融合多个基分类器,获得最终的软件模块预测结果。
2.根据权利要求1所述的软件缺陷预测方法,其特征在于,步骤S1中,软件模块预处理,具体是指:将软件模块转化为抽象语法树,将树中节点编码进行数学化表示,以便神经网络进行特征提取。
3.根据权利要求1所述的软件缺陷预测方法,其特征在于,在步骤S2中,使用卷积自动编码器来构建特征提取网络,步骤S1经过预处理后的数据作为特征提取网络的输入,特征提取网络用来提取软件模块中蕴含的语法和语义信息;
卷积自动编码器包括编码器和解码器,编码器用于将输入压缩为更低维度的中间特征,解码器用于从中间特征还原出输入。
4.根据权利要求3所述的软件缺陷预测方法,其特征在于,编码器包括依次连接的包含卷积核大小为3,卷积核数量为10的卷积层和最大值池化层;解码器包括对应的反池化层和反卷积层;
特征提取网络的损失函数为:
其中,x为输入数据,L为提取到的特征,表示经过解码器重构后的输出,表示矩阵二范数的平方,i为输入数据的序号,n为输入数据的总数;随着网络不断的训练,使用梯度下降法来最小化损失函数。
5.根据权利要求1所述的软件缺陷预测方法,其特征在于,在步骤S3中,对软件代码或者开发过程进行分析来设计各种内在度量元,内在度量元包括反映代码内在复杂度的度量元和与开发过程有关的度量元,其中,反映代码内在复杂度的度量元包括代码行数、Halstead科学度量、McCabe环路复杂度、CK度量元;与开发过程有关的度量元包括某一段时间内的代码修改量、修改次数、缺陷修复次数。
6.根据权利要求1所述的软件缺陷预测方法,其特征在于,步骤S4中,分类算法包括逻辑回归、支持向量机、随机森林。
7.根据权利要求1所述的软件缺陷预测方法,其特征在于,步骤S5中,基于集成学习融合多个基分类器,具体是指:给各个基分类器设置不同的权重,采取投票机制融合多个基分类器,获得最终的预测结果。
8.根据权利要求1所述的软件缺陷预测方法,其特征在于,预测结果包括软件模块的缺陷倾向性、缺陷数目、缺陷类型。
9.一种计算机可读存储介质,存储有程序,其特征在于,所述程序被处理器执行时,实现权利要求1至8中任一项所述的基于集成学习的软件缺陷预测方法。
10.一种计算设备,包括处理器以及用于存储处理器可执行程序的存储器,其特征在于,所述处理器执行存储器存储的程序时,实现权利要求1至8中任一项所述的基于集成学习的软件缺陷预测方法。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于华南理工大学,未经华南理工大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110192553.1/1.html,转载请声明来源钻瓜专利网。