当前位置: 首页 > 专利查询>武汉大学专利>正文

一种基于半监督聚类数据筛选的跨项目缺陷预测方法技术

技术编号:16152826 阅读:84 留言:0更新日期:2017-09-06 18:15
本发明专利技术涉及一种基于半监督聚类数据筛选的跨项目缺陷预测方法,该方法利用半监督聚类算法对软件模块数据进行聚类发现子簇;随后,收集所有生成的簇中与本项目历史软件模块类标号相同的所有的跨项目历史软件模块即为筛选后的跨项目软件模块数据;最后基于筛选后的跨项目软件模块数据和所有的本项目历史软件模块数据利用朴素贝叶斯分类算法建立跨项目缺陷预测模型,预测待预测的本项目软件模块数据。本发明专利技术能够使跨项目软件预测模型避免受到不相关跨项目软件模块数据的影响,充分利用跨项目历史软件模块信息和本项目历史软件模块信息,增强了跨项目软件缺陷预测模型的性能。

【技术实现步骤摘要】
一种基于半监督聚类数据筛选的跨项目缺陷预测方法
本专利技术属于软件缺陷预测
,特别是涉及一种基于半监督聚类数据筛选的跨项目缺陷预测方法。
技术介绍
(1)软件缺陷预测技术软件已经成为影响国民经济、军事、政治乃至社会生活的重要因素。高可靠和复杂的软件系统依赖于其采用的软件的可靠性。软件的缺陷是导致相关系统出错、失效、崩溃甚至机毁人亡的潜在根源。所谓缺陷,到目前为止,学术界,产业界有很多相关的术语和定义,比如故障、缺陷、bug、错误、失误、失效、失败等。根据ISO9000对缺陷的定义为:满足与预期或者规定用途有关的要求,缺陷是软件中已经存在的一个部分,可以通过修改软件而消除。然而软件技术发展至今,任何检验、验证手段都不可能发现并排除所有的缺陷,软件作为一种无形的产物,虽然不会磨损用坏,却随时可能因为我们不易查知的原因出现故障甚至失效。事实上,从第一个软件诞生,就伴随出现软件缺陷的检测和预测技术。检测技术在于发现缺陷,而预测技术则在于预测还未发现的缺陷。20世纪70年代,出现了利用统计学习技术,根据历史数据以及已经发现的缺陷等软件度量数据预测软件系统的缺陷数目及类型。缺陷预测技术的目本文档来自技高网...
一种基于半监督聚类数据筛选的跨项目缺陷预测方法

【技术保护点】
一种基于半监督聚类数据筛选的跨项目缺陷预测方法,其特征是,包括以下步骤:步骤1,挖掘本项目软件历史仓库,从中抽取出有用的软件模块;软件模块粒度可根据实际应用场景,可设置为文件、包、类或函数等;标注所有的本项目软件模块是否有缺陷,标记有缺陷的软件模块的类标号为Y,标记无缺陷的软件模块的类标号为N;步骤2,抽取本项目现有的待预测的软件模块;这些待预测的本项目软件模块标记为“?”;步骤3,提取本项目软件模块的度量属性,提取了20个度量属性:加权方法数(wmc),继承树深度(dit),孩子数(noc),对象类之间的耦合度(cbo),类的响应(rfc),内聚缺乏度(lcom),传入耦合(ca),传出耦合...

【技术特征摘要】
1.一种基于半监督聚类数据筛选的跨项目缺陷预测方法,其特征是,包括以下步骤:步骤1,挖掘本项目软件历史仓库,从中抽取出有用的软件模块;软件模块粒度可根据实际应用场景,可设置为文件、包、类或函数等;标注所有的本项目软件模块是否有缺陷,标记有缺陷的软件模块的类标号为Y,标记无缺陷的软件模块的类标号为N;步骤2,抽取本项目现有的待预测的软件模块;这些待预测的本项目软件模块标记为“?”;步骤3,提取本项目软件模块的度量属性,提取了20个度量属性:加权方法数(wmc),继承树深度(dit),孩子数(noc),对象类之间的耦合度(cbo),类的响应(rfc),内聚缺乏度(lcom),传入耦合(ca),传出耦合(ce),公开方法数(npm),代码行数(loc),数据访问度量(dam),聚合度量(moa),功能抽象度量(mfa),方法间的内聚度(cam),继承耦合(ic),方法间耦合(cbm),平均方法复杂度(amc),最大McCabe环形复杂度(max_cc),平均McCabe环形复杂度(avg_cc);步骤4,由于在一个项目刚进行开发时,本项目历史软件模块数据很少,不能训练本项目缺陷预测模型;因此需要借用跨项目历史软件模块数据;从跨项目软件历史仓库中抽取有用的软件模块,将有缺陷的软件模块标记为Y,无缺陷的软件模块标记为N;步骤5,提取跨项目所有软件模块与步骤3中相同的20个度量属性;步骤6,对所有跨项目软件模块数据和所有本项目软件模块数据执行半监督聚类,获得筛选后的跨项目软件模块数据;执行以下子步骤,步骤6.1,标记所有跨项目软件模块和所有本项目软件模块未为访问,随机选择一个未被访问的已被标记为Y或N的本项目历史软件模块,将其边界权值赋为0,并将其余未被访问所有本项目软件模块和所有跨项目软件模块的边界权值赋为无穷;边界权值定义了两个实例密度相连的最小半径值;步骤6.2,循环选择未被访问的已被标记为Y或N的本项目历史软件模块创建簇,并逐渐扩充簇,直至所有的已被标记为Y或N的本项目历史软件模块均有其所属簇;每次循环中,选择边界权值最小的软件模块加入簇,一旦在当前簇中出现类标号不同的本项目历史软件模块,表明两个需要被分离的簇即将被连接,此时停...

【专利技术属性】
技术研发人员:余啸刘进安格格崔晓辉夏臻井溢洋
申请(专利权)人:武汉大学
类型:发明
国别省市:湖北,42

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1