[发明专利]一种基于多语义提取器的软件缺陷预测方法在审
申请号: | 202210336797.7 | 申请日: | 2022-03-31 |
公开(公告)号: | CN114565063A | 公开(公告)日: | 2022-05-31 |
发明(设计)人: | 文万志;张瑞年;陈励文;于梦;高欣欣;程帆;吴佳俊;沈陈强;程实 | 申请(专利权)人: | 南通大学 |
主分类号: | G06K9/62 | 分类号: | G06K9/62;G06F40/30;G06N3/04;G06N3/08 |
代理公司: | 南通一恒专利商标代理事务所(普通合伙) 32553 | 代理人: | 梁金娟 |
地址: | 226019 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 语义 提取 软件 缺陷 预测 方法 | ||
本发明提供一种基于多语义提取器的软件缺陷预测方法,包括如下步骤:S1、构建源项目代码实例向量集VOSPCI;S2、构建目标项目代码实例向量集VOTPCI;S3、构建语义提取器GSEM;S4、组建多种语义列表MS‑list;S5、构建分类方法集SOCM;S6、语义列表分类结果分析;S7、与传统度量元结果比较;S8、构建基于多语义提取器的软件缺陷预测方法DPMSE。本发明提出一种基于多语义提取器的软件缺陷预测方法,可以有效的提取源代码中的语义信息,有助于提高缺陷预测的准确度和达到更好的预测效果。
技术领域
本发明涉及一种基于多语义提取器的软件缺陷预测方法,主要用于提取代码中无法通过传统度量元表现出来的语义信息,从而优化软件缺陷预测模型的性能,进一步提高软件缺陷预测结果。属于软件缺陷预测的技术领域。
背景技术
众多的软件缺陷预测技术已经被研究者提出,开发人员使用这些软件缺陷预测模型找出正在开发的代码模块中的潜在缺陷文件。在之前的软件缺陷预测技术研究中,研究方面主要分为设计更好的度量指标和构建更加精确的分类算法,使用这些指标度量源代码的相关信息,其中度量指标有统计代码行数,提交次数,代码改变行数等。分类算法依据代码的度量元数据训练模型,实现对目标代码的缺陷预测,其中分类算法有朴素贝叶斯、随机森林和逻辑回归等。
程序有完整的语法结构,可以通过抽象语法树得到源代码中的节点,程序中除了语法信息还有隐藏更深的语义信息,在代码补全和缺陷识别研究中,研究者发现使用语义信息比语法信息更加有效,因为代码补全和缺陷识别需要考虑当前代码的上下文环境软件缺陷预测技术。基于此,为了能够提高跨项目软件缺陷预测的结果,本发明提出一种基于多语义提取器的软件缺陷预测方法。
发明内容
本发明要解决的技术问题是提供一种基于多语义提取器的软件缺陷预测方法,通过该方法提取源代码中的语义信息构建源代码有效信息向量,有效的语义数据表示有助于提高缺陷预测的效率,实现更好软件缺陷预测效果。
为解决上述技术问题,本发明的实施例提供一种基于多语义提取器的软件缺陷预测方法,包括如下步骤:
S1、构建源项目代码实例向量集VOSPCI;
S2、构建目标项目代码实例向量集VOTPCI;
S3、构建语义提取器GSEM;
S4、组建多种语义列表MS-list;
S5、构建分类方法集SOCM;
S6、语义列表分类结果分析;
S7、与传统度量元结果比较;
S8、构建基于多语义提取器的软件缺陷预测方法DPMSE。
其中,步骤S1包括如下步骤:
S1.1、读取源项目实例文件名称name_si,在数据集中找到对应源代码code_si;将源代码按照预定的规则分割成一个个的标识token,将之前得到的token合并为一个列表,其中i=1,2,3,…,n;
S1.2、token是一个字符串,将token中的每一个字符转换成ASCII中对应的十进制值,然后采用加法运算规则计算该token中所有token对应的十进制值,将得到的结果作为该token的语义值sv;
S1.3、将实例中的所有token按照步骤S1.2计算得到实例对应的semantic_listi=[sv1,sv2,…,svj],其中j=1,2,3,…,m;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南通大学,未经南通大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210336797.7/2.html,转载请声明来源钻瓜专利网。