当前位置:文档之家› 软件可靠性的评价准则

软件可靠性的评价准则

软件可靠性的评价准则迄今为止,尚无一个软件可靠性模型对软件的不同特性和不同使用环境都有效。

已公开发表的100余种软件可靠性模型,表达形式不同,适应性各异,与实际的软件开发过程有较大差异。

而且,新模型还在不断发表。

因此,在进行软件可靠性预计、分析、分配、评价和设计之前,对软件可靠性模型进行评价及选择与软件项目相符或相近的模型非常重要。

通过建立有效的评价准则,在考虑它们与各种软件的关系的基础上,对拟评价的可靠性模型就有效性、适应性和模型能力等进行评价,判定它们的价值,比较它们的优劣,然后选择有效的软件可靠性模型。

另一方面,在可接受的模型之间无法做出明确的选择时,可根据模型的使用环境等,在模型评价准则的基础上,进行模型择优。

当然,软件可靠性模型的评价不仅依赖于模型的应用,还依赖于理论的支持和丰富的、高质量可靠性数据的支持。

软件可靠性模型的评价最早始于1984年Iannino、Musa、Okumoto和Littlewood所提出的原则。

根据这一原则,结合后人的工作,形成了基本的软件可靠性评价准则集。

它们是软件可靠性模型比较、选择和应用的基础。

准则一:模型预测有效软件可靠性模型最重要的评价指标是模型预测的有效性。

它根据软件现在和过去的故障行为,用模型预测软件将来的故障行为和可靠性水平。

它主要通过能有效描述软件故障随机过程特性的故障数方式对模型进行描述与评价。

基于软件故障时间特性的随机过程也是一种常用的方法,而且这两种方法相互重叠。

要确定软件可靠性模型预测的有效性,首先要比较模型预测质量。

这种比较通常通过相对误差法、偏值、U图法、Y图法、趋势法等方法进行。

故障数度量是一种在工程上被广泛应用的方法。

此外,还可以通过比较不同数据集合所做出的中位线图形来评价模型预测的有效性。

如果一个模型产生的曲线最接近于0,则该模型是最优的。

而且,这种有效性测定方法有效地克服了规范化图形评价与具体软件项目之间的联系,保证了它的独立性。

用给定可靠性数据对软件可靠性模型进行比较时,必须考察拟合模型与观察数据的一致性和符合性。

当然,根据拟合模型进行采样,是否可以获得足够的观察数据非常重要。

拟合优度检验是一种系统地表达并证明观察数据和拟合模型之间全局符合性的方法,使用最广泛的是x2检验。

1.准确性软件可靠性模型预测的准确性可用前序似然函数来测定。

设观察到的失效数据对应于软件相继失效之间的时间序列t1,t2,..,ti-1,并用这些数据来预测软件在未来可能的Ti,即希望得到Ti的真实概率密度函数Fi(t)的最优估计值。

假设以t1,t2,...,ti-1为基础预测Ti的分布Fi(t)的概率密度函数@@42D11000.GIF;表达式1@@对Ti+1,Ti+2,...,Ti+n的这种向前一步预测,即进行了n+1次预测之后的前序似然函数为@@42D11001.GIF;表达式2@@由于这种度量常常接近于0,所以常用其自然对数进行比较。

假定比较的两个软件可靠性模型分别为A和B,则对它们进行n次预测之后的前序似然比为@@42D11002.GIF;表达式3@@这个比率表示一个模型将比另一个模型给出更准确的预测的可能。

如果@@42D11003.GIF;表达式4@@则表明模型A比模型B预测的准确性高,模型A的有效性优于模型B。

如果有c>0且@@42D11004.GIF;表达式5@@即随着预测次数的无限增加,两个模型A和B的前序似然比趋于一个常量,则表明两个模型A和B的预测结果是等价的,即两个模型的预测准确性或有效性是等价的。

2.偏倚在软件可靠性模型的应用过程中,如果用模型得到预期预测结果的时间和观测到的软件失效时间不一致,就认为该模型是有偏的。

为了测定模型的偏倚量,可计算在单位斜率线和i 时刻真实概率密度的估计Fi(ti)概率积分变换值之间的最大垂直距离。

Fi(ti)是在各个观察到的失效时间点上计算出来的模型分布函数值。

同时,这一模型的分布函数值还表明了模型偏倚的方向。

当Fi>0时,表示模型趋向于乐观,反之则表示模型趋向悲观。

无论哪种情况绝对值越小,模型固有的偏倚就越小。

3.趋向有时,模型在早期的预测值集是令人乐观的,但这种乐观有可能随着预测的不断进行而丧失。

它说明所描述的偏倚检验将均化这些影响,因而模型显得是无偏的。

在这种情况下,重要的是分析Fi(ti)的趋向。

它被定义为单位斜率线和yi的累积分布函数之间的科尔马高洛夫距离。

趋向表示模型偏倚的一致性。

趋向值越小,意味着模型更能适应软件可靠性数据的变化,因而能产生更好的预测有效性。

4.噪声在软件可靠性模型中,通常将噪声假设为白噪声。

实际情况并非总是如此,而且软件可靠性模型对各种噪声并非均具有较好的适应性和不敏感性。

一般地,我们可用经典统计学中的均方差来检验模型中的噪声。

无论哪种情况,我们都希望得到尽量小的噪声度量值。

它不仅指模型预测中的噪声小,还指模型具有较好的平滑性。

噪声为无穷大时,表示模型可预测的软件失效率为0。

准则二:模型假设合理且易于测试在软件可靠性模型的建立过程中,针对不同的对象和使用环境导入了一些假设条件。

这些假设有时仅仅是为了理论推导和证明的需要,甚至是为了某些特殊目的而引入的。

纵观现有的各种模型假设,不仅数量多,且有泛滥的趋势。

而模型假设左右着模型质量。

因此,模型假设是否合理、假设质量的高低、假设的可测试性等无疑成了模型能力与有效性度量的一个重要指标。

模型假设的局限性太多,有碍于软件可靠性模型研究与应用的发展。

在软件可靠性模型中所做的一般假设有:·模型中的初始错误数是一个常数或与故障率成正比。

·每个软件错误导致相同的软件故障率。

·一次可排除一个错误,排除时不引入新错误,错误最终将被完全排除。

·故障发生率服从分布。

·故障间隔时间服从负指数分布。

·软件中的剩余错误数正比于最后一次测试的时间长度。

·测试输入随机地遇到故障。

·所有失效的影响相互独立。

·测试空间覆盖使用空间。

·所有的失效都是一出现就被看到。

软件可靠性模型的评价准则对模型假设的基本要求是,模型假设应能真实地描述模型对象与运行环境,不做无谓的假设,且所有假设都应是可测试、可证明的。

在对模型的假设质量进行评价、并由此选择模型时,如果对假设能进行完全测试,则有数据支持的假设的优先级应高于其它假设,所有采用该假设的模型都应优先选用。

如果假设的测试很困难、甚至不可能进行,则应借助于一致性观点或软件工程经验,对其继续考察。

此外,还必须对模型假设的清晰性和明确性进行判断,这将有助于判断一个具体模型是否适用于当前的软件项目。

准则三:模型能力与可靠性参数测定应满足用户要求软件可靠性模型固有的能力是对与软件可靠性有关的量的估计能力。

它涉及到模型能否有效地应用于软件设计人员、管理人员制订软件开发计划、实施软件可靠性工程设计与管理、尤其是能否以令人满意的精确度实现对软件可靠性的预计、分析、分配和评价等。

软件可靠性模型能力度量的量包括:·当前的可靠性、失效率、平均故障间隔时间、可用度,以及这些量的分布。

·所有估计参数的分布与置信区间。

·实现可靠性目标的期望时间。

·实现可靠性目标的资源和费用开销。

模型能力的测定通过对软件开发环境和运行剖面等方面的研究来完成,对这些量的数量和重要性在软件生命周期中逐个加以评价。

除了在测试和运行阶段进行软件可靠性能力的测定外,在软件设计和早期开发阶段,模型能力的测定也很重要。

软件可靠性模型参数测定的难易程度,是衡量模型有效性和模型能力的一个重要指标,它涉及模型的参数个数及估计这些参数的困难。

大多数模型包含两个以上的参数。

根据经验软件可靠性模型要求的可靠性数据至少是待估计参数的5倍。

参数较多的模型,其有效性与模型能力优于参数较少的模型。

但对软件可靠性预测模型来说,这并不普遍正确。

如果两个模型显示出较好的预测能力,应选用参数较少的模型。

因为具有较少参数的模型更容易应用,而且开发人员能更好地解释参数的物理意义,以便向软件开发过程提供适当的反馈。

准则四:模型应具有较强的适用性通常,软件可靠性模型都有一个有限的使用范围,如特定的软件可靠性数据、软件开发过程等。

对软件可靠性模型的适用性,可通过各种不同的大小、结构、功能和应用领域来分析。

一个特定模型的优点,在于它在不同的开发和运行环境中,以及在不同生命周期阶段的适用性。

应用软件可靠性模型时,下列情况应该用模型进行处理:·软件过程的进化与发展。

·软件故障分类。

·能处理不完全的可靠性数据。

·能在不同的软硬件平台上移植。

·能适应开发环境和应用环境的不一致。

总之,对软件可靠性模型的适用性,可采用各种不同大小、不同结构、不同功能的软件产品对它们进行比较、评价与判断,以确定其适用性水平。

另外,还应将模型应用于不同的开发环境、操作运行环境,以及不同的软件生命周期阶段,以判定其适用性。

准则五:模型的推导、描述、应用应简明简洁性是对所有模型的共同要求。

只有推导、证明、描述和应用简单明了的模型,才能在软件可靠性工程实践中发挥作用,才会有广阔的应用前景。

软件可靠性模型的简洁性涉及到可靠性数据采集过程、模型假设、模型描述、模型推导、模型证明,以及用软件工程工具来实现模型。

在数据采集方面,简明性可减少测定费用、提高数据准确性,并使它更易于模型应用。

模型假设、推导、描述和证明等方面的简洁性,使人们更容易理解模型假设、估计参数、应用模型和解释结果,可提高模型能力和模型的有效性。

模型实现方面的简洁性,可促进对软件工程工具的有效使用,以推动模型的应用。

在选择软件可靠性模型时,应充分重视其简单性。

尤其在尚未对可靠性估计进行多次实践的情况下,既不能保证较复杂模型的质量,一般也没有数据来支持较复杂的模型。

准则六:模型应有足够的可靠性数据的支持在软件可靠性模型的应用中,可靠性数据始终是一个重要的、非常突出的问题。

没有足够多的可靠性数据,便企图应用模型去分析、估计软件的可靠性水平,以及用它们来进行预测和决策是极其困难的,甚至是不可能的。

事实上,软件可靠性数据的数量、质量及完整性等对软件可靠性模型的影响远远大于软件可靠性模型中的假设,以及其它许多问题对模型能力和模型有效性等的影响。

针对软件可靠性数据的现状,加速可靠性数据的收集是首要的,但绝非一蹴而就。

因此,我们只能反过来对软件的可靠性模型做更多的要求。

一些软件可靠性模型在开发时就充分重视了对可靠性数据的收集,使它们的应用不但得心应手,而且非常有效。

相反,有些软件可靠性模型没有对可靠性数据的支持给予充分的重视,因而导致了应用上的困难。

相关主题