关键词不能为空

当前您在: 主页 > 英语 >

可靠性建模资料整理

作者:高考题库网
来源:https://www.bjmy2z.cn/gaokao
2021-02-10 22:39
tags:

-

2021年2月10日发(作者:俾斯麦)


v1.0


可编辑可修改



软件可靠性建模




1



模型概述



1.1



软件可靠性的定义



1983


年美国


IEEE


计算机学会对“软件可靠性”作 出了明确定义,


此后该定义被美国


标准化研究所接受为国家标准 ,


1989


年我国也接受该定义为国家标准。该定义包括两方< /p>


面的含义:




1


)在规定的条件下,在规定的时间内,软件不引起系统失效的概率;

< br>



2


)在规定的时间周期内, 在所述条件下程序执行所要求的功能的能力;



其中的概率是系 统输入和系统使用的函数,


也是软件中存在的故障的函数,


系统 输入


将确定是否会遇到已存在的故障(如果故障存在的话)


。< /p>



软件失效的根本原因在于程序中存在着缺陷和错误,软件失效的 产生与软件本身特


性、人为因素、软件工程管理都密切相关。影响软件可靠性的主要因素 有软件自身特性、


人为因素、软件工程管理等,这些因素具体还可分为环境因素、软件是 否严密、软件复杂


程度、


软件是否易于用户理解、


软件测试、


软件的排错与纠正以及软件可靠性工程技术研

究水平与应用能力等诸多方面。



1.2



软件可靠性建模思想



建立软件可靠性 模型旨在根据软件可靠性相关测试数据,


运用统计方法得出软件可靠

性的预测值或估计值,下图给出了软件可靠性建模的基本思想。



1


v1.0


可编辑可修改






软件可靠性建模基本思想



从图中可以 看出软件失效总体来说随着故障的检出和排除而逐渐降低,


在任意给定的


时间,能够观测到软件失效的历史。软件可靠性建模的目标如下:


< p>
1


)预测软件系统达到


预期目标所还需要的资源开 销及测试时间;



2


)预测测试结束后 系统的期望可靠性。



1.3




软件可靠性建模基本问题



软件可靠性建模需要考虑以下基本问题:





1




模型建立



模型建立指的是怎样去建立 软件可靠性模型。一方面是考虑模型建立的角度,例如从


时间域角度、

< br>数据域角度、


将软件失效时刻作为建模对象,


还可以将一 定时间内软件故障


数作为建模对象;另一方面是考虑运用的数学语言,例如概率语言。< /p>





2




模型比较



在软件可靠性模型分类的基 础上,


对不同的模型分析比较,


并对模型的有效性、

< p>
适用


性、简洁性等进行综合权衡,从而确定出模型的适用范围。

< p>




3




模型应用



软件可靠性模型的应用需要 从以下两方面考虑:


一是给定了软件的开发计划,


如何选


择适当的模型;二是给定了软件可靠性模型,如何指导软件可靠性工程实践。

< br>



软件系统的失效历史可以通过对测试得到的失效数据 分析获得,


而实际情况中,


人们


最为关 注的是软件未来的失效趋势。软件可靠性模型基本都是建立在一定的假设基础之


上,所以 ,即使花费了大量的时间和精力对软件的可靠性进行预计,也只是一种预测,这


2


v1.0


可编辑可修改


< p>
种预测的不确定性是许多未知原因交互作用的结果,


根据软件可靠性模型的 预测只能以概


率形式表示。



1.4



软件可靠性模型的特点




1




与使用的程序设计语言无关。软件可靠性的应用与选用什么程序设计语言来

< br>编写软件之间没有什么直接关系。但对于根据同一个规格说明书,不管你用什么程序设

计语言软件来编写软件,同一个软件可靠性模型应给出同样的估测结果。





2




与具体用到的软件开发方法无关。软件开发是一个十分复杂的过程,涉及到

< br>许多的人为因素,从而使得对软件的质量难以进行预测。为了保证预测的精度,不妨假

设待估测的软件系统是用最坏的软件开发方法开发出来的。





3




测试方法的选择问题。


实际上是无法通过彻底的测试来获得完全可靠 的软件,


所以不得不采用有限的测试,那么目标就是用最少的测试以求最大限度的软件可 靠性。


可以用例如边界值测试法、分类测试法、路径测试法等方法来达到。几乎所有的软 件可


靠性模型都假定测试环境就是将来软件的运行环境,这限制了高可靠性估计情况下的 这


些模型的可用性。





4




改错过程。实际上改正老的错误时往往会引人新的错误。





5




模型要表述的内容。模型应该指出测试的输入是否已足够地覆盖了输入域,

< br>测试的条件和数据是否已准确地模拟了操作系统、是否已足以查出那些类似的错误等。

软件可靠性模型假定测试的条件和数据与操作环境有着同样的分布,也就简捷地假设了


上述要表述的内容。





6




输入的分布问题。可靠性估计紧密地依赖于模型假设的输入分布。作为一个

< br>极端的情况,如果输入是一个常数(比如说只用到一个输入)


,软件将或者出错或 者成功


的执行,于是就给出可靠性相应地为



0


或为



1






7




关于软件复杂性问题。大多数现有的软件可靠性模型都没有考虑这个问题。

< br>实际上,复杂的软件应该比简单的软件要求更多的测试。





8




模型的验证问题。常常由于缺乏实际可用的足够数据,使得对模型的验证无

< br>法进行,且在整个软件寿命周期内,软件几乎呈常数倍数地增加,导致可靠性也相应地

变化,软件可靠性的验证工作也就更加复杂化。




3


v1.0


可编辑可修改




9




关于时间问题。在软件可靠性量测与硬件可靠性量测综合起来对一定的系统

< br>环境进行考核时,将



CPU


时间作为时间单位是必要的。





10



< /p>


考虑模型所要求的数据是否容易收集。


否则,

由于数据问题,


将会限制软


件可靠性的应用范围。



1.5




软件可靠性模型的分类



到目前为止,


软件可靠性模型的研究已有



40 < /p>


多年的历史,


国内外已发表的软件可


靠性 模型有近百种,


但由于对软件可靠性模型的研究还处在一个初步阶段,

< br>目前并没有一


个完整、系统的科学分类方法。为了从宏观上研究、掌握和理解这些 模型,不少学者提出


不同的分类方法。



(一)根据建模对象分类



根据建模对象将模型分为两种:静态模型和动态模型,如图:






根据建模对象分类



1


、静态模型



静态模型的建模对象是与运行时间无关的数据或信息,


如软件的各种复杂性参数,



点是不需要进行软件测试即可进行软件缺陷估计,


应用与软件开发的早期阶段。


随着软件


可靠性设计逐渐 被重视,这种模型的重要性也体现出来。



2


、动态模型



动态模型的建模对象主要是与运行时间相关的数据或信息。如


Shooman


模型、


Jelinski-Moranda


模型、


Schick-Wolverton


模型,


Musa


执行时间模型、


G-O


模型、


Moranda


几何


Poission


模型。



(二)根据模型假设分类



4


v1.0


可编辑可修改


< p>
根据模型假设将模型分为随机过程模型和非随机过程模型,如图所示。






依据模型假设分类



1


、随机过程模型


< br>(


1


)马尔科夫过程模型



这类模型认为在


t


时刻,软件系统的 失效过程是一个马尔科夫过程。有代表性的模


型有


Jelinski-Moranda


模型,


Schick- Wolverton


模型。




2


)非齐次泊松过程模型



这类模型把时间划分为


变量,代表性的模型有


G-O


模型。




3



Musa


执行时间模型



这类模型以


CPU


时间为标准描述 软件系统的可靠性,


建立


CPU


时 间与日历时间,



序的可靠性特征与测试过程资源消耗的关系。



2


、非随机过程模型




1


)贝叶斯类模型



这类模型中有代表性的是


L-V


模型。




2


)种子法模型



其思想是事先在软件中植入一定数量的缺陷植,


收集到的缺陷包含植入的和软件本身


的,用它们之间数量关系估算软件系统的缺陷数,即动态模型中的缺陷播种模型。




3


)基于数据域 的模型



5


时间间隔,每个间隔内发现的失效数是泊松随机


v1.0


可编辑可修改



这类模型的代表是


1973


年提出的


Nelson


模型。





4


)其他方法



其他的模型还有非参数分析、时间序列分析模型等模型。



(三)根据故障过程的特性分类



Amrit


将模型分为


4


类:



1


、故障间隔时间模型



这类模型研究的是故障的间隔时间。最常用的方法是假设第


i



-1


个和第


i



个故障之


间的时间服从某种分布,


从观 测到的间隔时间来估计参数,


进而估计软件可靠性和故障间


隔时 间


MTBF



Mean Time Between Failure


)等软件性能度量。



2


、故障计数模型


< br>这类模型关注的是一定时间间隔内发生故障的次数,


假定故障计数服从一种已知的 随


机过程。可以通过观测的故障数或失效时间估计失效率参数,


NHPP


类软件可靠性增长模


型属于这类模型。



3


、故障播种模型




这类模型类似于种子法模型。



4


、基于输入域模型




根据程序的使用情况从输入情况的分布生成一组测试用例。< /p>


由于获得这个分布比较困


难,


所以一般把 输入域划分为几个有代表性的等价类,


每个等价类都与一个程序路径有关。


从执行这些从输入域抽取的测试用例,观测软件故障数,从而估计软件可靠性。



(四)


Trivedi


分类及其他分类



Kishor


划分模型方法如图所示




6


v1.0


可编辑可修改




2




Trivedi


分类软件可靠性模型



其他常用的软件可靠性模型分类方法还有


Musa



Okumoto


给出的基于模型 五种不


同属性的模型分类方法和


Hoang Pham


给出的分类体系。



2



常见的软件可靠性建模模型



软件可靠性解析模型



软件可靠性解析 模型主要通过对软件失效数据行为进行假设,


并在该假设的基础上依

靠数学解析方法对软件可靠性进行建模。该类模型可分为指数模型、对数模型、


Li ttlewood-Verrall


模型、数据域模型、


Mar kov


链模型、随机


Petri


网模型 等。



2.1.1



指数模型




1




J-M


模型



J-M


软件可靠性模型于


1972


年由


Jelinski



Moranda< /p>


创建,


属于二项分布有限错误


模型。其基 本假设如下:


1)


测试未运行时软件失效为

< br>0


;当测试进行时,软件错误将被


检出,


其失效率函数与软件当前的残留故障数成正比;


同时,


软件中存在的总故障数是固


定的;


2)


失效率在每个失效间隔内是常数,


其数值正比于残留的错误数;


3)


软件错误引


发的故障是相互独立的;

< br>4)


每次只修正一个错误,且当软件故障出现时,引发故障的错


误将被立即排除,并不会引入新的错误。



J-M













i

















软件中 错误总数,


为失效率。


J-M


模型软件 可靠性函数为:



=



=


,其中



J-M

< p>
模型以一种较为简单的方式,将软件故障视为测试时间的函数,主要缺点在于假

设条件过于理想,实际情况中很难满足。




2




G-O


模型



Goel-Okumoto


软件可靠性模型

(G-O


模型


)



1979


年由


Goel



Okumoto


提出,属于


7


v1.0


可编辑可修改


< p>
NHPP


有限错误模型,


其基本假设如下:


1)


测试未运行时的软件失效为


0



当测试进行时,


软件失效服从均值为


的泊松分布;


2)





,



测试时 间


内产生


的失效与软件残留错误成正比;


3)


对于任一组有限时间点,在对应时间段分别发生的失


效 次数相互独立;


4)


每次只修正一个错误,当软件故障出现时 ,引发故障的错误被立即


排除,并不会引入新的错误。



G-O


模型在测试区间


内的累计失效数期望函 数为


,


为软件


累计测试时间。可靠性函 数为:



=



3




Musa


基本执行时间模型



Musa


基本执行时间软件可靠性模型


(Musa


模型


)


中,


软件测试时间使用了更为精确的


CPU


占用时间作为度 量基础,并给出了


CPU


时间与日历时间的转换关系,但软件由 于运行


环境的差异导致


CPU


执行时间 可能大不相同。




4




超指数增长模型



超指数增长模型对经 典指数模型进行了扩展,属于


NHPP


有限错误模型。由于编程 人


员的差异、


新旧代码的差异、


实现语 言的差异等因素导致了软件不同部分的失效率各有不


同,因此软件的不同部分将分配不同 的失效率



。超指数增长模型可用于拥有新模块和重

< p>
用模块的复杂系统中。超指数增长模型在测试区间



式中


,


表示具有相似特征模块构成的簇数量;


表示在第


个簇中存在的错误总数;


< br>内的累计失效数期望函数为:




示在第


个簇的失效率。该模型在应用中如何确定大型复杂系统中模块簇的划分是该模型


的关键问题之一。




5




S-Shape


模型



S-Shape


模型主要分为


Yamada Delayed S-Shaped


模型和


Inflected S-Shaped


模型。


S-Shape


模型使用


Gamma


分布取代了


G- O


模型的二项分布,属于


NHPP


有限 错误模型。


S-Shape


模型认为错误发现曲线应该体现出两 个特征:


1)


软件测试者对测试软件的了解

< br>程度;


2)


软件残余缺陷随测试过程的进行,其发现难度变得越来越大。



8


v1.0


可编辑可修改



Yamada


Delayed


S-Shaped


模 型认为软件失效在测试开始时增大,


在测试结束时减小。


在该模 型中,


软件失效数据随测试时间呈


S


曲 线变化,


体现出由于测试初期测试者对测试


对象的不熟悉以及测 试后期失效数据难于发现导致失效发现率下降这一现象。


Yamada


Delayed S-Shaped


模型在测试区间




式中,


表示最终被检测出的失效总数的期望值;


表示失效率。



Inflection


S-Shaped




认< /p>









< p>














Inflection S-Shaped


模型在测试区间


内的累计失效数期望函数为:




式中


,a


表 示最终被检测出的失效总数的期望值;


b


表示失效率;


r


表示可以检测的失效数


占软件系统总失效数 的比例。



内的累计失效数期望函数为:



2.1.2



对数模型




1




Geometric


模型


< p>
Geometric


模型属于对数无限错误模型,其基本假设如下:


1)


失效发现率随软件检


测过程递减;


2)


系统中错误是无限的。



该模型认为较 早发现的错误对失效发现率的影响大于较晚发现的错误,


其错误发现间

< br>隔时间为指数分布,错误发现间隔时间密度为


为第


i


个失效数据发送时的观测数据


.Geometric


模型中从第



个错误的期望时间为

:


期望函数为:




式中


,



。< /p>


Geometric


模型在测试区间


,其 中




为常量参数,

< br>个错误开始,发现


内的累计失效数


2




Musa- Okumoto


对数泊松模型



Musa-Okumoto


对数泊松模型属于对数无限错误模型 。该模型构建于指数递减的失效


9


v1.0


可编辑可修改



强度函数之上,


其失效强度伴随失效期望递减成指数递减,



失效率衰减参数


,


为初始失效率。




2.1.3



Littlewood- Verrall


模型



Littlewood-Verrall


可靠性模型

< p>
(L-V


模型


)


考虑了发 现缺陷不被完全剔除的情况。




型< /p>









1)





< p>


















构成独立随机变量序列,并服从参 数为


Gamma


分布


,



为增函数,用于描述程序员的素质以及软件开发难度;


3)


软件使用


情况近似于设计预期。



增函数


综合了程序员素质


以及软件开发难度


两个因素,在


L-V


模型中

< p>




的线性表达式和二 次表达式分别为


:


中,




L-V


模型的累计失效数期望函数为:




L-V


模型与前面讨论的模型相比,


最主要的不同在于前面的模型仅考虑了错误的发生对软


件可靠性 的影响,而没有考虑软件稳定运行这一现象对软件可靠性的影响。



2.1.4



数据域模型



Nelson

< p>
模型是数据域软件可靠性模型的代表,也是最重要的软件可靠性模型之一。


该模型最早于


1973


年由


Nelso n


提出


,


并于


1978


年得以完善。


Nelson


模型中,软件的可


靠性通过对软件运行的输入数据进行测量,


这 些输入数据从集合


随机选取。随机选取的


个输入数据概率分布为





Nel son


模型基本假设如下:


1)


程序 被认为是集


E


上的一个可计算函数


F< /p>


的一个规范,


一个输入数据


对应一个程序 执行回合并产生一个输出


10


2)


由于程序包含缺陷,程


v1.0


可编辑可修改



序实际确定函数


希望输出



,该函数不同于希望函数



3)


对于某些


,程 序实际输出



的容许范围之内


,



;但对另一些


程序实际输

< br>,这时认为程序发生一次失效;


4)






容许范围


,



测试 过程中不剔除程序缺陷。




为导致软 件产生故障的输入数据,则软件可靠性可以表示为


软件可靠性计算公式

< br>


,其中


现故障的次数。



Nelson


模型存在的问题主要表现在输入数据集较大和输入数据 的随机选取具有盲目


性和局限性。



中 元素的数量,



次运行后软件出



另一个


2.1.5



Markov


链模型



基于


Markov


链的软件可靠性模型主要用于评估预 测基于构件的软件系统。构件是指


封装了数据和功能的,在运行时能够通过参数进行配置 的模块。通常构件由第三方开发,


具有清晰的接口描述。


随着软 构件技术的快速发展,


聚集软构件设计大型复杂软件系统的


软件 开发方法日趋成熟,基于构件的可靠性模型研究也得到越来越多的关注。




1




Cheung


模型


< br>Cheung


模型属于基于


Markov


链的软件可靠性模型。


Cheung


模型将软件的控制 结构转


化成有向图


G


,并规定图中每 一个节点


表示一个构件,构件



的转移 用一个矢量边


表示。定义


为的可靠性


的 可靠性,


构造出构件转移矩阵


M


,其中


的转移概率。根据有向图


G



,


表示从


成功到达


的可 能性。



Cheung


模型基本假设如下:


1)


构件间的可靠性是相互独立的;


2)


构件间的控制转


移是马尔科夫过程;


3)

构件间连接逻辑完全可靠。


Cheung


模型中,具有


n


个构件的软件


系统可靠性表示为


阵,具体为


:



,


其中


为第


n


个构件 的个体可靠性,


S




11


v1.0


可编辑可修改



式中,


I



nxn


单位矩阵


<


Q


为转移概率矩阵


P


的变形。


Cheung


模型只能处理单输入


/


单输


出系统,没有考虑连接件的可靠性,而且把构件的可靠性假设为固定不变的参数。




2




Krishnamurthy


模型


< /p>


Krishnamurthy


模型遵守


C heung


模型的假设条件,属于


Markov


链软件可靠性模型。


该模型将软件中的构件视为独立节点,

将任意一个测试用例运行中经过的节点序列视为路


径。


基于 这一基本概念,


该模型认为基于构件的软件系统的可靠性可以由路径的可靠性予


以描述。




3




Yacoub


模型



Yacoub


模型属于


Markov


链软件可靠性模型。该模型用构件依赖图来描述构件间的


组装交 互关系,


构件依赖图是一个有向图,


用于描述构件的可靠性、< /p>


连接与接口的可靠性、


构件间控制的转换及转换的概率等方面内容 。该模型认为构件间连接逻辑并非完全可靠,


并引入


进行量化, 但模型中并未对此做深入分析和讨论,而仅作为固定不变的参数值


加以使用。

< p>



4




毛晓光通用模型



毛晓光通用模型认为 软件可靠性的计算是软件中所有运行路径出现频度与该路经可


靠性乘积的累加

< p>



R


为可靠性,


为所有运行路径的集合,


分别为路径


的可靠性 和出现频度。该模型没有对连接件的可靠性进行分析,并


且没有涉及敏感度计算,不利于 对软件早期开发的指导。




5




Wang


模型



Wang


模型对


Cheung


模型进 行了改进,允许软件具有并发、异构、多输入


/


输出特性。


该模型将输入和输出分别定义为


了超级初态


和超级终态


,



,

< br>同时增加



的可靠性均为


1



Wang


模型对不同结构的软件体系结< /p>


构分别进行可靠性分析,


在状态转移概率中考虑了连接件的可靠性 ,


但这样处理的连接件


的可靠性并不符合实际。



12

-


-


-


-


-


-


-


-



本文更新与2021-02-10 22:39,由作者提供,不代表本网站立场,转载请注明出处:https://www.bjmy2z.cn/gaokao/632268.html

可靠性建模资料整理的相关文章