[发明专利]一种面向开源软件缺陷特征深度学习的软件缺陷预测方法有效
申请号: | 201910907932.7 | 申请日: | 2019-09-25 |
公开(公告)号: | CN110597735B | 公开(公告)日: | 2021-03-05 |
发明(设计)人: | 艾骏;王飞;许嘉熙;郭皓然;邹卓良;施韬 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36;G06F8/41;G06N3/04;G06N3/08;G06K9/62 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 祗志洁 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | 本发明提供了一种面向开源软件缺陷特征深度学习的软件缺陷预测方法,属于软件工程技术领域。本发明包括:采集开源软件缺陷信息,构建软件缺陷数据库,将源代码生成抽象语法树;利用社团检测算法将抽象语法树进行剪枝得到缺陷子树,然后结合修复描述和项目基础信息、源代码来建立缺陷子树的信息语料库,从中提取主题单词并转化为向量表示,作为缺陷子树中节点的属性;最后建立基于图分类的卷积神经网络的软件缺陷预测模型,将缺陷子树表示为邻接矩阵和属性矩阵作为模型的输入训练卷积神经网络,识别待预测软件模块源代码是否具有缺陷倾向性。本发明利用深度学习的方法直接从结构化的软件代码中提取缺陷深度特征,能够取得更好的缺陷识别效果。 | ||
搜索关键词: | 一种 面向 软件 缺陷 特征 深度 学习 预测 方法 | ||
【主权项】:
1.一种面向开源软件缺陷特征深度学习的软件缺陷预测方法,其特征在于,包括:/n步骤1,采集开源软件缺陷信息,构建软件缺陷数据库,存储的每条缺陷信息包括软件模块在软件修复前和修复后两个版本的源代码,以及文本类型的修复描述和项目基础信息;/n步骤2,依次取出软件缺陷数据库中每个缺陷对应的软件模块的修复前和修复后的两个版本的源代码,对应生成两个抽象语法树,对比两个抽象语法树结构,得到其中的差异节点,并为两个抽象语法树的各节点添加节点是否发生修改的属性;/n步骤3,利用社团检测算法对每个缺陷对应的两个抽象语法树进行社团划分,将所有包含差异节点的社团进行最小化连接,得到包含缺陷信息的缺陷子树;对每个缺陷,利用相同社团检测算法得到软件修复前和修复后的缺陷子树;/n步骤4,对每个缺陷子树,由对应的修复描述、项目基础信息以及缺陷子树的语义信息获取缺陷子树的信息语料库,利用主题建模技术从信息语料库中获取缺陷子树的主题单词,利用文本的分布式表示方法将主题单词转化为一维向量数据,并作为缺陷子树中节点的属性;/n步骤5,建立基于图分类的卷积神经网络的软件缺陷预测模型,将步骤四中缺陷子树表示为邻接矩阵和属性矩阵作为模型的输入训练卷积神经网络,识别待预测软件模块源代码是否具有缺陷倾向性;/n设缺陷子树中有N个节点,则邻接矩阵A为N×N的矩阵,若两个节点间存在连接则在邻接矩阵中对应的元素为1,否则为0;设节点属性数量为D,则属性矩阵X是一个N×D的矩阵,节点的属性包括:节点是否发生修改,对应主题单词的一维向量中的各元素。/n
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201910907932.7/,转载请声明来源钻瓜专利网。