当前位置:文档之家› 软件可靠性多模型综合评估

软件可靠性多模型综合评估

软件可靠性多模型综合评估
软件可靠性多模型综合评估

收稿日期:2002-05-30

作者简介:邹丰忠(1962-),男,湖北麻城人,副教授,工学博士.

软件可靠性多模型综合评估

邹丰忠,徐仁佐

(武汉大学软件工程国家重点实验室,湖北武汉 430072)

摘要:软件可靠性工程领域一直存在模型很难应用于实际的问题.不同的软件可靠性模型对同一个软件工程项

目的估计差别极大.为此,探讨了软件可靠性估计的稳健方法,研究了多模型的贝叶斯自动混合与选择的理论,

其重点是要探讨贝叶斯先验表达及多模型的混合机制,以解决上述难题.

关键词:软件工程;软件可靠性;贝叶斯分析;先验分布

中图分类号:T P 311 文献标识码:A 文章编号:0253-374X(2002)10-1183-03

Multi -model Assessment of Software Reliability

ZO U Feng -z hong,X U Ren -z uo

(State Key Lab of Softw are Engi neering,Wu han University,Wuhan 430072,China)

Abstract :There has existed for a long time the difficulty in applying reliability models in practice of reliability eng ineering of softw are.Which model should we trust among about 100available reliability models with differ -ent predictions for a sing le piece of softw are under consideration?With the estimates of a model,how much confidence do w e have in believing that the model predicts the truth?Indeed,software practitioners are in a dilemma in m aking decisions.In this paper,an effort is made in try ing to provide a solution by ex ploring the robust inference methodology,and by investigating into the machinery for model mixing and selection,and the Bayes prior structure.

Key words :softw are engineering;softw are reliability;Bayes analysis;prior distribution

随着我国软件产业的迅猛发展,开发相应软件可靠性技术的需求不断增加,软件可靠性理论的研究越来越受到科学界的重视.软件可靠性源于传统工业的硬件可靠性,但由于软件的抽象性及高度复杂性等特点,软件可靠性与传统硬件可靠性有本质的区别.自1973年IEEE 软件可靠性年会召开以后,软件可靠性成为IEEE,ACM ,AIAA,M RI 及其它学术、工业和政府部门的主要研究题目之一,而美国、英国在该领域的研究尤其活跃.在美国,DoD 及M otorola 等对软件可靠性模型应用都作出了具体规定和要求,在马里兰大学统计系设有可靠性研究中心,DoD,NASA,RADC 等均有软件可靠性研究机构;英国伦敦城市大学的软件可靠性中心也在进行各种军用、工业及商用等软件可靠性研究.亚洲地区的香港自2000年起开始举办了亚太高品质软件学术会议.与国外相比,国内软件可靠性研究机构比较零散,力量相对薄弱.

软件可靠性模型分为两大类:一类是基于软件规模、结构及复杂度的模型,如H alstead 模型、M ills 模型等,它们更多地应该归为软件质量模型一类,对软件可靠性的预计能力有限;另一类是基于软件失效时间的模型,如JM 模型、LV 模型、GO NHPP 模型,这三个模型形成软件可靠性理论研究的骨架,另外还有M usa 的执行时间模型等.

在目前众多的软件可靠性模型中,其预测结果还很不尽如人意.对此文献[1]指出,目前还没有能被推荐为广泛应用的软件可靠性模型.现有模型的精度具有局部性,即模型往往只对某一个或几个软件工程项

第30卷第10期

2002年10月同 济 大 学 学 报JOURNAL OF T ONGJI UN IVERSIT Y Vol.30No.10 Oct.2002

目或其某一段数据能够达到较高的预测水平.这种模型往往潜藏着不健壮性,单个模型会不适应软件工程项目的细微变化而使预测误差急剧增大,这在现今软件工程项目各种因素犬牙交错、复杂多变的情况下,往往造成可靠性管理工程人员得出错误结论的后果.这些模型偶尔出现高精度,但在很多情况下,它们的预测严重失实,从而限制了现有模型的应用.所以,目前有针对特定软件工程项目开发专用可靠性模型的做法.表面上当前软件可靠性模型主要存在的是精度问题,而实际上是模型的稳健性(robustness)问题.

所以本文的思想就是不过分追求模型的高精度,用贝叶斯方法实现多模型的自动混合、自动选择,以取得模型的稳健性、实用性和可靠性,使模型能确实可靠地应用于各种实际可靠性管理工程.其中要解决的关键问题是构造模型的自动混合与自动选择机制和先验信念的形式化表达结构.贝叶斯哲学要求将人关于超参数的先验信念(prior belief)表达为概率分布函数的形式,这往往是人力所不能及的.在很多情况下,这样做的后果只能是牵强附会.贝叶斯分析的优点是其主观先验,其难点也是主观先验,为克服这一难点,本课题拟采用一种独特的全贝叶斯与部分贝叶斯分析相结合的方案.

1 多模型混合与选择机制

1.1 基础

如前所述,现有很多软件可靠性模型,它们的特性各异,前提假设不同,如完全与非完全除错(perfect vs.imperfect debugg ing )、各软件缺陷导致失效的概率均等与非均等,等等.因此,对同一个软件工程项目,各模型对可靠性的估计差别非常大.在工程实践中,不能仅相信某一个模型的预测,而要根据多个模型的预测来做决策,因此必须进行多模型的混合与选择,使不同类型和特性的模型互相补偿,以取得可靠性预测的稳健性.

实际的软件失效过程并不能用某一个模型来描述,如Musa 的失效数据集T 1.文献[2]提出了/变点0(chang e point)的思想,认为从失效1至失效20大致可以用一个模型来描述,从失效21至失效60大致可以用另一个模型来描述.这从另一个侧面表明不能期望用某一个或两个模型来描述软件的失效过程,而是通过多模型的混合与选择来达到这一目标.

从过去模型运用的情况及众多文献看,现有软件可靠性模型相互之间存在互补性,有些模型比较悲观(pessimistic),如LV,它们预测的可靠性往往比实际低;而另外一些模型则比较乐观(optim istic),如GO,它们预测的可靠性往往比实际高.而JM 模型及其众多变种则可能悲观也可能乐观(can go either w ay).这就为本文的混合模型提供了坚实的基础.

文献[3]在实验的基础上认为:混合模型一般比单个分模型的效果要好,而且混合模型抗数据/噪声0能力强.即混合模型精度更高,稳健性更好.而具有高稳健性的高精度估计才是现实工程急需的,也是本文的目标.并且混合模型不但对短期预测有效,而且对长期预测效果更加明显[3].

1.2 混合原理

将现有的软件可靠性模型作为分模型,这些模型有JM,GO,LV,SM ,M O 等,混合模型取下列形式:W c 1M JM +W c 2M GO +W c 3M LV +W c 4M SM +,+W c n M n ,.其中E n

i =1

W c i =1,且0[W c i [1,此处W c i 表示特定分模型对混合模型的贡献,大至可理解为权重.若某分模型M j 特别适合于一特定软件工程项目,则W c j 相对取较大值,反之亦然.如此即可实现众多模型的混合与自动选择,问题的关键是计算W c i .

1.3 全贝叶斯分析

文献[4]认为贝叶斯哲学是经验数据分析的选择论,所以本文提出用贝叶斯方法来实现软件可靠性模型的自动混合、自动选择与自诊断,该思想在邹丰忠博士论文中提出并进行了初步论证,特别是先验信念的形式化表达(a p riori statements),传统贝叶斯分析的难点是先验信念的处理,对此本项目采取全贝叶斯和部分贝叶斯相结合的方法.

如前所述,关键是要计算W c i ,但前述要求太苛刻.所以这里取W i \0,当然总可以把W i 变换为W c i 的形式(归一化变换).根据条件概率有1184 同 济 大 学 学 报第30卷

P (AB )=P (A )P(B |A )=P (B)P (A |B )

式中:P (AB )表示事件A 和B 同时发生的概率;P (A )P (B |A )表示事件A 发生且在事件A 发生的条件下事件B 发生的概率;同理可解释P (B )P (A |B ).将上式进行变换得到

P (B |A )=P(B )P(A |B )/P (A )

其中,先验信念(belief)B =(W 1,W 2,,,W i ,,)T

,A 是实际观察到的数据(actual data).

P(B )即为贝叶斯先验分布(prior distribution),这里假定它服从高斯分布,均值为L =(L 1,L 2,,,L i ,,)T ,协方差为Cov R 21

R 1R 2,R 1R n R 1R 2

R 22,R 2R n s

s s s R 1R n R 2R n ,R 2n

先验的确定(specification)即为对L 和协方差的确定.

先验只是人的一种经验知识和信念,需要在实践中进行积累,特别是对可靠性模型的特性、相关性要进行深入分析才能确定,也要根据软件工程项目的特点、计划和测试方案来确定.当然在没有先验的情况下,该混合模型从机理上仍能正确工作(取w 1=w 2=,=w n ),但必须有足够的实际数据.

P (B |A )即为贝叶斯后验(posterior),即要计算的(W 1,W 2,,,W i ,,),它的意义为:先验信念B 在观察到实际数据A 后得到更新(updating),P(B |A )即为更新的结果.P(A |B)即为似然(likelihood),它的

意义为:在先验信念B 的条件下,观察数据A 出现的概率.它的形式为F n

i =1

P (A |B ,t 1,t 2,,,t m )的多元高斯分布.P(A )为归一化调整(normalization),主要保证后验仍为概率形式,即0[P (B |A )[ 1.上面提到的实际观察数据可以是下列形式之一:1均方差(mean square error);omean komolgorov distance;?pre -quential likelihood.

1.4 部分贝叶斯分析

全贝叶斯分析需要人为地规定先验分布(前面假定它服从高斯分布),这仅仅是一种先验的经验,有时不尽合理.而且由此推得的后验可能是一种非封闭结构,数学处理上有一定的难度.所以这里采用部分贝叶斯分析方法作为补充,它不需要人为规定分布,但仍必须确定均值、方差等先验信念.

假定有两簇随机变量B=(W 1,W 2,,,W r )和A =(A 1,A 2,,,A s ),其中B 为先验信念,A 是观察的实际数据,希望通过观察A 来改进对先验信念B 的估计.在给定A 的情况下,调整后的B 应该是a T i A ,

在E ((B i -a T i A )2)最小时即得到a T i A ,具体调整办法为

E A (B )=E (B )+Cov (B ,A )Var (A )-1(A -E (A ))

而Var A (B )=Var (B -E A (B ))=Var (B )-Cov (B ,A )(Var (A ))-1Cov (A ,B )

2 结语

本文从软件可靠性工程实践中存在的问题出发,提出了贝叶斯混合模型的解决办法和思想.从前面各节的论证可知:该混合模型有着扎实的理论基础、有现实的需要、有很好的应用前景及模型互补性的前提,可以解决该领域存在的理论与实践脱节的问题.

参考文献:

[1] Broklehurst S,Chan P Y,Littlew ood B,et al.Recalibrating software reliability m odels[J].IEEE Transaction on Softw are Engineeri ng,1990,

16(4):458-459.

[2] Phame H.Reliability handbook[M ].New York:Springer Verlag,2002.

[3] Lyu M R,Nikora A.Applying reliability models more effectively[J ].IEEE Softw are,1992,(7):45-52.

[4] Barber D.Bayesian method:Computer practical[EB/OL].http:M ww w.mbfys.kun.nl/~davidb,2000-05-10.1185 第10期邹丰忠,等:软件可靠性多模型综合评估

串并联可靠性模型的应用及举例

上海电力学院 选修课大型作业 课程名称:机电系统可靠性与安全性设计报告名称:串并联可靠性模型的应用及举例院系:能源与机械工程学院 专业年级:动力机械140101 学生姓名:潘广德 学号:14101055 任课教师:张建平教授 2015年4月28日

浅谈串并联可靠性模型的应用并举例 摘要 详细阐述了机械可靠性工程中串并联可靠性模型的应用,并详细的举例说明。系统可靠性与组成单元的数量、单元可靠性以及单元之间的相互联接关系有关。以便于可靠性检测,首先讨论了各单元在系统中的相互关系。在可靠性工程中,常用可靠性系统逻辑图表示系统各单元之间的功能可靠性关系。在可靠性预测中串并联的应用及其广泛。必须指出,这里所说的组件相互关系主要是指功能关系,而不是组件之间的结构装配关系。 关键词:机械可靠性串联并联混联应用举例 0前言 学技术的发展,产品质量的含义也在不断的扩充。以前产品的质量主要是指产品的性能,即产品出厂时的性能质量,而现在产品的质量已不仅仅局限于产品的性能这一指标。目前,产品质量的定义是:满足使用要求所具备的特性,即适用性。这表明产品的质量首先是指产品的某种特性,这种特性反应这用户的某种需求。概括起来,产品质量特性包括:性能、可靠性、经济性和安全性四个方面。性能是产品的技术指标,是出厂时产品应具有的质量属性,显然能出厂的产品就赢具备性能指标;可靠性是产品出厂后所表现出来的一种质量特性,是产品性能的延伸和扩展;经济性是在确定的性能和可靠性水平下的总成本,包括购置成本和使用成本两部分;安全性则是产品在流通和使用过程中保证安全的程度。在上述产品特性所包含的四个方面中,可靠性占主导地位。性能差,产品实际上是废品;性能好,也并不能保证产品可靠性水平高。反之,可靠性水平高的产品在使用中不但能保证其性能实现,而且故障发生的次数少,维修费用及因故障造成的损失也少,安全性也随之提高。由此可见,产品的可靠性是产品质量的核心,是生产厂家和广大用户所努力追求的目标。 1串联系统可靠性模型的工作原理 如果一个系统中的单元中只要有一个失效该系统就失效,则这种系统成为串联系统。或者说,只有当所有单元都正常工作时,系统才能正常工作的系统称为串联系统。 设系统正常工作时间(寿命)这一随机变量为t,则在串联系统中,要使系统能正常工作运行,就必须要求每一个单元都能正常工作,且要求每一单元的正常工作时间都大于系统正常工作时间t。假设各个单元的失效时间是相互独立的,按照概率的乘法定理和可靠性定

软件可靠性模型地的综述

软件可靠性模型综述 可靠性是衡量所有软件系统最重要的特征之一。不可靠的软件会让用户付出更多的时间和金钱, 也会使开发人员名誉扫地。IEEE 把软件可靠性定义为在规定条件下, 在规定时间内, 软件不发生失效的概率。该概率是软件输入和系统输出的函数, 也是软件中存在故障的函数, 输入将确定是否会遇到所存在的故障。 软件可靠性模型,对于软件可靠性的评估起着核心作用,从而对软件质量的保证有着重要的意义。一般说来,一个好的软件可靠性模型可以增加关于开发项目的效率,并对了解软件开发过程提供了一个共同的工作基础,同时也增加了管理的透明度。因此,对于如今发展迅速的软件产业,在开发项目中应用一个好的软件可靠性模型作出必要的预测,花费极少的项目资源产生好的效益,对于企业的发展有一定的意义。 1软件失效过程 1.1软件失效的定义及机理 当软件发生失效时,说明该软件不可靠,发生的失效数越多,发生失效的时间间隔越短,则该软件越不可靠。软件失效的机理如下图所示: 1)软件错误(Software error):指在开发人员在软件开发过程中出现的失误,疏忽和错误,包括启动错、输入范围错、算法错和边界错等。 2)软件缺陷(Software defect):指代码中存在能引起软件故障的编码,软件缺陷是静态

存在的,只要不修改程序就一直留在程序当中。如不正确的功能需求,遗漏的性能需求等。3)软件故障(Software fault):指软件在运行期间发生的一种不可接受的内部状态,是软件缺陷被激活后的动态表现形式。 4)软件失效(Software failure):指程序的运行偏离了需求,软件执行遇到软件中缺陷可能导致软件的失效。如死机、错误的输出结果、没有在规定的时间内响应等。 从软件可靠性的定义可以知道,软件可靠性是用概率度量的,那么软件失效的发生是一个随机的过程。在使用一个程序时,在其他条件保持一致的前提下,有时候相同的输入数据会得到不同的输出结果。因此,在实际运行软件时,何时遇到程序中的缺陷导致软件失效呈现出随机性和不稳定性。 所有的软件失效都是由于软件中的故障引起的,而软件故障是一种人为的错误,是软件缺陷在不断的测试和使用后才表现出来的,如果这些故障不能得到及时有效的处理,便不可避免的会造成软件失效。而一个软件中存在的软件错误和缺陷总数是无法确定的,也不可能被完全排除掉,有时候排除掉一个故障甚至会引起更多的故障。 所以在软件开发周期中,软件错误是不可避免的,但可以通过学习改进,不断吸取经验教训,尽量减少程序中的错误特别是重大错误的数量。在测试阶段,测试人员应尽可能多的检测并排除掉软件中的故障,从而减少软件失效强度,提高软件的可靠性和质量。 1.2提高软件可靠性的途径 软件中的故障会导致软件功能不能正常实现,降低了软件的可靠度。软件故障一般是软件开发各阶段人为造成的,大概包括需求分析定义错误、设计错误、编码错误、测试错误和文档错误等。 因此要想获得高可靠性的软件,就要和软件中的故障做斗争。有以下三种直接的方式来

软件可靠性模型综述(完整资料).doc

【最新整理,下载后即可编辑】 软件可靠性模型综述 可靠性是衡量所有软件系统最重要的特征之一。不可靠的软件会让用户付出更多的时间和金钱, 也会使开发人员名誉扫地。IEEE 把软件可靠性定义为在规定条件下, 在规定时间内, 软件不发生失效的概率。该概率是软件输入和系统输出的函数, 也是软件中存在故障的函数, 输入将确定是否会遇到所存在的故障。 软件可靠性模型,对于软件可靠性的评估起着核心作用,从而对软件质量的保证有着重要的意义。一般说来,一个好的软件可靠性模型可以增加关于开发项目的效率,并对了解软件开发过程提供了一个共同的工作基础,同时也增加了管理的透明度。因此,对于如今发展迅速的软件产业,在开发项目中应用一个好的软件可靠性模型作出必要的预测,花费极少的项目资源产生好的效益,对于企业的发展有一定的意义。 1软件失效过程 1.1软件失效的定义及机理 当软件发生失效时,说明该软件不可靠,发生的失效数越多,发生失效的时间间隔越短,则该软件越不可靠。软件失效的机理如下图所示:

1)软件错误(Software error):指在开发人员在软件开发过程中出现的失误,疏忽和错误,包括启动错、输入范围错、算法错和边界错等。 2)软件缺陷(Software defect):指代码中存在能引起软件故障的编码,软件缺陷是静态存在的,只要不修改程序就一直留在程序当中。如不正确的功能需求,遗漏的性能需求等。 3)软件故障(Software fault):指软件在运行期间发生的一种不可接受的内部状态,是软件缺陷被激活后的动态表现形式。 4)软件失效(Software failure):指程序的运行偏离了需求,软件执行遇到软件中缺陷可能导致软件的失效。如死机、错误的输出结果、没有在规定的时间内响应等。 从软件可靠性的定义可以知道,软件可靠性是用概率度量的,那么软件失效的发生是一个随机的过程。在使用一个程序时,在其他条件保持一致的前提下,有时候相同的输入数据会得到不同的输出结果。因此,在实际运行软件时,何时遇到程序中的缺陷导致软件失效呈现出随机性和不稳定性。 所有的软件失效都是由于软件中的故障引起的,而软件故障是一种人为的错误,是软件缺陷在不断的测试和使用后才表现出来的,如果这些故障不能得到及时有效的处理,便不可避免的会

机械可靠性综述

机械可靠性设计综述 摘要:可靠性优化设计是在常规优化设计的基础上,结合可靠性设计理论发展起来的一种有效的优化设计方法。本文在总结现有文献的基础上对机械可靠性优化设计进行了综述,系统阐述了机械可靠性、可靠性设计、可靠性优化设计及可靠性试验的理论及方法。 关键词:可靠性;优化设计;可靠性试验 Review of Optimization Design of Mechanical Reliability REN Ju-peng (School of Mechanical Engineering and Automation, Northeastern University, Student ID: 1270174) Abstract:On the basis of traditional optimization design, combined with the theory of reliability design, reliability optimization design is an effective optimization design method. In this paper, the existing literatures are firstly summarized, then the theory and method of mechanical reliability, reliability design, reliability optimization design and reliability test are systematically reviewed. Key words:reliability; optimization design; reliability test 随着现代工业技术的飞速发展,机械产品日趋复杂化、大型化、高参数化,使产品发生故障的机会增多,因而,可靠性作为产品质量的主要指标,愈来愈受到工程界的重视。机械可靠性,是指机械产品在规定的使用条件、规定的时间内完成规定功能的能力。机械的可靠性是机械设计的主要目的之一,有效地增强产品质量、降低产品成本、减轻整机质量、提高可靠性和作业效率是可靠性设计的主要目标。随着工业技术的发展,机械产品性能参数日益提高,结构日趋复杂,使用场所更加广泛,产品的性能和可靠性问题也就越来越突出。机械可靠性设计的基本任务是在故障物理学研究的基础上,结合可靠性试验以及故障数据的统计分析,提供实际计算的数学力学模型和方法及实践。 科技研究人员和工程设计人员积极投入到可靠性工程的研究与实践之中,取得了可喜的成果。张义民[1]结合现代数学力学理论,系统地阐明机械可靠性设计、机械动态可靠性设计、机械可靠性优化设计、机械可靠性灵敏度设计、机械可靠性稳健设计等可靠性设计理论与方法内涵与递进。陈静等[2]阐述了机械产品优化设计及可靠性的相关理论,介绍了可靠性优化设计的应用及发展现状,并介绍了机械行业相关的软件应用情况。喻天翔等[3]对当前机械可靠性的特点和争议进行介绍,从Bayesian理论、FMECA和疲劳可靠性试验三个方面总结了机械可靠性试验技术相关的重要理论问题及其发展,并阐述了可靠性增长试验、加速试验和微机械可靠性试验技术的国内外发展,总结了机械可靠性试验技术研究存在的问题及其发展趋势。 本文将在上述文献的基础上对机械可靠性优化设计进行综述,系统阐述机械可靠性、可靠性设计、可靠性优化设计及可靠性试验的理论及方法。 1可靠性设计 1.1 可靠性设计 传统的机械设计方法认为零件的强度和应力都是单值,只要计算出的安全系数大于规定的安全系数,就认为零件是安全的,因而设计过程中忽略了各设计参数的随机性。可靠性设计将零件的应力和强度作为随机变量,认为应力受到各种环境因素(温度、腐蚀、粒子辐射等)的影响,具有一定的分布规律;强度受材料的性能、工艺环节的波动和加工精度等的影响,也是具有一定的分布规律。可靠性设计认为所设计的任一机械存在着一定的失效可能性,设计时根据需要预先控制的失效概率或可靠度,考虑各参数的随机性及分布规律,以反映出零部件的实际工作状况。 产品的可靠性表示产品在规定使用条件和使用期限内,保持其正常技术性能完成规定功能的能力。可靠性设计的一个目标是计算可靠度,可靠度是指产品在规定的条件下和规定的时间内,完成规定功能的概率。其表达式为: ()0 () x g X R f X dX > =? 式中f x(X)为基本随机参数向量 T 12 (,,) n X X X X =???的联合概率密度;g(X)为状态函数,可表示零件的不同状态:g(X)>0为安全状态,

19软件可靠性模型研究综述_王二威

软件可靠性模型研究综述 王二威 (北京理工大学珠海学院,广东 珠海 519088) 摘 要:本文对软件可靠性经典模型、模型选择、普适模型的研究进行了归纳和述评,提出了软件可靠性综合预测框架,给出了软件可靠性综合预测进一步的研究方向。 关键词:软件可靠性;经典模型;综合预测;框架研究 中图分类号:TP311 文献标识码:A Review of Research on Software Reliability Models WANG Erwei (Beijing Institute of Technology ,Zhuhai ,Zhuhai 519088,China ) Abstract:In this paper,the classical model of software reliability,model selection,and the research of the universal model were summarized and reviewed.The framework of software reliability comprehensive prediction was proposed.The further research directions of software reliability comprehensive prediction were proposed. Keywords:software reliability;classical model;comprehensive prediction;framework research 文章编号:2096-1472(2016)-02-01-02 1 引言(Introduction) 软件已经成为影响国民经济、军事、政治乃至社会生活的重要因素。自20世纪60年代“软件危机”出现之后,越来越多的学者开始关注软件可靠性的定量评估和预测。软件可靠性覆盖整个软件开发过程,与软件工程密切相关,它源于工程,又服务于工程。在新技术、新应用(如web软件、移动APP等等)不断涌现的当前,重新审视软件开发和应用环境,开展软件可靠性预测研究,有助于推动软件工程项目的实践,降低软件错误率,提升软件质量,从而保障软件所支撑的工程项目的高效完成,推动我国软件产业的持续发展。 本文对软件可靠性模型研究的相关文献进行了梳理,对前人的研究成果进行了归纳,构建了新计算范式下软件可靠性综合预测框架,提出了软件可靠性综合预测的研究方向。 2 经典软件可靠性模型(Classical software reliability model) 软件可靠性建模的基本方法是:以历史失效数据为基础,对软件失效规律进行趋势拟合,进而预测未来的失效可能。早期软件可靠性的研究是基于概率统计的思想,将软件失效过程看作一个随机过程,从Hudson的工作开始,到1971年J-M模型的发表,再到今天,已公开发表了几百种模型[1](此类模型称之为“经典模型”)。 经典模型存在两个明显的缺陷:第一,在对软件可靠性进行评估预测时都有些固定不变的假设,而这些假设无从证明;第二,模型只考虑输入的随机性,而软件在实际运行时却可能受到各种随机因素影响,使得软件失效出现的情况比较复杂多变。而用某一个固定的失效模式去解释复杂多变的情况,显然是不合适的。实践证明,经典模型的应用存在不 一致性的问题,对一个软件有很好的适用性而对其他的软件则效果很差[2,3],此外预测精度也不够理想。 针对经典模型的不一致性问题,研究者们从两个方面开展了进一步的研究:一是设计一套行之有效的模型选择方法,能够让工程人员从众多的软件可靠性经典模型中选择出最适合实施项目的模型,二是建立一个普适模型。 3 模型选择的研究(Research on model selection) 模型选择策略基本可以归纳为两类:一类是基于模型假设与软件环境的相似性,一类是基于对历史失效数据预测性能的评价。 (1)基于模型假设与软件环境的相似性的模型选择。Andersson、Goel、Sharma等人分别提出了模型假设相似性来选择合适模型的方法[4],基于假设矩阵的模型选择技术实践结果也并不理想[5]。 (2)基于对历史失效数据预测性能的评价。该类策略的模型选择技术依赖于对模型预测性能的评价,1983年,Musa 等人提出了“预测有效性、模型能力、假设质量、模型适用性、简单性”等五个软件可靠性模型评价准则,在学术界获得了较大范围的认可。之后的研究人员不断拓展软件可靠性的影响变量范围,提出了模型拟合性、模型偏差、模型偏差趋势、覆盖度、预测数量、模型噪声等等众多的评价准则,力图从多个角度对软件可靠性模型进行评价。 关于采用何种评价方法来选择模型,一是基于数据挖掘、机器学习的方法[6],汪浩等人提出了基于聚类思想的软件可靠性模型选择,吴勤、吴晨、朱磊等人采用Kohonen网络、BP神经网络、决策树等方法对汪浩等人的研究成果进行了改进,在一定程度上提高了分类系统的准确性,李克文等 软件工程 SOFTWARE ENGINEERING 第19卷第2期2016年2月 V ol.19 No.2Feb. 2016

给水管网系统建模及其可靠性分析报告

给水管网系统建模及其可靠性分析 摘要 给水管网系统是一个拓扑结构复杂、规模庞大、用水变化随机性强、运行控制为多目标的网络系统。管网建模是仿真给水管网系统动态工况的最有效的方法,是为模拟管网系统建立数学模型的过程。模拟容主要是图形模拟、状态模拟和参数模拟。而建立模型并不是一蹴而就的,要不断的开发、更新和完善。在管网优化设计的四个方面中,保证给水系统可靠性是给水设计的主要容之一。随着现代科学技术的快速发展,可靠性工程理论日益受到广泛重视。 关键词:给水管网系统建模;管网优化设计:管网系统可靠性 一、引言 我国各城市的市政公用输配系统(供水、供气)是城市重要的基础设施之一,也是城市建设和可持续性发展的制约因素,这些工程网络在系统规划上有许多方面存在着共性。 对给水管网系统进行建模,一方面对于大量复杂、繁琐的问题能够取得快速、准确的计算结果,大大提高了工作效率,使得以前很少或者不可能进行的大型工程量计算问题和多方案比较问题得以顺利解决。另一方面,可以对输配系统的工作状态(水力、水质)进行比较准确的模拟仿真,尤其当系统中有较完善的设施时,更可以对系统的实时工况进行在线模拟,这样不仅可为系统的优化运行、调度提供很好的基础条件,为系统的改扩建提供可靠的依据,也为给水管网水质预测和安全输配提供支持。 对给水管网系统建模完成后应注意管网的优化设计,包括四个方面:水压、水量的保证性;水质的安全性;可靠性和经济性。随着现代科学技术的快速发展,作为系统工程之一的可靠性工程理论日益受到广泛重视。在近代,各种工程系统、构筑物设计时,已经开始应用可靠性的数学理论。可靠性和其他技术经济指标一样,成为评价系统优劣的主要指标。可靠性问题之所以得到重视,是因为系统、构筑物、设备相互有关,任一部分损坏可能导致整个系统的故障,而整个系统的故障,例如给水系统发生故障,将对社会和人民生活带来损害。而故障的发生多数为随机事件,一般无法预料和预防,因此给水系统可靠性具有概率的性质。在生活节奏日益加快的今天,确保给水管网系统的正常运行具有十分重要的意义。

软件可靠性多模型综合评估

收稿日期:2002-05-30 作者简介:邹丰忠(1962-),男,湖北麻城人,副教授,工学博士. 软件可靠性多模型综合评估 邹丰忠,徐仁佐 (武汉大学软件工程国家重点实验室,湖北武汉 430072) 摘要:软件可靠性工程领域一直存在模型很难应用于实际的问题.不同的软件可靠性模型对同一个软件工程项 目的估计差别极大.为此,探讨了软件可靠性估计的稳健方法,研究了多模型的贝叶斯自动混合与选择的理论, 其重点是要探讨贝叶斯先验表达及多模型的混合机制,以解决上述难题. 关键词:软件工程;软件可靠性;贝叶斯分析;先验分布 中图分类号:T P 311 文献标识码:A 文章编号:0253-374X(2002)10-1183-03 Multi -model Assessment of Software Reliability ZO U Feng -z hong,X U Ren -z uo (State Key Lab of Softw are Engi neering,Wu han University,Wuhan 430072,China) Abstract :There has existed for a long time the difficulty in applying reliability models in practice of reliability eng ineering of softw are.Which model should we trust among about 100available reliability models with differ -ent predictions for a sing le piece of softw are under consideration?With the estimates of a model,how much confidence do w e have in believing that the model predicts the truth?Indeed,software practitioners are in a dilemma in m aking decisions.In this paper,an effort is made in try ing to provide a solution by ex ploring the robust inference methodology,and by investigating into the machinery for model mixing and selection,and the Bayes prior structure. Key words :softw are engineering;softw are reliability;Bayes analysis;prior distribution 随着我国软件产业的迅猛发展,开发相应软件可靠性技术的需求不断增加,软件可靠性理论的研究越来越受到科学界的重视.软件可靠性源于传统工业的硬件可靠性,但由于软件的抽象性及高度复杂性等特点,软件可靠性与传统硬件可靠性有本质的区别.自1973年IEEE 软件可靠性年会召开以后,软件可靠性成为IEEE,ACM ,AIAA,M RI 及其它学术、工业和政府部门的主要研究题目之一,而美国、英国在该领域的研究尤其活跃.在美国,DoD 及M otorola 等对软件可靠性模型应用都作出了具体规定和要求,在马里兰大学统计系设有可靠性研究中心,DoD,NASA,RADC 等均有软件可靠性研究机构;英国伦敦城市大学的软件可靠性中心也在进行各种军用、工业及商用等软件可靠性研究.亚洲地区的香港自2000年起开始举办了亚太高品质软件学术会议.与国外相比,国内软件可靠性研究机构比较零散,力量相对薄弱. 软件可靠性模型分为两大类:一类是基于软件规模、结构及复杂度的模型,如H alstead 模型、M ills 模型等,它们更多地应该归为软件质量模型一类,对软件可靠性的预计能力有限;另一类是基于软件失效时间的模型,如JM 模型、LV 模型、GO NHPP 模型,这三个模型形成软件可靠性理论研究的骨架,另外还有M usa 的执行时间模型等. 在目前众多的软件可靠性模型中,其预测结果还很不尽如人意.对此文献[1]指出,目前还没有能被推荐为广泛应用的软件可靠性模型.现有模型的精度具有局部性,即模型往往只对某一个或几个软件工程项 第30卷第10期 2002年10月同 济 大 学 学 报JOURNAL OF T ONGJI UN IVERSIT Y Vol.30No.10 Oct.2002

可靠性建模资料整理

软件可靠性建模 1模型概述 1.1软件可靠性的定义 1983年美国IEEE计算机学会对“软件可靠性”作出了明确定义,此后该定义被美国标准化研究所接受为国家标准,1989年我国也接受该定义为国家标准。该定义包括两方面的含义: (1)在规定的条件下,在规定的时间内,软件不引起系统失效的概率; (2)在规定的时间周期内,在所述条件下程序执行所要求的功能的能力; 其中的概率是系统输入和系统使用的函数,也是软件中存在的故障的函数,系统输入将确定是否会遇到已存在的故障(如果故障存在的话)。 软件失效的根本原因在于程序中存在着缺陷和错误,软件失效的产生与软件本身特性、人为因素、软件工程管理都密切相关。影响软件可靠性的主要因素有软件自身特性、人为因素、软件工程管理等,这些因素具体还可分为环境因素、软件是否严密、软件复杂程度、软件是否易于用户理解、软件测试、软件的排错与纠正以及软件可靠性工程技术研究水平与应用能力等诸多方面。 1.2软件可靠性建模思想 建立软件可靠性模型旨在根据软件可靠性相关测试数据,运用统计方法得出软件可靠性的预测值或估计值,下图给出了软件可靠性建模的基本思想。

图软件可靠性建模基本思想 从图中可以看出软件失效总体来说随着故障的检出和排除而逐渐降低,在任意给定的时间,能够观测到软件失效的历史。软件可靠性建模的目标如下:(1)预测软件系统达到预期目标所还需要的资源开销及测试时间;(2)预测测试结束后系统的期望可靠性。1.3软件可靠性建模基本问题 软件可靠性建模需要考虑以下基本问题: (1)模型建立 模型建立指的是怎样去建立软件可靠性模型。一方面是考虑模型建立的角度,例如从时间域角度、数据域角度、将软件失效时刻作为建模对象,还可以将一定时间内软件故障数作为建模对象;另一方面是考虑运用的数学语言,例如概率语言。 (2)模型比较 在软件可靠性模型分类的基础上,对不同的模型分析比较,并对模型的有效性、适用性、简洁性等进行综合权衡,从而确定出模型的适用范围。 (3)模型应用 软件可靠性模型的应用需要从以下两方面考虑:一是给定了软件的开发计划,如何选择适当的模型;二是给定了软件可靠性模型,如何指导软件可靠性工程实践。 软件系统的失效历史可以通过对测试得到的失效数据分析获得,而实际情况中,人们最为关注的是软件未来的失效趋势。软件可靠性模型基本都是建立在一定的假设基础之上,所以,即使花费了大量的时间和精力对软件的可靠性进行预计,也只是一种预测,这

软件可靠性的评价准则

软件可靠性的评价准则 迄今为止,尚无一个软件可靠性模型对软件的不同特性和不同使用环境都有效。已公开发表的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@@

动态系统的可靠性分析综述

动态系统的可靠性分析综述 摘要:可靠性设计的基本任务是在故障物理学研究的基础上,结合可靠性试验以及故障数据的统计分析,提供实际计算的数学力学模型和方法及实践。这样就可以在产品的研制阶段,估计或预测产品在规定工作条件下的工作能力状态或寿命,保证产品具有所需的可靠性。传统可靠性分析的概念只能描述静态逻辑关系,不能满足现代复杂动态系统可靠性分析的需要。在给出动态系统状态空间结构和结构函数的基础上,提出失效序列和失效丛的概念描述动态系统的故障模式,这一概念扩展了传统可靠性分析的概念,将割集、蕴含集等作为其在静态情形的特例。给出动态系统部件的概率重要度、结构重要度以及关键重要度的概念,用实例对提出的有关概念进行了说明。 关键词:动态系统;性能可靠性;随机因素;模块化 0 前言 可靠性是产品质量的核心指标之一。在全球化背景下,性能、可靠性、价格及服务等成为产品竞争不可或缺的要素,未来市场将由具有高可靠性产品的企业所主导。 产品固有可靠性是由设计阶段决定的。但是,传统可靠性建模方法存在诸多不足,难以准确分析和求解复杂系统的可靠性指标[1]。例如:可靠性框图(RBD)和故障树分析(FTA)缺乏描述系统动态运行过程的能力,马尔科夫(Markov)模型建模过程繁琐,模型求解和分析困难。近年来,动态可靠性建模引起人们关注,人们提出了动态故障树、GO-FLOW法、随机Petri网(Stochastic Petri Net,SPN)等动态可靠性建模方法[2~5]。 随机Petri网着眼于系统状态及其动态变化,兼有图形化建模能力和数学计算能力,成为复杂系统调度、控制和性能评价研究的有效工具[6]。但是随机Petri 网存在状态爆炸问题,造成复杂系统可靠性指标的求解困难。蒙特卡洛(Monte Carlo)仿真弥补了SPN在模型计算求解方面的不足

文献综述-基于故障树的可靠性分析

文献综述 基于故障树的可靠性分析 一.故障树研究 1.什么是故障树图 故障树图(或者负分析树)是一种逻辑因果关系图,它根据元部件状态(基本事件)来显示系统的状态(顶事件)。就像可靠性框图(RBDs),故障树图也是一种图形化设计方法,并且作为可靠性框图的一种可替代的方法。 一个故障树图是从上到下逐级建树并且根据事件而联系,它用图形化“模型”路径的方法,使一个系统能导致一个可预知的,不可预知的故障事件(失效),路径的交叉处的事件和状态,用标准的逻辑符号(与,或等等)表示。在故障树图中最基础的构造单元为门和事件,这些事件与在可靠性框图中有相同的意义并且门是条件。 [编辑]故障树和可靠性框图(RBD) FTD和RBD最基本的区别在于RBD工作在“成功的空间”,从而系统看上去是成功的集合,然而,故障树图工作在“故障空间”并且系统看起来是故障的集合。传统上,故障树已经习惯使用固定概率(也就是,组成树的每一个事件都有一个发生的固定概率)然而可靠性框图对于成功(可靠度公式)来说可以包括以时间而变化的分布,并且其他特点。 2.故障树分析方法 故障数分析的方法有定性分析和定量分析两种: 定性分析是找出导致顶事件发生的所有可能的故障模式,既求出故障的所有最小割集(MCS). 定量分析主要有两方面的内容:一是由输入系统各单元(底事件)的失效概率求出系统的失效概率;二是求出各单元(底事件)的结构重要度,概率重要度和关键重要度,最后可根据关键重要度和关键重要度,最后可根据关键重要度,概率重要度和关键重要度,最后可根据关键重要度的大小排序出最佳故障诊断和修理顺序,同时也可作为首先改善相对不大可靠的单元的数据。 3.故障树分析的基本程序 (1)熟悉系统:要详细了解系统状态及各种参数,绘出工艺流程图或布置

几种常见软件可靠性测试方法的综述及的应用对比(精)

几种常见软件可靠性测试方法综述及应用对比 上海交通大学陈晓芳 [摘要]软件可靠性测试是软件可靠性工程的一项重要工作内容,是满足软件可靠性要求、评价软件可靠性水平及验证软件产品是否达到可靠性要求的重要途径。本文探讨、研究了软件可靠性测试的基本概念,分析、对比了几种软件可靠性测试主要方法的优缺点。 [关键词]软件可靠性软件可靠性测试软件测试方法 引言 软件可靠性工程是指为了满足软件的可靠性要求而进行的一系列设计、分析、测试等工作。其中确定软件可靠性要求是软件可靠性工程中要解决的首要问题,软件可靠性测试是在软件生存周期的系统测试阶段提高软件可靠性水平的有效途径。各种测试方法、测试技术都能发现导致软件失效的软件中残存的缺陷,排除这些缺陷后,一般来讲一定会实现软件可靠性的增长,但是排除这些缺陷对可靠性的提高的作用却是不一样的。其中,软件可靠性测试能最有效地发现对可靠性影响大的缺陷,因此可以有效地提高软件的可靠性水平。 软件可靠性测试也是评估软件可靠性水平,验证软件产品是否达到软件可靠性要求的重要且有效的途径。 一、软件可靠性测试概念 “测试”一般是指“为了发现程序中的错误而执行程序的过程”。但是在不同的开发阶段、对于不同的人员,测试的意义、目的及其采用的方法是有差别的。在软件开发的测试阶段,测试的主要目的是开发人员通过运行程序来发现程序中存在的缺陷、错误。而在产品交付、验收阶段,测试主要用来验证软件产品是否达到用户的要求。或者说,对于开发人员,测试是发现缺陷的一种途径、手段,而对于用户,测试则是验收产品的一种手段。

二、软件测试方法 软件测试方法有以下几个主要概念:白盒测试、黑盒测试、灰盒测试。 白盒测试(W h ite-box testing或glass-box testing是通过程序的源代码 进行测试而不使用用户界面。这种类型的测试需要从代码句法发现内部代码在算法,溢出,路径,条件等等中的缺点或者错误,进而加以修正。 黑盒测试(B lack-box testing是通过使用整个软件或某种软件功能来严格地测试,而并没有通过检查程序的源代码或者很清楚地了解该软件或某种软件功能的源代码程序具体是怎样设计的。测试人员通过输入他们的数据然后看输出的结果从而了解软件怎样工作。通常测试人员在进行测试时不仅使用肯定出正确结果的输入数据,而且还会使用有挑战性的输入数据以及可能结果会出错的输入数据以便了解软件怎样处理各种类型的数据。 灰盒测试(Gray-box testing就像黑盒测试一样是通过用户界面测试,但是测 试人员已经有所了解该软件或某种软件功能的源代码程序具体是怎样设计的,甚至于还读过部分源代码,因此测试人员可以有的放矢地进行某种确定的条件或功能的测试。这样做的意义在于:如果你知道产品内部的设计和透过用户界面对产品有深入了解,你就能够更有效和深入地从用户界面来测试它的各项性能。 1、白盒测试 白盒测试又称结构测试,透明盒测试、逻辑驱动测试或基于代码的测试。白盒测试是一种测试用例设计方法,盒子指的是被测试的软件,白盒指的是盒子是可视的,你清楚盒子内部的东西以及里面是如何运作的。 白盒的测试用例需要做到: (1保证一个模块中的所有独立路径至少被使用一次; (2对所有逻辑值均需测试true和false;

软件可靠性模型算法分析与评价

尹晶杰:软件可靠性模型的算法分析与评价 139 软件可靠性模型算法分析与评价 尹晶杰 摘要:本文首先对三个经典的软件可靠性模型(J-M 、G-O 、S-W)进行参数计算的数值算法设计,在此基础上通过可靠性数学关系得到失效间隔时间的密度函数、分布函数、可靠性函数以及失效率函数。其次,分别采用未确知模型、J-M 模型、G-O 模型、S-W 模型针对具体实例的失效时间进行预测评估,并对各模型的可靠性评估曲线进行描绘。第三,利用Delphi 开发软件设计并开发完成了一个简易的软件可靠性评估工具。该工具嵌入了包括未确知模型在内的四个软件可靠性模型(J-M 模型、G-O 模型、S-W 模型),能够输出模型评估结果和评估曲线,并具有计算各模型评价准则值(KS 值、PL 值、模型噪声)和绘制用于模型评价的PLR 图、-u 结构图、 -y 结构图的功能。 关键词:软件可靠性;软件可靠性模型 Abstract: Here originally in the paper, model in three software reliability model (J-M, G-O , S-W ) at first ask the parameter algorithm to be designed , draw the parameter of each model, receive invalid density function of spacing interval , distribute function , reliability function and software failure rate function through dependability mathematics relation on this basis.Secondly, on the basis of the above function, including software reliability based on unascertained theory model , J-M model , G-O model , S-W model predict the assessment to the failure time of the concrete instance separately, design through Delphi one simple interface describe to every reliability assessment curve of model.Moreover , utilize Delphi to designed and development a simple software reliability estimation tool. This tool inlayed three traditional software reliability models: J-M model, G-O model, S-W model and the new model put forward in this paper. It is not only can exports the estimation results but also can provides assessment curve , including calculating every model appraise criterion value (KS value , PL value , model noise ) and PLR chart that is used to model comparison, u-plot and the y- plot. Keywords: Software reliability Software reliability model 1. 基本概念 1.1 软件可靠性的定义 关于软件可靠性的确切含义,学术界有过长期的争论,经过长期的争论和研究,1983年美国IEEE 计算机学会对 “软件可靠性”一次正式做出如下定义: (1) 在规定条件下,在规定的时间内,软件不引起系统失效的概率,该概率是系统输入和系统使用的函数,也是软件中存在的错误的函数;系统输入将确定是否会遇到已存在的错误(如果错误存在的话); (2) 在规定的时间周期内,在所述条件下程序执行所要求的功能的能力。 1.2 软件可靠性参数 下面对几个主要的软件可靠性参数进行介绍: (1) 可靠度 软件可靠度R 是指软件在规定的条件下、规定的时间段内完成预定的功能的概率。或者说是软件在规定时间内无失效发生的概率。 用随机变数ξ表示从软件运行开始到系统失效所经历的时间,用)(t F ξ表示ξ的分布函数,用t 表示任意给定的时刻,用)(t R ξ表示软件在t 时刻的可靠度,则数学公式如下: {})(1)(t F t P t R r ξξξ-=>= (1-1) (2) 失效率

什么是软件可靠性

关于软件可靠性 什么的软件可靠性? 软件可靠性是指在给定时间内,特定环境下软件无错运行的概率 软件可靠性的内容 软件可靠性包含了以下三个要素: 1.规定的时间 软件可靠性只是体现在其运行阶段,所以将“运行时间”作为“规定的时间”的度量。“运行时间”包括软件系统运行后工作与挂起(开启但空闲)的累计时间。由于软件运行的环境与程序路径选取的随机性,软件的失效为随机事件,所以运行时间属于随机变量。 2.规定的环境条件 环境条件指软件的运行环境。它涉及软件系统运行时所需的各种支持要素,如支持硬件、操作系统、其它支持软件、输入数据格式和范围以及操作规程等。不同的环境条件下软件的可靠性是不同的。具体地说,规定的环境条件主要是描述软件系统运行时计算机的配置情况以及对输入数据的要求,并假定其它一切因素都是理想的。有了明确规定的环境条件,还可以有效判断软件失效的责任在用户方还是研制方。 3.规定的功能 软件可靠性还与规定的任务和功能有关。由于要完成的任务不同,软件的运行剖面会有所区别,则调用的子模块就不同(即程序路径选择不同),其可靠性也就可能不同。所以要准确度量软件系统的可靠性必须首先明确它的任务和功能。 软件可靠性的测试 软件可靠性测试的目的 软件可靠性测试的主要目的有:

(1)通过在有使用代表性的环境中执行软件,以证实软件需求是否正确实现 (2)为进行软件可靠性估计采集准确的数据。估计软件可靠性一般可分为四个步骤,即数据采集、模型选择、模型拟合以及软件可靠性评估。可以认为,数据采集是整个软件可靠性估计工作的基础,数据的准确与否关系到软件可靠性评估的准确度。 (3)通过软件可靠性测试找出所有对软件可靠性影响较大的错误。 软件可靠性测试的特点 软件可靠性测试不同于硬件可靠性测试,这主要是因为二者失效的原因不同。硬件失效一般是由于元器件的老化引起的,因此硬件可靠性测试强调随机选取多个相同的产品,统计它们的正常运行时间。正常运行的平均时间越长, 则硬件就越可靠。软件失效是由设计缺陷造成的,软件的输入决定是否会遇到软件内部存在的故障。因此,使用同样一组输入反复测试软件并记录其失效数据是没有意义的。在软件没有改动的情况下,这种数据只是首次记录的不断重复,不能用来估计软件可靠性。软件可靠性测试强调按实际使用的概率分布随机选择输入,并强调测试需求的覆盖面。软件可靠性测试也不同于一般的软件功能测试。相比之下, 软件可靠性测试更强调测试输入与典型使用环境输入统计特性的一致,强调对功能、输入、数据域及其相关概率的先期识别。测试实例的采样策略也不同,软件 可靠性测试必须按照使用的概率分布随机地选择测试实例,这样才能得到比较准确的可靠性估计,也有利于找出对软件可靠性影响较大的故障。 此外,软件可靠性测试过程中还要求比较准确地记录软件的运行时间,它的输入覆盖一般也要大于普通软件功能测试的要求。 对一些特殊的软件,如容错软件、实时嵌入式软件等,进行软件可靠性测试时需要有多种测试环境。这是因为在使用环境下常常很难在软件中植入错误,以进行针对性的测试。 软件可靠性测试的效果 软件可靠性测试是软件可靠性保证过程中非常关键的一步。经过软件可靠性测试的软件并不能保证该软件中残存的错误数最小,但可以保证该软件的可靠性达到较高的要求。从工程的角度来看,一个软件的可靠性高不仅意味着该软件的失效率低,而且意味着一旦该软件失效,由此所造成的危害也小。一个大型的工程软件没有错误是不可能的,至少理论上还不能证明一个大型的工程软件能没有错误。因此,保证软件可靠性的关键不是

相关主题
文本预览
相关文档 最新文档