论文部分内容阅读
软件缺陷数量是衡量软件质量好坏的一项重要指标,尽早地发现缺陷可以避免在软件开发后期为修改、弥补缺陷造成资源的浪费,保证软件的正常交付。软件缺陷预测模型可用于软件开发初期对软件缺陷的分布或缺陷数量进行预测,使软件开发人员能够将有限的资源集中于缺陷高发模块,更有效地发现和排除缺陷,满足用户需求,对软件可靠性的提高和软件质量的保证有着非常重要的意义。软件缺陷预测技术自1992年由Briand提出以来,就在软件工程领域受到了极大关注,到目前为止,已有无数学者对此展开了研究,并提出了多种软件缺陷预测的模型。基于BP人工神经网络的软件缺陷预测模型是其中应用较广且效果最为明显的一种,它利用软件模块的属性值和以往缺陷数据进行分析,对软件模块有无缺陷或缺陷数量做出预测。尽管该模型已取得了良好的预测效果,但由于BP算法本身存在一些问题,导致缺陷预测的准确度仍不够理想。针对上述问题,本文在研究传统BP神经网络建立的软件缺陷预测模型的基础上,提出了基于改进后SAPSO-BP网络的软件缺陷预测模型,以期望进一步提高软件缺陷预测能力。本文的主要工作包括以下几个方面:第一,对软件缺陷及软件缺陷预测技术的相关理论进行研究,包括描述缺陷的度量属性,软件缺陷预测模型的建立步骤以及常见缺陷预测模型的分析比较等方面,为研究基于SAPSO-BP网络的缺陷预测模型提供有价值的参考。第二,深入研究基于BP网络的软件缺陷预测模型及该模型目前存在的不足。传统模型由于采用的BP算法在调整权值阈值的过程中采用梯度下降法,使算法存在收敛速度慢,容易陷入局部最优的问题,进而导致预测结果不够精确。第三,针对传统模型的不足,提出基于SAPSO-BP网络的软件缺陷预测模型。为解决传统BP算法存在的问题,本文首先采用粒子群算法对BP网络的参数进行初始化,然后利用模拟退火算法在搜索全局最优解上的突出优势来修正网络的权值和阈值,最后用训练好的网络模型进行缺陷预测。第四,基于上述工作,利用NASA网站上公布的MDP项目的数据集,采用传统BP算法和改进后的SAPSO-BP算法建立的软件缺陷预测模型对软件项目进行缺陷预测,实验结果表明基于SAPSO-BP神经网络的软件缺陷预测模型具有更好的缺陷预测能力。