[发明专利]一种基于加权软件网络的工作量感知缺陷预测方法有效
申请号: | 202110323054.1 | 申请日: | 2021-03-26 |
公开(公告)号: | CN112711543B | 公开(公告)日: | 2021-06-08 |
发明(设计)人: | 宫丽娜;周宇;宫宜辉 | 申请(专利权)人: | 南京航空航天大学 |
主分类号: | G06F11/36 | 分类号: | G06F11/36 |
代理公司: | 青岛锦佳专利代理事务所(普通合伙) 37283 | 代理人: | 朱玉建 |
地址: | 211106 江*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 加权 软件 网络 工作量 感知 缺陷 预测 方法 | ||
1.一种基于加权软件网络的工作量感知缺陷预测方法,其特征在于,包括如下步骤:
I. 数据收集与融合;
收集软件系统数据以及缺陷跟踪系统的缺陷报告;其中,收集的软件系统数据包括版本控制仓库中的源代码、代码提交以及版本信息数据;
在代码提交和缺陷报告之间建立连接,实现代码提交及缺陷报告数据的融合;
II. 缺陷模块标记;
II.1. 提取代码提交及缺陷报告的文本相似度特征、人员一致性特征以及时间戳特征;
基于提取的上述三类特征以及步骤I已建立的代码提交和缺陷报告的连接,发现代码提交与缺陷报告的缺失连接,从而确定修复缺陷的代码提交;
II.2. 基于修复缺陷的代码提交,识别出引入缺陷的代码提交;
II.3. 基于步骤II.1修复缺陷的代码提交和步骤II.2引入缺陷的代码提交,结合版本控制仓库中的版本信息,将各个软件模块进行标记,得到各个软件模块的缺陷标签数据;
III. 构建加权软件网络图;
III.1. 提取并聚合软件系统每个软件模块源代码中的注释,得到每个软件模块的文档信息,同时根据代码提交的提交者信息及修改文件信息,得到每个软件模块的开发者信息;
建立软件模块间的数据依赖及调用依赖关联,同时,利用软件模块间的同一开发者信息建立软件模块间协同开发者关联;
如果任意两个软件模块间存在数据依赖、调用依赖或协同开发者关联的一种,则表明两个软件模块间存在关联,构建如下结构的软件网络图,其中:
每个软件模块作为软件网络图的节点,两个关联的软件模块表示的节点之间建立一条边;
III.2. 根据每个软件模块的文档信息以及开发者信息,计算软件网络图中每条边所连接的两个软件模块之间的关联强度,将关联强度值赋值为软件网络图中该条边的权值;
对同一软件模块依赖的各个软件模块的边的权值进行归一化处理,得到加权软件网络图;
所述步骤III.2中,软件模块之间关联强度计算公式如下:
其中,
|
|
IV. 基于图嵌入技术,得到加权软件网络图的软件网络度量元表示;
IV.1. 将步骤III中的加权软件网络图转换为概率共现矩阵,将概率共现矩阵转换为点式互信息矩阵,对得到的点式互信息矩阵的负值进行调整,得到正点互信息矩阵;
IV.2. 将正点互信息矩阵的每一行当成是一个节点的输入,训练自动编码模型,自主学习加权软件网络图中丰富的模块间结构语义信息,得到加权软件网络图的网络度量元表示;
V. 构建工作量感知缺陷预测方法;
V.1. 基于版本控制仓库中的源代码和代码提交信息,提取每个软件模块的代码度量元及过程度量元,组合步骤IV得到的网络度量元,构成缺陷数据集的特征数据;
将所述特征数据与步骤II中得到的缺陷标签数据组合,共同构成软件缺陷数据集;
V.2. 将缺陷数据集中每种类型的度量元以及至少两种以上类型度量元的组合,分别组成不同的训练集,并用这些训练集训练分类器,形成基学习器;
V.3. 采用优化算法以优化最少工作量发现最多的缺陷为目标,优化基学习器的组合,形成工作量感知缺陷预测方法,得到每个软件模块发生缺陷的概率,进而给出每个软件模块的缺陷检测顺序。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京航空航天大学,未经南京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110323054.1/1.html,转载请声明来源钻瓜专利网。