论文部分内容阅读
随着人类社会从工业化社会向信息化社会迈进,计算机系统的可靠性问题变得越来越重要。软件作为计算机的灵魂,作为一种产品,其质量及可靠性直接影响计算机系统的可靠性。由此产生了计算机软件可靠性研究领域,并成为计算机科学的一个重要分支。软件可靠性是指在一段特定的自然单元或时间间隔内,软件无失效运行的概率。人们利用软件可靠性增长模型对软件的可靠性特征做出定量的预计或评估。 本文对现有的软件可靠性增长模型做了深入的研究与探讨,发现这些模型均是对软件可靠性问题做出某些假设后而得出的,每一个模型都有自己的假设条件,这些假设是软件可靠性模型建立的主要依据,模型的成功与否,与模型选取的假设有着很大的关系。在实际应用中,有些假设难以满足,从而限制了模型的应用,甚至在某些情况下会得到与实际相反或不合理的模型参数。模型的参数估计大多通过极大似然法方法或最小二乘方法得到,计算比较繁琐。另外,随着测试数据的增多,已经建立的模型就不再能很好的预测软件可靠性。如何改变这一现状,是对软件可靠性模型进行深入研究的重要课题。 本文首先介绍时间序列的一些基本概念,逐步研究时间序列的基本特征及应用。从软件可靠性实测数据出发,发现软件测试数据符合时间序列的基本特征,进而探讨基于时间序列建立软件可靠性增长模型的可行性。为了验证软件可靠性时间序列建模的合理性,选取一个著名的软件可靠性增长模型--Goel-Okumoto模型,把它转换成基于时间序列的软件可靠性增长模型,并用实验数据验证了模型的有效性。 然后本文针对软件可靠性时间序列线性建模有关问题进行分析。分析之前首先介绍一些基本概念,然后说明用时间序列自回归模型建立软件可靠性增长模型以及参数估计采用指数加权最小二乘方法的理由。在这种方法里,模型的阶的确定是一个很重要的问题,随后讨论了模型定阶的方法,提出了基于时间序列的软件可靠性模型的定阶方式以及遗忘因子的选取方法。并用实测数据进行了验证。 在前面研究的基础上提出了两类软件可靠性时间序列线性模型,还建立了一种基于时间序列的软件可靠性多层增长模型。这种多层模型首先对失效数据进行平滑预处理,再进行建模,处理后的数据更能体现失效数据的本质。在对实测的软件可靠性数据进行建模分析并进行预测后,对软件可靠性的评估采用模糊评估,也就是将软件可靠性划分为若干个等级用模糊语言变量来描述,确定软件可靠性对于各语言变量的隶属度,指出所在的模糊等级。模糊评价使软件可靠性评价更为合理。 为了更准确地对软件进行评测,在原有研究的基础上考虑利用Kalman滤波器去除因人员环境等因素引起的噪声,提出了一个基于Kalman滤波器的软件可靠性增长模型。首先,把新建立的软件可靠性时间序列模型转换成状态空间模型,然后应用Kalman滤波器过滤噪声,使滤波过程和参数估计过程交替进行,进一步提高了模型评测的准确性。数据试验的结果表明,新提出的基于Kalman滤波器的软件可靠性时间序列增长模型在一些失效数据集上的拟合效果很好。 最后针对软件可靠性时间序列非线性建模展开研究。在基于实测数据进行时间序列建模时,发现非线性是普遍存在的,线性模型只是对非线性模型的一种简化和近似。而非线性建模要比线性建模复杂,方法不唯一,而且还没有统一的设计模式。所以根据需要提出了两种非线性模型,给出了相应的算法,并通过实测数据验证了新方法的有效性。在软件可靠性的评估过程中也运用了模糊理论,提高了软件可靠性评估的准确度。