The invention discloses a data filtering and data sampling prediction method based on cross project design defects, data filtering and data processing strategy reasonable balance, using hierarchical clustering algorithm and the selected real project data module similar cross project historical data software module, the project of software defect prediction model is not avoided influence of cross project historical data of software modules, and the use of over sampling method to increase software module data defects and get a new data set of classification of relative balance, the effects of training data to cross project software defect prediction model to avoid the imbalance in the. The technical scheme of the invention has the characteristics of simple and high efficiency, and can better improve the performance of the cross project software defect prediction model.
【技术实现步骤摘要】
一种基于数据筛选和数据过采样的跨项目缺陷预测方法
本专利技术属于软件缺陷预测
,特别是涉及一种基于数据筛选和数据过采样的跨项目缺陷预测方法。
技术介绍
(1)软件缺陷预测技术软件已经成为影响国民经济、军事、政治乃至社会生活的重要因素。高可靠和复杂的软件系统依赖于其采用的软件的可靠性。软件的缺陷是导致相关系统出错、失效、崩溃甚至机毁人亡的潜在根源。所谓缺陷,到目前为止,学术界,产业界有很多相关的术语和定义,比如故障、缺陷、bug、错误、失误、失效、失败等。根据ISO9000对缺陷的定义为:满足与预期或者规定用途有关的要求,缺陷是软件中已经存在的一个部分,可以通过修改软件而消除。然而软件技术发展至今,任何检验、验证手段都不可能发现并排除所有的缺陷,软件作为一种无形的产物,虽然不会磨损用坏,却随时可能因为我们不易查知的原因出现故障甚至失效。事实上,从第一个软件诞生,就伴随出现软件缺陷的检测和预测技术。检测技术在于发现缺陷,而预测技术则在于预测还未发现的缺陷。20世纪70年代,出现了利用统计学习技术,根据历史数据以及已经发现的缺陷等软件度量数据预测软件系统的缺陷数目 ...
【技术保护点】
一种基于数据筛选和数据过采样的跨项目缺陷预测方法,其特征在于,包括以下步骤:步骤1:抽取跨项目历史软件模块,标注所有的跨项目历史软件模块是否有缺陷,标记有缺陷的历史软件模块的类标号为Y,标记无缺陷的历史软件模块的类标号为N;步骤2:提取跨项目历史软件模块的度量属性;步骤3:抽取本项目待预测软件模块,标记为“?”;步骤4:提取本项目待预测软件模块的度量属性;步骤5:对所有跨项目历史软件模块数据和所有本项目待预测软件模块数据执行凝聚型层次聚类AGENES算法,获得筛选后的跨项目历史软件模块数据;步骤6:对筛选后的跨项目历史软件模块数据进行过采样,使跨项目历史软件模块数据平衡;步 ...
【技术特征摘要】
1.一种基于数据筛选和数据过采样的跨项目缺陷预测方法,其特征在于,包括以下步骤:步骤1:抽取跨项目历史软件模块,标注所有的跨项目历史软件模块是否有缺陷,标记有缺陷的历史软件模块的类标号为Y,标记无缺陷的历史软件模块的类标号为N;步骤2:提取跨项目历史软件模块的度量属性;步骤3:抽取本项目待预测软件模块,标记为“?”;步骤4:提取本项目待预测软件模块的度量属性;步骤5:对所有跨项目历史软件模块数据和所有本项目待预测软件模块数据执行凝聚型层次聚类AGENES算法,获得筛选后的跨项目历史软件模块数据;步骤6:对筛选后的跨项目历史软件模块数据进行过采样,使跨项目历史软件模块数据平衡;步骤7:令通过步骤5产生的筛选后的跨项目历史软件模块数据和通过步骤6产生的新合成的软件模块数据为训练集D,基于训练集D训练出朴素贝叶斯预测模型;步骤8:用训练得到的朴素贝叶斯预测模型预测本项目待预测软件模块X。2.根据权利要求1所述的基于数据筛选和数据过采样的跨项目缺陷预测方法,其特征在于:步骤1中,历史软件模块粒度根据实际应用场景,设置为文件、包、类或函数。3.根据权利要求1所述的基于数据筛选和数据过采样的跨项目缺陷预测方法,其特征在于:步骤2中,提取了19个度量属性,分别为加权方法数wmc、继承树深度dit、孩子数noc、对象类之间的耦合度cbo、类的响应rfc、内聚缺乏度lcom、传入耦合ca、传出耦合ce、公开方法数npm、代码行数loc、数据访问度量dam、聚合度量moa、功能抽象度量mfa、方法间的内聚度cam、继承耦合ic、方法间耦合cbm、平均方法复杂度amc、最大McCabe环形复杂度max_cc、平均McCabe环形复杂度avg_cc。4.根据权利要求1所述的基于数据筛选和数据过采样的跨项目缺陷预测方法,其特征在于,步骤5的具体实现包括以下子步骤:步骤5.1:设置终止簇数目,将所有跨项目历史软件模块数据和所有本项目待预测软件模块数据中的每一个软件模块单独当作为一个簇;步骤5.2:循环找到欧式距离最小的两个簇,合并成新簇,直到簇数达到终止簇数目的预设值;步骤5.3:选择包含本项目待预测软件模块的簇中的所有跨项目历史软件模块数据,即为筛选后的跨项目历史软件模块数据。5.根据权利要求1所述的基于数据筛选和数据过采样的跨项目缺陷预测方法,其特...
【专利技术属性】
技术研发人员:余啸,刘进,伍蔓,崔晓晖,张建升,井溢洋,
申请(专利权)人:武汉大学,
类型:发明
国别省市:湖北,42
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。