可靠性建模资料整理_第1页
可靠性建模资料整理_第2页
可靠性建模资料整理_第3页
可靠性建模资料整理_第4页
可靠性建模资料整理_第5页
免费预览已结束,剩余25页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、软件可靠性建模1 模型概述1.1 软 件可靠性的定义1983 年美国 IEEE 计算机学会对“软件可靠性”作出了明确定义,此后该定义被美国标准化研究所接受为国家标准,1989 年我国也接受该定义为国家标准。该定义包括两方面的含义:( 1)在规定的条件下,在规定的时间内,软件不引起系统失效的概率;( 2)在规定的时间周期内,在所述条件下程序执行所要求的功能的能力;其中的概率是系统输入和系统使用的函数,也是软件中存在的故障的函数,系统输入将确定是否会遇到已存在的故障(如果故障存在的话)。软件失效的根本原因在于程序中存在着缺陷和错误,软件失效的产生与软件本身特性、人为因素、软件工程管理都密切相关。影

2、响软件可靠性的主要因素有软件自身特性、人为因素、 软件工程管理等,这些因素具体还可分为环境因素、软件是否严密、软件复杂程度、软件是否易于用户理解、软件测试、软件的排错与纠正以及软件可靠性工程技术研究水平与应用能力等诸多方面。1.2 软 件可靠性建模思想建立软件可靠性模型旨在根据软件可靠性相关测试数据,运用统计方法得出软件可靠性的预测值或估计值,下图给出了软件可靠性建模的基本思想。从图中可以看出软件失效总体来说随着故障的检出和排除而逐渐降低,在任意给定的时间,能够观测到软件失效的历史。软件可靠性建模的目标如下:( 1)预测软件系统达到预期目标所还需要的资源开销及测试时间;( 2)预测测试结束后系

3、统的期望可靠性。1.3 软 件可靠性建模基本问题软件可靠性建模需要考虑以下基本问题:( 1) 模型建立模型建立指的是怎样去建立软件可靠性模型。一方面是考虑模型建立的角度,例如从时间域角度、数据域角度、将软件失效时刻作为建模对象,还可以将一定时间内软件故障数作为建模对象;另一方面是考虑运用的数学语言,例如概率语言。( 2) 模型比较在软件可靠性模型分类的基础上,对不同的模型分析比较,并对模型的有效性、适用性、简洁性等进行综合权衡,从而确定出模型的适用范围。( 3) 模型应用软件可靠性模型的应用需要从以下两方面考虑:一是给定了软件的开发计划,如何选择适当的模型;二是给定了软件可靠性模型,如何指导软

4、件可靠性工程实践。软件系统的失效历史可以通过对测试得到的失效数据分析获得,而实际情况中,人们最为关注的是软件未来的失效趋势。软件可靠性模型基本都是建立在一定的假设基础之上,所以, 即使花费了大量的时间和精力对软件的可靠性进行预计,也只是一种预测,这种预测的不确定性是许多未知原因交互作用的结果,根据软件可靠性模型的预测只能以概率形式表示。3.4 软 件可靠性模型的特点( 1) 与使用的程序设计语言无关。软件可靠性的应用与选用什么程序设计语言来编写软件之间没有什么直接关系。但对于根据同一个规格说明书,不管你用什么程序设计语言软件来编写软件,同一个软件可靠性模型应给出同样的估测结果。( 2) 与具体

5、用到的软件开发方法无关。软件开发是一个十分复杂的过程,涉及到许多的人为因素,从而使得对软件的质量难以进行预测。为了保证预测的精度,不妨假设待估测的软件系统是用最坏的软件开发方法开发出来的。( 3) 测试方法的选择问题。实际上是无法通过彻底的测试来获得完全可靠的软件,所以不得不采用有限的测试,那么目标就是用最少的测试以求最大限度的软件可靠性。可以用例如边界值测试法、分类测试法、路径测试法等方法来达到。几乎所有的软件可 靠性模型都假定测试环境就是将来软件的运行环境,这限制了高可靠性估计情况下的这 些模型的可用性。( 4) 改错过程。实际上改正老的错误时往往会引人新的错误。( 5) 模型要表述的内容

6、。模型应该指出测试的输入是否已足够地覆盖了输入域,测试的条件和数据是否已准确地模拟了操作系统、是否已足以查出那些类似的错误等。软件可靠性模型假定测试的条件和数据与操作环境有着同样的分布,也就简捷地假设了上述要表述的内容。( 6) 输入的分布问题。可靠性估计紧密地依赖于模型假设的输入分布。作为一个极端的情况,如果输入是一个常数(比如说只用到一个输入),软件将或者出错或者成功的执行,于是就给出可靠性相应地为0 或为 1。( 7) 关于软件复杂性问题。大多数现有的软件可靠性模型都没有考虑这个问题。实际上,复杂的软件应该比简单的软件要求更多的测试。( 8) 模型的验证问题。常常由于缺乏实际可用的足够数

7、据,使得对模型的验证无法进行,且在整个软件寿命周期内,软件几乎呈常数倍数地增加,导致可靠性也相应地变化,软件可靠性的验证工作也就更加复杂化。( 9) 关于时间问题。在软件可靠性量测与硬件可靠性量测综合起来对一定的系统环境进行考核时,将CPU 时间作为时间单位是必要的。( 10) 考虑模型所要求的数据是否容易收集。否则, 由于数据问题,将会限制软件可靠性的应用范围。3.5 软 件可靠性模型的分类到目前为止,软件可靠性模型的研究已有40 多年的历史,国内外已发表的软件可靠性模型有近百种,但由于对软件可靠性模型的研究还处在一个初步阶段,目前并没有一个完整、系统的科学分类方法。为了从宏观上研究、掌握和

8、理解这些模型,不少学者提出不同的分类方法。(一)根据建模对象分类根据建模对象将模型分为两种:静态模型和动态模型,如图:1、静态模型静态模型的建模对象是与运行时间无关的数据或信息,如软件的各种复杂性参数,特点是不需要进行软件测试即可进行软件缺陷估计,应用与软件开发的早期阶段。随着软件可靠性设计逐渐被重视,这种模型的重要性也体现出来。2、动态模型动态模型的建模对象主要是与运行时间相关的数据或信息。如Shooman 模型、Jelinski-Moranda 模型、 Schick-Wolverton 模型, Musa 执行时间模型、G-O 模型、 Moranda几何 Poission模型。根据模型假设将

9、模型分为随机过程模型和非随机过程模型,如图所示。图依据模型假设分类1、随机过程模型( 1)马尔科夫过程模型这类模型认为在t 时刻, 软件系统的失效过程是一个马尔科夫过程。有代表性的模型有 Jelinski-Moranda模型, Schick-Wolverton 模型。( 2)非齐次泊松过程模型这类模型把时间划分为0,t1,t2, t ?时间间隔,每个间隔内发现的失效数是泊松随机变量,代表性的模型有G-O 模型。( 4) Musa 执行时间模型这类模型以CPU 时间为标准描述软件系统的可靠性,建立CPU 时间与日历时间,程序的可靠性特征与测试过程资源消耗的关系。2、非随机过程模型( 1)贝叶斯类

10、模型这类模型中有代表性的是L-V 模型。( 2)种子法模型其思想是事先在软件中植入一定数量的缺陷植,收集到的缺陷包含植入的和软件本身的,用它们之间数量关系估算软件系统的缺陷数,即动态模型中的缺陷播种模型。( 3)基于数据域的模型这类模型的代表是1973 年提出的Nelson 模型。( 4)其他方法其他的模型还有非参数分析、时间序列分析模型等模型。(三)根据故障过程的特性分类AmritL.Goel 将模型分为4 类:1、故障间隔时间模型这类模型研究的是故障的间隔时间。最常用的方法是假设第i-1 个和第i 个故障之间的时间服从某种分布,从观测到的间隔时间来估计参数,进而估计软件可靠性和故障间隔时间

11、 MTBF ( Mean Time Between Failure)等软件性能度量。2、故障计数模型这类模型关注的是一定时间间隔内发生故障的次数,假定故障计数服从一种已知的随机过程。 可以通过观测的故障数或失效时间估计失效率参数,NHPP 类软件可靠性增长模型属于这类模型。3、故障播种模型这类模型类似于种子法模型。4、基于输入域模型根据程序的使用情况从输入情况的分布生成一组测试用例。由于获得这个分布比较困难, 所以一般把输入域划分为几个有代表性的等价类,每个等价类都与一个程序路径有关。从执行这些从输入域抽取的测试用例,观测软件故障数,从而估计软件可靠性。(四) Trivedi 分类及其他分类K

12、ishorS.Trivedi 划分模型方法如图所示Trivedi 分类软件可靠性模型其他常用的软件可靠性模型分类方法还有Musa 和 Okumoto 给出的基于模型五种不Hoang Pham 给出的分类体系。2 常见的软件可靠性建模模型4.1 软件可靠性解析模型软件可靠性解析模型主要通过对软件失效数据行为进行假设,并在该假设的基础上依靠数学解析方法对软件可靠性进行建模。该类模型可分为指数模型、对数模型、Littlewood-Verrall 模型、数据域模型、Markov 链模型、随机Petri 网模型等。4.1.1 指数模型( 1) J-M 模型J-M 软件可靠性模型于1972 年由 Jeli

13、nski 和 Moranda创建, 属于二项分布有限错误模型。 其基本假设如下:1) 测试未运行时软件失效为0; 当测试进行时,软件错误将被检出,其失效率函数与软件当前的残留故障数成正比;同时,软件中存在的总故障数是固定的;2) 失效率在每个失效间隔内是常数,其数值正比于残留的错误数;3) 软件错误引发的故障是相互独立的;4) 每次只修正一个错误,且当软件故障出现时,引发故障的错误将被立即排除,并不会引入新的错误。J-M 模型中软件第i 次失效强度函数为?=? ?- ?+ 1 ,其中?为软件中错误总数,? 为失效率。J-M 模型软件可靠性函数为:R ?=e-?J-M 模型以一种较为简单的方式,

14、将软件故障视为测试时间的函数,主要缺点在于假 设条件过于理想,实际情况中很难满足。( 2) G-O 模型Goel-Okumoto 软件可靠性模型(G-O 模型 )于 1979 年由 Goel 和 Okumoto提出,属于NHPP 有限错误模型,其基本假设如下:1) 测试未运行时的软件失效为0; 当测试进行时,软件失效服从均值为m ?的泊松分布;2) 当 t 0时 ,测试时间?,?+ ?内产生的失效?与软件残留错误成正比;3) 对于任一组有限时间点,在对应时间段分别发生的失效次数相互独立;4) 每次只修正一个错误,当软件故障出现时,引发故障的错误被立即排除,并不会引入新的错误。G-O 模型在测试

15、区间0. ?内的累计失效数期望函数为m ?= ?1 - ?-? ,t为软件累计测试时间。可靠性函数为:R?= ?(?-?+?-?-?)=e-m(s)e-bt( 3) Musa基本执行时间模型Musa 基本执行时间软件可靠性模型(Musa 模型)中,软件测试时间使用了更为精确的 CPU 占用时间作为度量基础,并给出了CPU 时间与日历时间的转换关系,但软件由于运行环境的差异导致CPU 执行时间可能大不相同。( 4) 超指数增长模型超指数增长模型对经典指数模型进行了扩展,属于 NHPP有限错误模型。由于编程人员的差异、新旧代码的差异、实现语言的差异等因素导致了软件不同部分的失效率各有不同, 因此软

16、件的不同部分将分配不同的失效率。超指数增长模型可用于拥有新模块和重用模块的复杂系统中。超指数增长模型在测试区间0.?内的累计失效数期望函数为:?m t =?1 -?-?=?1式中,n表示具有相似特征模块构成的簇数量;?表示在第?i个簇中存在的错误总数;?表示?在第i个簇的失效率。该模型在应用中如何确定大型复杂系统中模块簇的划分是该模型的关键问题之一。( 5) S-Shape模型S-Shape模型主要分为Yamada Delayed S-Shaped 模型和 Inflected S-Shaped模型。S-Shape模型使用Gamma分布取代了G-O 模型的二项分布,属于NHPP 有限错误模型。S

17、-Shape模型认为错误发现曲线应该体现出两个特征:1) 软件测试者对测试软件的了解程度; 2) 软件残余缺陷随测试过程的进行,其发现难度变得越来越大。Yamada Delayed S-Shaped模型认为软件失效在测试开始时增大,在测试结束时减小。在该模型中,软件失效数据随测试时间呈S 曲线变化,体现出由于测试初期测试者对测试对象的不熟悉以及测试后期失效数据难于发现导致失效发现率下降这一现象。YamadaDelayed S-Shaped模型在测试区间0.?内的累计失效数期望函数为:m ?= ?1 - (1 + ?)?-?式中,a表示最终被检测出的失效总数的期望值;b表示失效率。Inflect

18、ion S-Shaped 模型认为错误发现率在整个测试周期中呈现递增的趋势。InflectionS-Shaped模型在测试区间0. ?内的累计失效数期望函数为:?(1 - ?-?)?1 - ?m t = 1 + ?-? ?=?式中 ,a表示最终被检测出的失效总数的期望值;b 表示失效率;r 表示可以检测的失效数占软件系统总失效数的比例。2.1.2 对数模型( 1) Geometric模型Geometric模型属于对数无限错误模型,其基本假设如下:1) 失效发现率随软件检测过程递减;2) 系统中错误是无限的。该模型认为较早发现的错误对失效发现率的影响大于较晚发现的错误,其错误发现间隔时间为指数分

19、布,错误发现间隔时间密度为f Xi = D?i- 1Xi, 其中D和 ?为常量参数,Xi为第 i 个失效数据发送时的观测数据.Geometric模型中从第(i - 1)个错误开始,发现第i个错误的期望时间为:E ? = ?1?-1。 Geometric 模型在测试区间0. ?内的累计失效数期望函数为:1m t = ?ln ?+ 1式中 , ?= - ln ? 且 0 < ? < 1 。( 2) Musa-Okumoto对数泊松模型Musa-Okumoto 对数泊松模型属于对数无限错误模型。该模型构建于指数递减的失效强度函数之上,其失效强度伴随失效期望递减成指数递减,即 t = 0e

20、- bm (t) ,b > 0为失效率衰减参数, , 0 > 0为初始失效率。2.1.3 Littlewood-Verrall 模型Littlewood-Verrall 可靠性模型(L-V 模型)考虑了发现缺陷不被完全剔除的情况。该模型 基 本 假 设 如 下 :1) 相 邻 错 误 间 隔 时 间 Xi 为 相 互 独 立 指 数 随 机 变 量i,其中i = 0,1 n;2) i构成独立随机变量序列,并服从参数为 和 (i) 的 Gamma 分布 , (i) 为增函数,用于描述程序员的素质以及软件开发难度;3) 软件使用情况近似于设计预期。增函数 (i) 综合了程序员素质0以及

21、软件开发难度 1两个因素,在 L-V 模型中 (i) 的线性表达式和二次表达式分别为: i = 0 + 1i和 i = 0 + 1i2, 其中, 0, 1 > 0。L-V 模型的累计失效数期望函数为:m t = 1 (-?0 + ?0?2 + 2?1?)?1L-V 模型与前面讨论的模型相比,最主要的不同在于前面的模型仅考虑了错误的发生对软件可靠性的影响,而没有考虑软件稳定运行这一现象对软件可靠性的影响。2.1.4 数据域模型Nelson 模型是数据域软件可靠性模型的代表,也是最重要的软件可靠性模型之一。该模型最早于1973年由 Nelson提出,并于1978年得以完善。Nelson 模型

22、中,软件的可靠性通过对软件运行的输入数据进行测量,这些输入数据从集合E= Ei: i = 1,2, N中随机选取。随机选取的n个输入数据概率分布为(Pi:i = 1,2, . N)。Nelson模型基本假设如下:1) 程序被认为是集E上的一个可计算函数F的一个规范,一个输入数据Ei对应一个程序执行回合并产生一个输出F Ei ;2) 由于程序包含缺陷,程序实际确定函数F, 该函数不同于希望函数F; 3) 对于某些Ei,程序实际输出F(Ei)在希望输出F(Ei)的容许范围之内,即FEi- F(Ei) i;但对另一些Ej程序实际输出FEj超出容许范围 ,即F Ej - F(Ej) > j,这时

23、认为程序发生一次失效;4) 测试过程中不剔除程序缺陷。若 ne为导致软件产生故障的输入数据,则软件可靠性可以表示为R1 = 1 - ne, 另一个en软件可靠性计算公式fR2 = 1 -jN=1 nfj p(Ej),其中nj为输入子域Ej中元素的数量,fj为 nj次运行后软件出现故障的次数。Nelson 模型存在的问题主要表现在输入数据集较大和输入数据的随机选取具有盲目 性和局限性。2.1.5 Markov 链模型基于 Markov 链的软件可靠性模型主要用于评估预测基于构件的软件系统。构件是指封装了数据和功能的,在运行时能够通过参数进行配置的模块。通常构件由第三方开发,具有清晰的接口描述。随

24、着软构件技术的快速发展,聚集软构件设计大型复杂软件系统的软件开发方法日趋成熟,基于构件的可靠性模型研究也得到越来越多的关注。( 1) Cheung模型Cheung模型属于基于Markov 链的软件可靠性模型。Cheung模型将软件的控制结构转化成有向图G, 并规定图中每一个节点Ni表示一个构件,构件Ni到 Nj的转移用一个矢量边 (Ni,Nj)表示。定义Ri为的可靠性Ni的可靠性,Pij为 (Ni,Nj)的转移概率。根据有向图G,构造出构件转移矩阵M ,其中 M i,j = Ri Pij M(i, j),表示从Ni成功到达Nj的可能性。Cheung 模型基本假设如下:1) 构件间的可靠性是相互

25、独立的;2) 构件间的控制转移是马尔科夫过程;3) 构件间连接逻辑完全可靠。Cheung模型中,具有n 个构件的软件系统可靠性表示为R= S(1, n) × Rn,其中Rn为第n 个构件的个体可靠性,S为 n × n矩阵,具体为 :S = I + Q+ Q2 + ?3 + ? =?=0式中, I 为 nxn单位矩阵<Q为转移概率矩阵P的变形。Cheung模型只能处理单输入/单输出系统,没有考虑连接件的可靠性,而且把构件的可靠性假设为固定不变的参数。( 2) Krishnamurthy 模型Krishnamurthy 模型遵守Cheung模型的假设条件,属于Markov

26、 链软件可靠性模型。该模型将软件中的构件视为独立节点,将任意一个测试用例运行中经过的节点序列视为路径。 基于这一基本概念,该模型认为基于构件的软件系统的可靠性可以由路径的可靠性予以描述。( 3) Yacoub模型Yacoub 模型属于Markov 链软件可靠性模型。该模型用构件依赖图来描述构件间的组装交互关系,构件依赖图是一个有向图,用于描述构件的可靠性、连接与接口的可靠性、构件间控制的转换及转换的概率等方面内容。该模型认为构件间连接逻辑并非完全可靠,并引入RTij进行量化,但模型中并未对此做深入分析和讨论,而仅作为固定不变的参数值加以使用。4)毛晓光通用模型毛晓光通用模型认为软件可靠性的计算

27、是软件中所有运行路径出现频度与该路经可靠性乘积的累加R =Pi? RPi × FPi / Pi? FPi, R为可靠性,为所有运行路径的集合,RPi和 FPi分别为路径Pi的可靠性和出现频度。该模型没有对连接件的可靠性进行分析,并且没有涉及敏感度计算,不利于对软件早期开发的指导。( 5)Wang模型Wang模型对Cheung模型进行了改进,允许软件具有并发、异构、 多输入/输出特性。该模型将输入和输出分别定义为I = Si1 ,Si2 . , Sim 和 F = Sf1 , Sf2 . , Sfm , 同时增加了超级初态SI和超级终态SF,SI和 SF的可靠性均为1。 Wang 模型

28、对不同结构的软件体系结构分别进行可靠性分析,在状态转移概率中考虑了连接件的可靠性,但这样处理的连接件的可靠性并不符合实际。2.1.6 随机 Petri 网模型随机 Petri 网作为软件可靠性建模的一种工具能较全面地描述系统的动态变化行为,当系统发生变化时,只要增加相应位置中的标记数即可,可以大大减少工作量。该模型将具体系统转化为随机Petri 网模型;并构造出与该随机Petri 网模型同构的Markov 链;最后基于 Markov 链状态概率进行系统可靠性分析。状态 S 代表可能发生的局部故障状态;变迁 T 代表使系统状态变化的事件;弧R 表示 S 和 T 间的关系。随机Petri 网的软件

29、可靠性模型示意图如图所示。Petri 网的软件可靠性模型示意图2.2 软件可靠性启发模型软件可靠性启发模型不同于解析模型,该模型利用软件历史失效数据对自身进行训练、更新, 逼近实际可靠性。启发模型可分为基于神经网络的软件可靠性模型和基于遗传编程的软件可靠性模型。2.2.1 神经网络模型神经网络具有强大的非线性输入输出映射能力,出色的容错性和泛化能力,可以对现有知识归纳学习,继而进行预测。神经网络模型应用于软件可靠性建模,突出优点在于无需对软件系统的失效进行假设约束。在建立模型的过程中,关键是解决这样的几个问题:失效数据预处理;网络结构和算法;评估预测的方法。2.2.2 遗传编程模型遗传编程(g

30、enetic programming, GP)是最近几年提出并得以发展的软件可靠性建模方法。 GP 模型采用遗传算法的基本思想,采用树形结构表示失效数据表达式,叶节点是失效的原始变量,中间节点为失效数据函数,根节点是最终输出的失效数据曲线表达式。通过使用交叉、变异等遗传操作和选择操作动态地改变这些树结构,并迭代演化直至找到失效数据曲线的优化表达式。3 软件可靠性建模方法3.1 软件可靠性模型评价的主要准则( 1)有效性模型根据软件现在和过去的故障行为(即失效数据)预估将来故障行为的能力称为预测的有效性。软件可靠性模型预测的有效性可以通过故障数方式或故障时间方式表示出来。( 2)适用性模型的适用

31、性强弱,应该利用大小、结构、 功能各异的软件产品对其进行判定。同时,一个适用性强的模型应该能适用于不同的软件产品开发环境、不同的软件产品生命周期阶段、 不同的应用场景。但是, 一个可靠性增长模型对于某一特定的软件产品或者开发环境,得到的预测结果可能不是很理想,并不能说这个模型就完全没有其适用性。( 3)模型能力模型能力指的是软件可靠性模型对给定软件产品的可靠性预测和评价的能力。一般情况下, 一个能力强的模型能对以下的可靠性指标进行很好的测量和评价:当前的可靠性,平均无故障时间(MTTF) , 或故障密度;期望达到规定可靠性目标的日期,即期望 MTTF,或故障密度目标的日期;与达到规定目标有关的

32、人力和计算机资源以及成本要求。4)简捷性模型简捷性主要体现在以下三个方面:模型所需要的数据收集简单并且经济代价低;模型概念简单直观。只有做到概念简单直观,软件工程师们才能清楚的判定在什么情况下模型是可用的,什么情况下模型已脱离了工程实用性;模型参数解释清楚,这样软件工程师们在数据不充足的情况下,对参数的估计才具有可行性。同时, 模型所包含参数个数应该是尽量的少。( 5)模型假设质量软件可靠性模型的建立是基于一定的假设条件的,应该从逻辑正确性及软件工程师的经验等方面考查假设的合理性和显然成立的程度。3.2 软件可靠性建模流程为了满足软件可靠性指标要求,需要对软件进行测试-可靠性分析- 再测试-再

33、分析-修改的循环过程。软件可靠性建模的目标是为了对软件中失效趋势和可靠性进行有效预测,来判断软件是否达到发布要求。软件可靠性模型的建模过程如下图:获得性能度量的估计判断1)软件失效数据收集软件失效数据是进行软件可靠性分析和预测的基础,收集到的软件失效数据质量好坏 直接影响到模型预测的准确性。在失效数据收集前需要对时间和数据做如下解释:关于时间,在软件可靠性模型研究中,一般都把时间大致分成了两类,即日历时间和执行时间。尽管Musa 模型坚持认为只有对执行时间进行测量才是唯一有效的,但是根据实际经验,对软件运行时间的测量,并非非执行时间不可,而且执行时间需要操作系统得出, 这无疑增加了软件失效数据

34、收集的难度和工作量。相比之下,日历时间具有很大的灵活性及优势,它便于测量记录,而且不会影响到后续的分析。因此在本文模型中,失效时间记录采用的是日历时间。关于数据,软件失效数据可分为完全数据和非完全数据两类。它们的定义是:若?1?,2, .,?- ?-? 1= 1,那么数据集合?| ?0 = 0, ?=0,1,2, ?为完全数据集合;若?1?,2, .,? ?- ?-? 1> 1,那么数据集合?| ?0 = 0, ?=0,1,2, ?为非完全数据集合,其中y(i)是时间t(i)时刻的累计故障数。由上述定义可知完全数据即故障时间间隔数据,非完全数据便为各个时间间隔内的累计故障数据。失效数据的

35、收集具体包括:故障发生时间、相邻故障的间隔时间、各个时间间隔内的累计故障数。失效数据收集完成后,可画出软件故障数随时间变化的散点图或直方图。( 2)数学模型建立通过分析收集得到的软件失效数据提出合理假设,依据这些假设列出数学表达式,建立软件可靠性模型。( 3)模型参数估计在使用模型进行软件可靠性分析前,需要先求出模型中未知参数的估计值。常用的参数估计方法有:最大似然估计法、最小二乘法、贝叶斯估计法等。( 4)得到拟合模型求出模型中未知参数的估计值后就可以建立拟合模型,可通过Matlab 工具画出拟合曲线,拟合效果取决于软件失效数据质量及所选用的模型形式。( 5)拟合效果测试通过测试来检查所获得

36、的模型是否与实测数据拟合?如能很好拟合,就说明拟合模型可很好的描述所观察的故障情况。则可仅需进行下一步。若不拟合,就必须检查或重新选择更恰当的模型。( 6)获得性能度量的估计通过此步骤可对包括软件可靠性在内软件系统的性能作出定量的度量;( 7)做出判定通过判定以确定系统是否需要继续进行测试,是否可以交付使用。3.3 常见参数估计方法1 最小二乘法最小二乘法作为一种数学优化技术,是通过最小化误差的平方和来寻找数据的最佳函数匹配。 利用最小二乘法,可以简便地求得未知数据,使得这些数据与实际数据间误差的平方和为最小。设有随机变量Y 由 k 个参数和 k 个变量组成,并且根据数据可对k 个参数进行估计

37、。求,使得:令结果等于零,可得:其中记,可以证明,若,即。那么,称为 的一致最小二乘无偏估计。最大似然估计法最大似然估计法,也叫极大似然法,是最为常用的经典统计方法。它最早由德国大数学家 C.F. Gauss 提出,1912 年, 英国统计学家R· A· Fisher 在其一篇文章中重新提出, 并且证明了最大似然估计法的一些性质。最大似然估计法的基本思想是:由样本值选择参数,使得该样本发生的概率最大。具体做法如下:设总体X 概率密度函数为,其中为未知参数,为来自总体X 的一个给定的子样,则似然函数:为参数 的函数。求使似然函数的值达到最大,为参数的最大似然估计值。最大似然估

38、计的求法包括以下步骤:1 ) 根据总体分布导出样本联合密度(或联合概率函数)2) 将样本联合密度(或联合概率函数)中的参数 看作自变量,自变量看成已知常数,得到似然函数;3) 通常对似然函数做对数变换得到,求得的最大值点,即 的最大似然估计;( 4)在最大值点的表达式中将样本值代入即可得到参数的极大似然估计值。贝耶斯估计由贝耶斯统计学理论可知,对总体的特征数进行推断时,除了使用到总体信息和样本信息外,还应该使用到先验信息,即抽样(试验)之前有关统计问题的一些信息。( 1)先验分布将总体中的未知参数看成一取值于参数空间? 的随机变量,它有一概率分布,记为,称为参数 的先验分布。当 是参数空间?

39、上的连续型随机变量时,称 的密度函数为先验密度。( 2)后验分布在贝耶斯统计学中,把总体信息、样本信息及先验信息归纳起来的最好形式是在总体分 布 基 础 上 获 得 的 样 本和 参 数 的 联 合 密 度 函 数 :,在这个联合密度函数中,当样本给定之后,未知的仅是参数 了, 我们关心的是样本给定后, 的条件密度函数,依据密度的计算公式, 容易获得这个条件密度函数这就是贝耶斯公式的密 度 函 数 形 式 ,称 为 的 后 验 密 度 函 数 , 或 后 验 分 布 。 其 中 ,称为样本的边际分布,或称样本的无条件分布,它的积分区域就是参数 的取值范围,根据具体情况而定。归纳起来贝耶斯估计法

40、的过程为,人们根据先验信息对参数 已有一个认识,这个认识就是先验分布。然后通过试验,获得样本,从而对 的先验分布进行调整,调整的方法就是使用上面的贝耶斯公式,调整的结果就是后验分布后验分布是总体信息、样本信息及先验信息这三种信息的综合。获得后验分布使人们对 的认识又前进一步,可以看出,获得样本的的效果是把我们对 的认识由调 整 到所以对 的统计推断就应建立在后验分布的基础上。3.4 常见软件可靠性建模方法3.4.1 基于黑盒的可靠性模型基于“黑盒”的软件可靠性模型将软件看成一个单一的整体,没有内部结构的建模。这类模型使用统计方法对软件可靠性进行建模,利用软件测试时获得的错误数据来估计模型参数或

41、者校准模型。3.4.2 基于体系结构的可靠性建模使用结构化方法来量化软件可靠性的动机主要有如下几个因素:(1)对于现有很多由可重用构件以及COTS构件组成的软件系统,可以通过结构化的方法来进行全系统的可靠性分析;(2)通过结构化可靠性模型,可以将软件系统的可靠性与软件系统结构以及单个构件的可靠性联系在一起;(3)研究组成软件系统的各个构件对系统整体可靠性的敏感性,从而可以对系统的可靠性瓶颈进行分析;(4)结构化可靠性模型适用于软件设计与开发的全生命周期,而不像软件可靠性增长模型那样只能在测试阶段使用。(1)基于构件的软件系统结构建模构件是基于结构的软件可靠性浮估的基本单元,可以理解为在软件系统

42、中能够实现特定功能的逻辑上独立的模块,同时该模块可以被单独的实际,实现及测试。设计者需要根据软件系统的功能性能要求等,将系统分解为个个的构件,在此基础上对系统中构件之间的交互关系以及系统中构件的使用方式进行建模。(2)系统失效模式建模在获取软件系统的体系结构之后,要在其基础上定义错误行为。错误可能在模块执行的时候发生,或者是两个模块之间状态转移的时候发生。模块以及模块之间接口的错误行为可以通过他们的可靠性及错误率(恒定的或者是与时间有关的)来确定。(3)软件系统可靠性建模系统可靠性建模由两方面因素决定,一方面是软件的组成及运行方式,即软件系统结构模型; 一方面是系统的失效模式,即系统出现故障的

43、方式。由于融合结构与错误行为的方法不同,目前主要有4 种结构化可靠性建模方式:基于状态的建模、基于路径的建模、可加模型以及基于操作剖面的模型。下面将对这4 类建模方法中的典型模型进行详细的介绍。1 . 基于状态的模型该类模型主要使用软件的控制流图来描述软件的体系结构,并假设模块间的转移具有马尔可夫属性,这就意味如果已知任何时间下模块的状态,那么系统将来的行为独立于过去的行为,仅和当前的行为状态有关。这些模型中软件结构主要使用离散时间马尔可夫链(DTMC) 、 连续时间马尔可夫链(CTMC)、 半马尔可夫过程等过程进行建模。这可以进一步分为吸纳和不可分解两类,前者适用于那些可以清楚地划分软件运行

44、时操作与软件终结操作的那些应用,后者适用于连续运行的软件应用。基于状态的模型也可以被划分为组合或者层次模型。组合模型将软件结构和失效行为融合进个组合模型,并以此模型来预测应用的可靠性。层次模型首先建立结构模型,然后将失效行为添加进结构模型中来计算可靠性。基于状态的模型中比较著名的有Littlewood-Verrall 模型、 Laprie 模型、 Ledoux 模型、Cheung模型、 Wang模型、 Kubat模型等。2 基于路径的模型从软件运行的意义上讲,软件失效是发生在某些特定的执行路径上,而与软件可靠性计算密切相关的软件可靠性测试,也可以看成是对软件某些路径的执行过程。3 可加模型该类

45、软件可靠性模型主要利用构件的失效数据来计算软件的可靠性。此类模型假设构件的可靠性可以建模为非奇次泊松过程,系统的失效强度可以表示为构件的失效强度之和,因此称之为可加模型。4 .基 于操作剖面的模型该模型考虑到了在不同的操作剖面下,同一构件的可靠性有可能不同的问题。在构件的开发者不能事先知道构件的使用情况下,它从构件开发者和使用者综合的角度来考虑软件系统可靠性的度量工作。构件的开发人员通过度量得出构件的可靠性信息,然后通过操作剖面和子域映射以及操作剖面传递映射的方式,让构件的使用人员通过计算得出构件的可靠性和系统的可靠性。本方法基于两个创新:(1)剖面映射。软件开发入员提供的数据手册中必须要以操作剖面作为参数,提供在不同的操作剖面下的可靠性参数。(2)构件的输入域划分成一组不同的功能子域,以这些子域为基准,每个操作剖面都可以表示为在这些子域上的一组加权向量。假设构件C 的输入域D 划分成了n个不重叠的子域:?= ?1? ?2? . ?每个子域?都?有它自己的操作剖面?和它的失效概率?。 ?表示D 中 C 会失效的子域集合,那么?= |?|?|?|?。构件C 的操作剖面P可以表示为:P=( ?1,?2 , .?) ,其中?表

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论