为了正常的体验网站,请在浏览器设置里面开启Javascript功能!
首页 > 可靠性建模资料整理

可靠性建模资料整理

2018-07-18 6页 pdf 1MB 4阅读

用户头像

is_769254

暂无简介

举报
可靠性建模资料整理软件可靠性建模1模型概述1.1软件可靠性的定义1983年美国IEEE计算机学会对“软件可靠性”作出了明确定义,此后该定义被美国标准化研究所接受为国家标准,1989年我国也接受该定义为国家标准。该定义包括两方面的含义:(1)在规定的条件下,在规定的时间内,软件不引起系统失效的概率;(2)在规定的时间周期内,在所述条件下程序执行所要求的功能的能力;其中的概率是系统输入和系统使用的函数,也是软件中存在的故障的函数,系统输入将确定是否会遇到已存在的故障(如果故障存在的话)。软件失效的根本原因在于程序中存在着缺陷和错误,软件失效的产生与...
可靠性建模资料整理
软件可靠性建模1模型概述1.1软件可靠性的定义1983年美国IEEE计算机学会对“软件可靠性”作出了明确定义,此后该定义被美国化研究所接受为国家标准,1989年我国也接受该定义为国家标准。该定义包括两方面的含义:(1)在规定的条件下,在规定的时间内,软件不引起系统失效的概率;(2)在规定的时间周期内,在所述条件下程序执行所要求的功能的能力;其中的概率是系统输入和系统使用的函数,也是软件中存在的故障的函数,系统输入将确定是否会遇到已存在的故障(如果故障存在的话)。软件失效的根本原因在于程序中存在着缺陷和错误,软件失效的产生与软件本身特性、人为因素、软件工程管理都密切相关。影响软件可靠性的主要因素有软件自身特性、人为因素、软件工程管理等,这些因素具体还可分为环境因素、软件是否严密、软件复杂程度、软件是否易于用户理解、软件测试、软件的排错与纠正以及软件可靠性工程技术研究水平与应用能力等诸多方面。1.2软件可靠性建模思想建立软件可靠性模型旨在根据软件可靠性相关测试数据,运用统计方法得出软件可靠性的预测值或估计值,下图给出了软件可靠性建模的基本思想。图软件可靠性建模基本思想从图中可以看出软件失效总体来说随着故障的检出和排除而逐渐降低,在任意给定的时间,能够观测到软件失效的历史。软件可靠性建模的目标如下:(1)预测软件系统达到预期目标所还需要的资源开销及测试时间;(2)预测测试结束后系统的期望可靠性。1.3软件可靠性建模基本问题软件可靠性建模需要考虑以下基本问题:(1)模型建立模型建立指的是怎样去建立软件可靠性模型。一方面是考虑模型建立的角度,例如从时间域角度、数据域角度、将软件失效时刻作为建模对象,还可以将一定时间内软件故障数作为建模对象;另一方面是考虑运用的数学语言,例如概率语言。(2)模型比较在软件可靠性模型分类的基础上,对不同的模型分析比较,并对模型的有效性、适用性、简洁性等进行综合权衡,从而确定出模型的适用范围。(3)模型应用软件可靠性模型的应用需要从以下两方面考虑:一是给定了软件的开发计划,如何选择适当的模型;二是给定了软件可靠性模型,如何指导软件可靠性工程实践。软件系统的失效历史可以通过对测试得到的失效数据分析获得,而实际情况中,人们最为关注的是软件未来的失效趋势。软件可靠性模型基本都是建立在一定的假设基础之上,所以,即使花费了大量的时间和精力对软件的可靠性进行预计,也只是一种预测,这种预测的不确定性是许多未知原因交互作用的结果,根据软件可靠性模型的预测只能以概率形式表示。1.4软件可靠性模型的特点(1)与使用的程序设计语言无关。软件可靠性的应用与选用什么程序设计语言来编写软件之间没有什么直接关系。但对于根据同一个规格,不管你用什么程序设计语言软件来编写软件,同一个软件可靠性模型应给出同样的估测结果。(2)与具体用到的软件开发方法无关。软件开发是一个十分复杂的过程,涉及到许多的人为因素,从而使得对软件的质量难以进行预测。为了保证预测的精度,不妨假设待估测的软件系统是用最坏的软件开发方法开发出来的。(3)测试方法的选择问题。实际上是无法通过彻底的测试来获得完全可靠的软件,所以不得不采用有限的测试,那么目标就是用最少的测试以求最大限度的软件可靠性。可以用例如边界值测试法、分类测试法、路径测试法等方法来达到。几乎所有的软件可靠性模型都假定测试环境就是将来软件的运行环境,这限制了高可靠性估计情况下的这些模型的可用性。(4)改错过程。实际上改正老的错误时往往会引人新的错误。(5)模型要表述的内容。模型应该指出测试的输入是否已足够地覆盖了输入域,测试的条件和数据是否已准确地模拟了操作系统、是否已足以查出那些类似的错误等。软件可靠性模型假定测试的条件和数据与操作环境有着同样的分布,也就简捷地假设了上述要表述的内容。(6)输入的分布问题。可靠性估计紧密地依赖于模型假设的输入分布。作为一个极端的情况,如果输入是一个常数(比如说只用到一个输入),软件将或者出错或者成功的执行,于是就给出可靠性相应地为0或为1。(7)关于软件复杂性问题。大多数现有的软件可靠性模型都没有考虑这个问题。实际上,复杂的软件应该比简单的软件要求更多的测试。(8)模型的验证问题。常常由于缺乏实际可用的足够数据,使得对模型的验证无法进行,且在整个软件寿命周期内,软件几乎呈常数倍数地增加,导致可靠性也相应地变化,软件可靠性的验证工作也就更加复杂化。(9)关于时间问题。在软件可靠性量测与硬件可靠性量测综合起来对一定的系统环境进行考核时,将CPU时间作为时间单位是必要的。(10)考虑模型所要求的数据是否容易收集。否则,由于数据问题,将会限制软件可靠性的应用范围。1.5软件可靠性模型的分类到目前为止,软件可靠性模型的研究已有40多年的历史,国内外已发表的软件可靠性模型有近百种,但由于对软件可靠性模型的研究还处在一个初步阶段,目前并没有一个完整、系统的科学分类方法。为了从宏观上研究、掌握和理解这些模型,不少学者提出不同的分类方法。(一)根据建模对象分类根据建模对象将模型分为两种:静态模型和动态模型,如图:图根据建模对象分类1、静态模型静态模型的建模对象是与运行时间无关的数据或信息,如软件的各种复杂性参数,特点是不需要进行软件测试即可进行软件缺陷估计,应用与软件开发的早期阶段。随着软件可靠性设计逐渐被重视,这种模型的重要性也体现出来。2、动态模型动态模型的建模对象主要是与运行时间相关的数据或信息。如Shooman模型、Jelinski-Moranda模型、Schick-Wolverton模型,Musa执行时间模型、G-O模型、Moranda几何Poission模型。(二)根据模型假设分类根据模型假设将模型分为随机过程模型和非随机过程模型,如图所示。图依据模型假设分类1、随机过程模型(1)马尔科夫过程模型这类模型认为在t时刻,软件系统的失效过程是一个马尔科夫过程。有代表性的模型有Jelinski-Moranda模型,Schick-Wolverton模型。(2)非齐次泊松过程模型这类模型把时间划分为,t,…t时间间隔,每个间隔内发现的失效数是泊松随机0,t12𝑛变量,代表性的模型有G-O模型。(3)Musa执行时间模型这类模型以CPU时间为标准描述软件系统的可靠性,建立CPU时间与日历时间,程序的可靠性特征与测试过程资源消耗的关系。2、非随机过程模型(1)贝叶斯类模型这类模型中有代表性的是L-V模型。(2)种子法模型其思想是事先在软件中植入一定数量的缺陷植,收集到的缺陷包含植入的和软件本身的,用它们之间数量关系估算软件系统的缺陷数,即动态模型中的缺陷播种模型。(3)基于数据域的模型这类模型的代表是1973年提出的Nelson模型。(4)其他方法其他的模型还有非参数分析、时间序列分析模型等模型。(三)根据故障过程的特性分类AmritL.Goel将模型分为4类:1、故障间隔时间模型这类模型研究的是故障的间隔时间。最常用的方法是假设第i-1个和第i个故障之间的时间服从某种分布,从观测到的间隔时间来估计参数,进而估计软件可靠性和故障间隔时间MTBF(MeanTimeBetweenFailure)等软件性能度量。2、故障计数模型这类模型关注的是一定时间间隔内发生故障的次数,假定故障计数服从一种已知的随机过程。可以通过观测的故障数或失效时间估计失效率参数,NHPP类软件可靠性增长模型属于这类模型。3、故障播种模型这类模型类似于种子法模型。4、基于输入域模型根据程序的使用情况从输入情况的分布生成一组测试用例。由于获得这个分布比较困难,所以一般把输入域划分为几个有代表性的等价类,每个等价类都与一个程序路径有关。从执行这些从输入域抽取的测试用例,观测软件故障数,从而估计软件可靠性。(四)Trivedi分类及其他分类KishorS.Trivedi划分模型方法如图所示图2图Trivedi分类软件可靠性模型其他常用的软件可靠性模型分类方法还有Musa和Okumoto给出的基于模型五种不同属性的模型分类方法和HoangPham给出的分类体系。2常见的软件可靠性建模模型2.1软件可靠性解析模型软件可靠性解析模型主要通过对软件失效数据行为进行假设,并在该假设的基础上依靠数学解析方法对软件可靠性进行建模。该类模型可分为指数模型、对数模型、Littlewood-Verrall模型、数据域模型、Markov链模型、随机Petri网模型等。2.1.1指数模型(1)J-M模型J-M软件可靠性模型于1972年由Jelinski和Moranda创建,属于二项分布有限错误模型。其基本假设如下:1)测试未运行时软件失效为0;当测试进行时,软件错误将被检出,其失效率函数与软件当前的残留故障数成正比;同时,软件中存在的总故障数是固定的;2)失效率在每个失效间隔内是常数,其数值正比于残留的错误数;3)软件错误引发的故障是相互独立的;4)每次只修正一个错误,且当软件故障出现时,引发故障的错误将被立即排除,并不会引入新的错误。J-M模型中软件第i次失效强度函数为=(),其中为软𝜆𝑖ϕ𝑁−𝑖+1𝑁件中错误总数,ϕ为失效率。J-M模型软件可靠性函数为:R(𝑥)=e−𝜆𝑥𝑖𝑖𝑖J-M模型以一种较为简单的方式,将软件故障视为测试时间的函数,主要缺点在于假设条件过于理想,实际情况中很难满足。(2)G-O模型Goel-Okumoto软件可靠性模型(G-O模型)于1979年由Goel和Okumoto提出,属于NHPP有限错误模型,其基本假设如下:1)测试未运行时的软件失效为0;当测试进行时,软件失效服从均值为m(𝑡)的泊松分布;2)当△t→0时,测试时间(𝑡,𝑡+Δ𝑡)内产生的失效与软件残留错误成正比;3)对于任一组有限时间点,在对应时间段分别发生的失效次数相互独立;4)每次只修正一个错误,当软件故障出现时,引发故障的错误被立即排除,并不会引入新的错误。G-O模型在测试区间[0.𝑡]内的累计失效数期望函数为m(𝑡)=𝑎(1−𝑒−𝑏𝑡),t为软件累计测试时间。可靠性函数为:R(𝑠|𝑡)=𝑒𝑎(𝑒−𝑏(𝑡+𝑠)−𝑒−𝑏𝑡)=e−m(s)e−bt(3)Musa基本执行时间模型Musa基本执行时间软件可靠性模型(Musa模型)中,软件测试时间使用了更为精确的CPU占用时间作为度量基础,并给出了CPU时间与日历时间的转换关系,但软件由于运行环境的差异导致CPU执行时间可能大不相同。(4)超指数增长模型超指数增长模型对经典指数模型进行了扩展,属于NHPP有限错误模型。由于编程人员的差异、新旧代码的差异、实现语言的差异等因素导致了软件不同部分的失效率各有不同,因此软件的不同部分将分配不同的失效率。超指数增长模型可用于拥有新模块和重用模块的复杂系统中。超指数增长模型在测试区间[0.𝑡]内的累计失效数期望函数为:𝑛m(t)=∑𝑎𝑖(1−𝑒−𝑏𝑖𝑡)𝑖=1式中表示具有相似特征模块构成的簇数量;表示在第个簇中存在的错误总数;表示,n𝑎𝑖i𝑏𝑖在第i个簇的失效率。该模型在应用中如何确定大型复杂系统中模块簇的划分是该模型的关键问题之一。(5)S-Shape模型S-Shape模型主要分为YamadaDelayedS-Shaped模型和InflectedS-Shaped模型。S-Shape模型使用Gamma分布取代了G-O模型的二项分布,属于NHPP有限错误模型。S-Shape模型认为错误发现曲线应该体现出两个特征:1)软件测试者对测试软件的了解程度;2)软件残余缺陷随测试过程的进行,其发现难度变得越来越大。YamadaDelayedS-Shaped模型认为软件失效在测试开始时增大,在测试结束时减小。在该模型中,软件失效数据随测试时间呈S曲线变化,体现出由于测试初期测试者对测试对象的不熟悉以及测试后期失效数据难于发现导致失效发现率下降这一现象。YamadaDelayedS-Shaped模型在测试区间[0.𝑡]内的累计失效数期望函数为:m(𝑡)=𝑎(1−(1+𝑏𝑡)𝑒−𝑏𝑡)式中,a表示最终被检测出的失效总数的期望值;b表示失效率。InflectionS-Shaped模型认为错误发现率在整个测试周期中呈现递增的趋势。InflectionS-Shaped模型在测试区间[0.𝑡]内的累计失效数期望函数为:𝑎(1−𝑒−𝑏𝑡)1−𝑟m(t)=𝑐=1+𝑐𝑒−𝑏𝑡𝑟式中,a表示最终被检测出的失效总数的期望值;b表示失效率;r表示可以检测的失效数占软件系统总失效数的比例。2.1.2对数模型(1)Geometric模型Geometric模型属于对数无限错误模型,其基本假设如下:1)失效发现率随软件检测过程递减;2)系统中错误是无限的。该模型认为较早发现的错误对失效发现率的影响大于较晚发现的错误,其错误发现间隔时间为指数分布,错误发现间隔时间密度为()=D∅i−1X,其中和为常量参数,fXiiD∅Xi为第i个失效数据发送时的观测数据.Geometric模型中从第(i−1)个错误开始,发现第i个错误的期望时间为:E(𝑋)=1。Geometric模型在测试区间[0.𝑡]内的累计失效数期望函𝑖𝐷∅𝑖−1数为:1m(t)=ln(𝐷𝛽𝑒𝛽𝑡+1)𝛽式中,𝛽=−ln(∅)且0<∅<1。(2)Musa-Okumoto对数泊松模型Musa-Okumoto对数泊松模型属于对数无限错误模型。该模型构建于指数递减的失效强度函数之上,其失效强度伴随失效期望递减成指数递减,即()e−bm(t),b>0为失λt=λ0效率衰减参数>0为初始失效率。,,λ02.1.3Littlewood-Verrall模型Littlewood-Verrall可靠性模型(L-V模型)考虑了发现缺陷不被完全剔除的情况。该模型基本假设如下:相邻错误间隔时间为相互独立指数随机变量,其中i=1)Xiξi0,1……n;2)ξ构成独立随机变量序列,并服从参数为和的Gamma分布,为iαψ(i)ψ(i)增函数,用于描述程序员的素质以及软件开发难度;3)软件使用情况近似于设计预期。增函数综合了程序员素质以及软件开发难度两个因素,在模型中的ψ(i)β0β1L-Vψ(i)线性表达式和二次表达式分别为()+βi和ψ(i)=β+βi2,其中,,>0。:ψi=β0101β0β1L-V模型的累计失效数期望函数为:1m(t)=(−𝛽+√𝛽2+2𝛽𝑡)𝛽0011L-V模型与前面讨论的模型相比,最主要的不同在于前面的模型仅考虑了错误的发生对软件可靠性的影响,而没有考虑软件稳定运行这一现象对软件可靠性的影响。2.1.4数据域模型Nelson模型是数据域软件可靠性模型的代表,也是最重要的软件可靠性模型之一。该模型最早于1973年由Nelson提出,并于1978年得以完善。Nelson模型中,软件的可靠性通过对软件运行的输入数据进行测量,这些输入数据从集合:i=1,2,……N中随机E=Ei选取。随机选取的个输入数据概率分布为:i=1,2,…..N)。n(PiNelson模型基本假设如下:1)程序被认为是集E上的一个可计算函数F的一个,一个输入数据对应一个程序执行回合并产生一个输出();2)由于程序包含缺陷,程EiFEi序实际确定函数‘,该函数不同于希望函数;对于某些,程序实际输出‘(E)在希望FF3)EiFi输出)的容许范围之内,即|F‘(E)−F(E)|≤△;但对另一些程序实际输出‘(E)超出F(EiiiiEjFj容许范围即‘(E)−F(E)|>△,这时认为程序发生一次失效;测试过程中不剔除程,|Fjjj4)序缺陷。n若n为导致软件产生故障的输入数据,则软件可靠性可以表示为R=1−e,另一个e1n软件可靠性计算公式fR=1−∑N(j)p(E),其中n为输入子域E中元素的数量,f为n次运行后软件出2j=1jjjjjnj现故障的次数。Nelson模型存在的问题主要表现在输入数据集较大和输入数据的随机选取具有盲目性和局限性。2.1.5Markov链模型基于Markov链的软件可靠性模型主要用于评估预测基于构件的软件系统。构件是指封装了数据和功能的,在运行时能够通过参数进行配置的模块。通常构件由第三方开发,具有清晰的接口描述。随着软构件技术的快速发展,聚集软构件设计大型复杂软件系统的软件开发方法日趋成熟,基于构件的可靠性模型研究也得到越来越多的关注。(1)Cheung模型Cheung模型属于基于Markov链的软件可靠性模型。Cheung模型将软件的控制结构转化成有向图,并规定图中每一个节点表示一个构件,构件到的转移用一个矢量GNiNiNj边,N)表示。定义R为的可靠性的可靠性,为,N)的转移概率。根据有向图G,(NijiNiPij(Nij构造出构件转移矩阵,其中()PM(i,j),表示从N成功到达的可能性。MMi,j=RiijiNjCheung模型基本假设如下:1)构件间的可靠性是相互独立的;2)构件间的控制转移是马尔科夫过程;3)构件间连接逻辑完全可靠。Cheung模型中,具有n个构件的软件系统可靠性表示为,其中为第个构件的个体可靠性,为矩阵,R=S(1,n)×RnRnnSn×n具体为:∞S=I+Q+Q2+𝑄3+⋯=∑𝑄𝑘𝑘=0式中,I为nxn单位矩阵记录
,而且不会影响到后续的分析。因此在本文模型中,失效时间记录采用的是日历时间。关于数据,软件失效数据可分为完全数据和非完全数据两类。它们的定义是:若∀𝑖(𝑖𝜖〈1,2,….,𝑛〉→𝑦(𝑖)−𝑦(𝑖−1)=1),那么数据集合〈𝑦(𝑖)|𝑦(0)=0,𝑖=0,1,2,…𝑛〉为完全数据集合;若∃𝑖(𝑖𝜖〈1,2,….,𝑛〉→𝑦(𝑖)−𝑦(𝑖−1)>1),那么数据集合〈𝑦(𝑖)|𝑦(0)=0,𝑖=0,1,2,…𝑛〉为非完全数据集合,其中y(i)是时间t(i)时刻的累计故障数。由上述定义可知完全数据即故障时间间隔数据,非完全数据便为各个时间间隔内的累计故障数据。失效数据的收集具体包括:故障发生时间、相邻故障的间隔时间、各个时间间隔内的累计故障数。失效数据收集完成后,可画出软件故障数随时间变化的散点图或直方图。(2)数学模型建立通过分析收集得到的软件失效数据提出合理假设,依据这些假设列出数学表达式,建立软件可靠性模型。(3)模型参数估计在使用模型进行软件可靠性分析前,需要先求出模型中未知参数的估计值。常用的参数估计方法有:最大似然估计法、最小二乘法、贝叶斯估计法等。(4)得到拟合模型求出模型中未知参数的估计值后就可以建立拟合模型,可通过Matlab工具画出拟合曲线,拟合效果取决于软件失效数据质量及所选用的模型形式。(5)拟合效果测试通过测试来检查所获得的模型是否与实测数据拟合?如能很好拟合,就说明拟合模型可很好的描述所观察的故障情况。则可仅需进行下一步。若不拟合,就必须检查或重新选择更恰当的模型。(6)获得性能度量的估计通过此步骤可对包括软件可靠性在内软件系统的性能作出定量的度量;(7)做出判定通过判定以确定系统是否需要继续进行测试,是否可以交付使用。3.3常见参数估计方法1最小二乘法最小二乘法作为一种数学优化技术,是通过最小化误差的平方和来寻找数据的最佳函数匹配。利用最小二乘法,可以简便地求得未知数据,使得这些数据与实际数据间误差的平方和为最小。设有随机变量Y由k个参数和k个变量组成,并且根据数据可对k个参数进行估计。求的最小二乘估计就是寻找一组,使得:的值最小。对其求导并令结果等于零,可得:其中记,可以证明,若,,即。那么,称为的一致最小二乘无偏估计。最大似然估计法最大似然估计法,也叫极大似然法,是最为常用的经典统计方法。它最早由德国大数学家C.F.Gauss提出,1912年,英国统计学家R·A·Fisher在其一篇文章中重新提出,并且证明了最大似然估计法的一些性质。最大似然估计法的基本思想是:由值选择参数,使得该样本发生的概率最大。具体做法如下:设总体X概率密度函数为,其中为未知参数,为来自总体X的一个给定的子样,则似然函数:为参数θ的函数。求使似然函数的值达到最大,为参数的最大似然估计值。最大似然估计的求法包括以下步骤:(1)根据总体分布导出样本联合密度(或联合概率函数);(2)将样本联合密度(或联合概率函数)中的参数θ看作自变量,自变量看成已知常数,得到似然函数;(3)通常对似然函数做对数变换得到,求得的最大值点,即θ的最大似然估计;(4)在最大值点的表达式中将样本值代入即可得到参数的极大似然估计值。贝耶斯估计由贝耶斯统计学理论可知,对总体的特征数进行推断时,除了使用到总体信息和样本信息外,还应该使用到先验信息,即抽样(试验)之前有关统计问题的一些信息。(1)先验分布将总体中的未知参数看成一取值于参数空间ℜ的随机变量,它有一概率分布,记为,称为参数θ的先验分布。当θ是参数空间ℜ上的连续型随机变量时,称θ的密度函数为先验密度。(2)后验分布在贝耶斯统计学中,把总体信息、样本信息及先验信息归纳起来的最好形式是在总体分布基础上获得的样本和参数θ的联合密度函数:,在这个联合密度函数中,当样本给定之后,未知的仅是参数θ了,我们关心的是样本给定后,θ的条件密度函数,依据密度的计算公式,容易获得这个条件密度函数这就是贝耶斯公式的密度函数形式,称为θ的后验密度函数,或后验分布。其中,称为样本的边际分布,或称样本的无条件分布,它的积分区域就是参数θ的取值范围,根据具体情况而定。归纳起来贝耶斯估计法的过程为,人们根据先验信息对参数θ已有一个认识,这个认识就是先验分布。然后通过试验,获得样本,从而对θ的先验分布进行调整,调整的方法就是使用上面的贝耶斯公式,调整的结果就是后验分布后验分布是总体信息、样本信息及先验信息这三种信息的综合。获得后验分布使人们对θ的认识又前进一步,可以看出,获得样本的的效果是把我们对θ的认识由调整到所以对θ的统计推断就应建立在后验分布的基础上。3.4常见软件可靠性建模方法3.4.1基于黑盒的可靠性模型基于“黑盒”的软件可靠性模型将软件看成一个单一的整体,没有内部结构的建模。这类模型使用统计方法对软件可靠性进行建模,利用软件测试时获得的错误数据来估计模型参数或者校准模型。3.4.2基于体系结构的可靠性建模使用结构化方法来量化软件可靠性的动机主要有如下几个因素:(1)对于现有很多由可重用构件以及COTS构件组成的软件系统,可以通过结构化的方法来进行全系统的可靠性分析;(2)通过结构化可靠性模型,可以将软件系统的可靠性与软件系统结构以及单个构件的可靠性联系在一起;(3)研究组成软件系统的各个构件对系统整体可靠性的敏感性,从而可以对系统的可靠性瓶颈进行分析;(4)结构化可靠性模型适用于软件设计与开发的全生命周期,而不像软件可靠性增长模型那样只能在测试阶段使用。(1)基于构件的软件系统结构建模构件是基于结构的软件可靠性浮估的基本单元,可以理解为在软件系统中能够实现特定功能的逻辑上独立的模块,同时该模块可以被单独的实际,实现及测试。设计者需要根据软件系统的功能性能要求等,将系统分解为—个个的构件,在此基础上对系统中构件之间的交互关系以及系统中构件的使用方式进行建模。(2)系统失效模式建模在获取软件系统的体系结构之后,要在其基础上定义错误行为。错误可能在模块执行的时候发生,或者是两个模块之间状态转移的时候发生。模块以及模块之间接口的错误行为可以通过他们的可靠性及错误率(恒定的或者是与时间有关的)来确定。(3)软件系统可靠性建模系统可靠性建模由两方面因素决定,一方面是软件的组成及运行方式,即软件系统结构模型;一方面是系统的失效模式,即系统出现故障的方式。由于融合结构与错误行为的方法不同,目前主要有4种结构化可靠性建模方式:基于状态的建模、基于路径的建模、可加模型以及基于操作剖面的模型。下面将对这4类建模方法中的典型模型进行详细的介绍。1.基于状态的模型该类模型主要使用软件的控制流图来描述软件的体系结构,并假设模块间的转移具有马尔可夫属性,这就意味如果已知任何时间下模块的状态,那么系统将来的行为独立于过去的行为,仅和当前的行为状态有关。这些模型中软件结构主要使用离散时间马尔可夫链(DTMC)、连续时间马尔可夫链(CTMC)、半马尔可夫过程等过程进行建模。这可以进一步分为吸纳和不可分解两类,前者适用于那些可以清楚地划分软件运行时操作与软件终结操作的那些应用,后者适用于连续运行的软件应用。基于状态的模型也可以被划分为组合或者层次模型。组合模型将软件结构和失效行为融合进—个组合模型,并以此模型来预测应用的可靠性。层次模型首先建立结构模型,然后将失效行为添加进结构模型中来计算可靠性。基于状态的模型中比较著名的有Littlewood-Verrall模型、Laprie模型、Ledoux模型、Cheung模型、Wang模型、Kubat模型等。2基于路径的模型从软件运行的意义上讲,软件失效是发生在某些特定的执行路径上,而与软件可靠性计算密切相关的软件可靠性测试,也可以看成是对软件某些路径的执行过程。3可加模型该类软件可靠性模型主要利用构件的失效数据来计算软件的可靠性。此类模型假设构件的可靠性可以建模为非奇次泊松过程,系统的失效强度可以表示为构件的失效强度之和,因此称之为可加模型。4.基于操作剖面的模型该模型考虑到了在不同的操作剖面下,同一构件的可靠性有可能不同的问题。在构件的开发者不能事先知道构件的使用情况下,它从构件开发者和使用者综合的角度来考虑软件系统可靠性的度量工作。构件的开发人员通过度量得出构件的可靠性信息,然后通过操作剖面和子域映射以及操作剖面传递映射的方式,让构件的使用人员通过计算得出构件的可靠性和系统的可靠性。本方法基于两个创新:(1)剖面映射。软件开发入员提供的数据手册中必须要以操作剖面作为参数,提供在不同的操作剖面下的可靠性参数。(2)构件的输入域划分成一组不同的功能子域,以这些子域为基准,每个操作剖面都可以表示为在这些子域上的一组加权向量。假设构件的输入域划分成了个不重叠的子域:∪𝑆∪…..𝑆每个子域CDn𝐷=𝑆12𝑛𝑆𝑖都有它自己的操作剖面和它的失效概率。表示中会失效的子域集合,那么=𝑃𝑖𝑓𝑖𝐷𝑓DC𝑓𝑖|𝐷∩𝑆|𝑓𝑖。构件的操作剖面可以表示为:(,ℎ,….ℎ)其中表示对应的输入CPP=ℎ12𝑛,ℎ𝑖P|𝑆𝑖|域落在子域中的概率。那么构件的可靠性可以表示为:𝑆𝑖R=∑𝑛ℎ(1−𝑓)构件的输出可以映射到任意一组子域𝑈,𝑈,….𝑈上,在每个子域𝑖=1𝑖𝑖12𝑚|〈𝑧∈𝑆|𝑐(𝑧)∈𝑈〉|𝑈的权值为𝑘。那么:𝑘=∑𝑛𝑗𝑖,构件的输出剖面可以表示为:Q=<𝑖𝑖𝑖𝑗=1|𝑆𝑗|𝑘,𝑘,…𝑘>取𝑈,𝑈,…𝑈以为下—个构件的输入子域集合,根据构件设计者提供的12𝑚12𝑚信息即可计算出下—个构件的可靠性。系统的可靠性就是依此顺序计算出的所有构件的可靠性的乘积。3.4.3基于神经网络的软件可靠性模型神经网络具有强大的非线性输入输出映射能力,出色的容错性和泛化能力,可以对现有知识归纳学习,继而进行预测。假设有一组失效数据,共个,不妨记为(,𝑦),𝑖=1,2,3…𝑛其中𝑥,可以表示失效n𝑥𝑖𝑖𝑖时间或者失效次数,相应的可以是失效次数或失效时间。通过神经学习,能够得到一条𝑦𝑖拟合曲线y=f(x)。函数具体表达式是不知道的,但任意x对应的y都能通过网络计算出来。有了这个函数,我们就可以得到均值函数Y=μ(t),对于累积失效次数数据,f(x)和μ(t)是等价的。而对于累积失效时间数据,μ(t)财相当于是,f(x)的逆函数。我们假设到时间t为止的累积失效数服从均值函数为μ(t)泊松过程。之后,我们就可以进行评估预测,计算出一些兴趣的度量指标,如可靠度、平均无失效时间、下阶段失效次数和预计总失效次数等。至此,一个完整的软件可靠性模型已经建立了。3.5嵌入式软件可靠性建模方法关于嵌入式软件可靠性的研究,至今还没有专门的模型,在各个领域中应用的仍然是目前以及开发出来的模型,即选择特点最趋近于嵌入式软件的基本特征的模型。因此,在嵌入式软件可靠性模型研究中,要从以下方面展开。3.5.1基于假设条件的嵌入式软件可靠性建模方法嵌入式软件区别于其他类型的软件最大的特征就在于测试环境以及运行环境。嵌入式软件模型的相关内容研究发展比较晚,但是由于在现实生活中的需求比较迫切,因此也逐步研究出一些可行的方法。首先是通过环境因子来改变软件的测试环境以及运行环境,以此来最大程度提高软件可靠性评估的准确性,利用一种与环境因子联系比较密切的软件可靠性模型,将环境因子设为一个不确定的变量,由此观测在软件模型运行的各个阶段,对运行产生影响的各种因素。除此之外,还有一种方式,通过对于加速因子的测试,来调解测试环境和运行环境之间的差异性,并将测试环境和运行环境因为各种因素而失效的具体数值记为一个有效参数,在这个方法中,需要将测试加速因子视为与时间没有关联的常数量。第三种方式是通过移动点技术,来分段评估嵌入式软件的可靠性。这种方法在测试中,极其容易受到各种因素的影响,其中包括软件运行环境、测试的方式以及内部资源的配置等等。无论哪个因素发生变化,都会导致软件的可靠性改变。由此可见,移动点方法的核心就是通过对于数据变化的分析,来进行数据的分段整合。3.5.2基于智能算法的嵌入式软件可靠性建模方法在上个世纪九十年代,有学者成功利用神经网络,来整合多个数据集合的嵌入式测试软件,并极大地提高了可靠性。在这项研究中,他们在对于软件的可靠性进行测试的整个过程里,通过神经网络的相关理论来建立的嵌入式软件可靠性模型的预测精确度,明显高于其他类型的的模型。因此,在基于条件假设的嵌入式软件可靠性模式研究,逐步与神经网络相结合,共同来提升软件的可靠性。目前,神经网络已经应用在各个领域,解决预测相关问题,其中包括预测销售、预测有价证券变化、预测市场行情等等。因此,在嵌入式软件可靠性模型的研究中,结合神经网络技术来进行模型构建以及可靠性提升,具有广阔的发展空间。
/
本文档为【可靠性建模资料整理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。 本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。 网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。

历史搜索

    清空历史搜索