论文部分内容阅读
软件可靠性是软件质量中最重要的属性之一。随着现代信息技术的发展,软件在人类社会生活中应用和需要实现的功能越来越多。软件规模越来越大,软件的结构也越来越复杂,特别是现在开发的软件密集型服务,例如云计算和大数据应用等。在这种情况下,保证发布高质量的软件产品更是一件非常困难的事情。而实际生活中的用户则希望计算机中使用的软件可以无故障的永远运行下去。因此,软件可靠性成为了人们关心计算机软件能够安全和有效地运行的重要问题之一。软件可靠性增长模型是一种实现软件质量管理的重要工具。现代开发的软件可靠性增长模型(Software Reliability Growth Models,SRGMs)中的大多数都假设故障检测过程服从非齐次泊松过程(Non-Homogeneous Poisson Process,NHPP),其中大多数NHPP类模型又假设为完美调试软件可靠性增长模型。由于现代软件开发环境的复杂性和要求实现的功能越来越多,因此,当检测到的故障被去除时,很可能引进新的故障。当引进的故障的数量和影响不能被忽略时,研究不完美调试现象对建立高质量的软件可靠性增长模型具有重要的实际意义。已有一些研究者开始研究故障引进的相关问题,通常假设故障引进率为常量。事实上,针对故障引进的变化规律构建相应的软件可靠性增长模型可以更有效的评估软件的可靠性和更准确的预测软件失效行为。本文除了考虑建立NHPP类的不完美调试的软件可靠性增长模型以外,我们还考虑用随机微分方程(Stochastic Differential Equation,SDE)来建立相应的不完美调试的软件可靠性增长模型。这是因为现在开发的软件密集型服务的软件系统规模都比较大,每次检测出的故障数量和最初软件中存在的故障数量相比又比较小。在这种情况下,可以把故障检测的过程看作是有连续状态变化的随机过程。本文深入地研究了在软件调试过程中,在故障引进的情况下,建立相应的软件可靠性增长模型。并在此基础上,讨论了软件最优发布问题和优化选择软件可靠性模型的问题。本文的主要研究工作可概括为以下几个方面:一、在软件调试过程中,调试者在去除故障时,有一个学习的过程。即随着软件调试者排错数量的增加,软件调试者的经验越来越丰富,并且对调试的软件有越来越深刻的理解。因此,软件调试者引进故障的数量在整个测试时间里有先增后减的变化,即故障引进率随测试时间有先增后减的变化。考虑到在软件调试过程中这种情况,提出了一个基于Log-logistic分布引进故障的软件可靠性增长模型。同时,用相关的故障数据集和模型比较标准对提出的模型和其它的软件可靠性增长模型的性能进行了相应评估。实验结果表明提出的模型有很好的拟合故障数据的能力和准确的预测未来软件失效发生的能力。二、由于在软件调试过程,故障引进率受到多种因素的影响,故障引进率会随着测试时间的变化而发生不规则变化。考虑到故障引进率的这种变化,可以考虑用布朗运动来模拟故障引进率不规则变化的过程。故障引进率不规则变化的现象与实际故障引进过程是一致的。因此,本文提出了一种基于故障引进率不规则变化的软件可靠性增长模型,并用相应的故障数据集进行了相应的评估。实验结果指出提出的模型在同其它多种完美和不完美可靠性增长模型相比较时,有更好的拟合故障数据和更准确的预测未来软件失效发生能力。三、在软件调试过程中,故障引进可能表现为由多种规律和特征组成的变化过程。也就是说,故障引进的过程为有规律不稳定变化的过程,故障累计引进的数量为非线性增长。考虑到故障引进的这一特点,可以考虑建立非线性的故障内容(总数)函数。虽然软件在发布之前,已经进行了大量的和充分的测试和调试,但是在用户使用软件时,仍可能发现故障,而在去除故障时仍有可能引进新的故障。也就是说,测试后的软件只能保证在现在的环境和条件下软件运行不发生故障,但是不能确定以后在用户使用的环境中不发生故障。而且,发生故障时,也不能保证是完美去除故障。因此,建立随测试时间无限引进故障的不完美调试软件可靠性增长模型具有一定的实际意义。在本文中,提出了一个基于故障引进不稳定变化的软件可靠性增长模型,它不但考虑故障引进不稳定变化过程,而且也考虑了无限引进故障的情况。实验结果显示提出的模型和其它软件可靠性模型相比,有更好的拟合能力和更准确预测软件中存在故障数量的能力。另外,软件最优发布时间问题也是软件可靠性增长模型研究中一个重要问题。适时的发布软件产品,不但能够很好的为企业抓住机遇,获得盈利创造良好的条件,而且,也能够为企业降低开发成本做出重要贡献。因此,我们也给出了相应的用不完美调试模型来确定软件最优发布时间的方法。四、一般来说,考虑用NHPP类来建立相应的软件可靠性增长模型是广泛使用的方法。但是由于软件测试的复杂性,除了故障引进现象发生外,故障检测率也会随着测试时间的变化发生不规则波动。针对这一现象,在本文中,考虑用随机微分方程来建立相应的不完美调试软件可靠性增长模型。实验结果表明从随机微分方程中推导出的不完美调试的软件可靠性增长模型同其它软件可靠性增长模型相比,有更好的拟合故障数据能力和预测未来软件失效发生的能力。