论文部分内容阅读
软件技术发展至今已产生大量的方法和模型,但任何检验、验证手段都还不能发现并排除所有的软件缺陷。从第一个软件诞生,就伴随出现软件缺陷的检测和预测技术。检测技术在于发现缺陷,而预测技术则在于预测还未发现的缺陷,现代质量管理则将二者统一起来,通过有效的预测和检测技术来确保软件产品尽可能好的质量。
掌握软件缺陷预测技术,需要了解并掌握多方面的知识。首先,是对缺陷划分的了解和掌握。软件缺陷可从不同角度划分。它可以按照其影响后果和严重程度从低到高来划分,可以按照其来源及所在位置来划分,也可以按照其具体情况来划分,还可以按照软件发布计划和部署使用的时机来划分。其次,是对缺陷预测技术的了解和掌握。在选择缺陷预测技术时,不但要考虑这些技术的预测效率和效果,也要考虑这些技术能否很好地预测缺陷的分布情况。第三,是对缺陷相关经验研究的了解和掌握。经验研究不局限于缺陷的分布问题,还涉及到缺陷产生的原因,缺陷预测的时机,缺陷预测效果,满足期望的预测要求的程度等。第四,是对预测因子和预测模型的了解和掌握。
本文主要贡献:
1.基于缺陷预测技术的综述和分类研究,提出了具体应用场景下缺陷预测技术的评价方法;
针对现有的缺陷预测技术,通过综述研究,结合现有缺陷预测技术的目的、使用场合、优缺点、数据要求、应用范围等,给出了一种评价和选择缺陷预测技术的方法及流程,并就其中如何选择这些缺陷预测技术给出了相应的依据和对比分析,为组织建立和选择合适的缺陷预测技术提供了参考。
2.通过缺陷产生、分布和识别相关的经验性研究,指出了已有缺陷预测技术在预测因子和模型方面的不足;
通过对实际软件项目中的缺陷数据的整理与分析,提出了关于缺陷产生、缺陷分布以及缺陷识别等六个主要问题,探讨并分析了对这几个问题的研究结果,并与国际同行关于此类研究的经验结果进行了对比分析,指出了现有缺陷预测技术存在的主要不足。
3.基于以上对比分析和经验性研究的结论,提出了一种基于系统动力学技术的缺陷预测模型SdDirM;
通过缺陷预测技术综述、缺陷预测技术选择和评价以及关于缺陷产生、缺陷分布、缺陷识别以及缺陷密度的经验研究,总结了现有的缺陷预测技术在解决实际问题上存在的一些不足,提出了一种基于系统动力学技术的缺陷预测模型SdDirM。该模型的预测因子不仅考虑了软件复杂度的定性要求和软件规模定量化数据,还考虑了影响缺陷引入、检测、排除过程的诸多因素,并依据实际项目的数据和预测结果以及与主流模型的对比分析说明了SdDirM模型确实为我们组织更好的选择。