基于时间序列的软件可靠性建模技术研究(2)_毕业论文

毕业论文移动版

毕业论文 > 计算机论文 >

基于时间序列的软件可靠性建模技术研究(2)


由于计算机的横空出世,彻底颠覆了现在战争的对抗形态,这也就使得软件可靠性同样是军事装备上需要迫切解决的问题。海湾战争期间,难以想象一个导弹上跟踪软件微小的舍入误差却造成多名英国士兵的死亡。   
当然,软件故障导致的损失不仅局限于航空以及军事领域,可以毫不夸张地说,它已经渗透到生活的方方面面。若是电话无法接通,飞机不能正常起飞,大量的商用软件错误频发,人们的生产生活必然受到巨大影响。对于软件开发人员来说,若是编程软件故障无数,如何进行高效地编程?对于公司白领来说,若是应用软件经常崩溃,又如何完成日常作业?
另一方面,在软件行业竞争如此激烈的今天,错误较少甚至零错误的软件必然会赢得广泛的市场占有率。因此,为了保证高效的生产力,提高软件可靠性是大势所趋。
本文首先介绍软件可靠性及其建模的一些基本概念,随后列举几种基于时间序列的软件可靠性增长模型,并分析他们的优缺点。最后着重介绍基于EM算法的软件可靠性预测模型,以及基于Matlab的实现过程,通过所做的实验研究分析说明在软件可靠性建模领域中EM算法的可行性以及它的局限性。
2  软件可靠性建模
2.1  软件可靠性
在决定软件质量的因素中,无论是对于以安全为首的系统或是商务系统,软件可靠性都被认为是最重要的因素。1983年美国IEEE计算机协会对“软件可靠性”正式做出如下定义[15]:
在既定的时间空间和软硬件条件限制下,系统不由软件引起宕机的概率,它既是软件中固有错误的函数,也是系统输入的函数和系统使用的函数。
(1)规定的条件
     软件所处的系统环境、负载大小与执行流程构成了软件可靠性的规定的条件。软件运行一次所需要的输入数据构成的多文向量的集合称为输入空间。输入数据经过软件运行处理,得到一组由输出数据构成的多文向量的集合称为输出空间。由于输入空间元素数量非常庞大,软件运行过程中每个元素被选用的概率分布构成软件的运行剖面[2]。软件不同的运行状态对应不同的运行剖面。
(2)规定的时间
     软件可靠性与规定的时间有关。通常,软件测试和运行中主要使用三种CPU时间[1]:日历时间、时钟时间和执行时间。经验表明,CPU时间是软件可靠性度量的最佳标准。
(3)规定的功能
 规定的功能是指“软件所必须具备的提供某特定服务的功能”。
    软件可靠性评测标准脱胎于传统工业的固件可靠性,其失效都表现随机性和概率性特点。但两者也存在显著差别,例如软件不会老化,可靠性函数不随时间线性下降,而硬件可靠性会随时间的增加而降低。而且软件可靠性能够在软件测试和运行过程中,随着错误的不断检出和排除而得以不断增长。另外,改变运行剖面、错误地修改、新错误的引入都能降低软件可靠性。
2.2  软件可靠性建模
2.2.1  软件可靠性建模基本思想
软件可靠性建模旨用统计学方法结合智能计算技术,在观测软件失效样本数据的基础上得出软件可靠性的估计值。
2.2.2  软件可靠性建模研究概况
软件可靠性的测量方法标志着软件可靠性和它的发展。世界上第一个软件可靠性模型问世于1972年,今天世界上现存的模型已经超过了100种并且每年都会新增很多模型。模型的选择对于软件可靠性增长的预测是至关重要的因素,因为预测的输入数据、公布的结果数据以及资源分配的决策会受预测正确性的影响。现有模型与实际软件开发过程存在着较大差异,适用于某些故障数据集合的模型又不适用于其他故障数据集合;况且,有些模型本身就是针对特定的软件过程开发的,并不能适用于软件开发的整个生命周期。 (责任编辑:qin)