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

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

收稿日期:2002-05-30作者简介:邹丰忠(1962-),男,湖北麻城人,副教授,工学博士.

软件可靠性多模型综合评估邹丰忠,徐仁佐(武汉大学软件工程国家重点实验室,湖北武汉 430072)摘要:软件可靠性工程领域一直存在模型很难应用于实际的问题.不同的软件可靠性模型对同一个软件工程项目的估计差别极大.为此,探讨了软件可靠性估计的稳健方法,研究了多模型的贝叶斯自动混合与选择的理论,其重点是要探讨贝叶斯先验表达及多模型的混合机制,以解决上述难题.

关键词:软件工程;软件可靠性;贝叶斯分析;先验分布中图分类号:TP311 文献标识码:A 文章编号:0253-374X(2002)10-1183-03

Multi-modelAssessmentofSoftwareReliabilityZOUFeng-zhong,XURen-zuo(StateKeyLabofSoftwareEngineering,WuhanUniversity,Wuhan430072,China)

Abstract:Therehasexistedforalongtimethedifficultyinapplyingreliabilitymodelsinpracticeofreliabilityengineeringofsoftware.Whichmodelshouldwetrustamongabout100availablereliabilitymodelswithdiffer-entpredictionsforasinglepieceofsoftwareunderconsideration?Withtheestimatesofamodel,howmuchconfidencedowehaveinbelievingthatthemodelpredictsthetruth?Indeed,softwarepractitionersareinadilemmainmakingdecisions.Inthispaper,aneffortismadeintryingtoprovideasolutionbyexploringtherobustinferencemethodology,andbyinvestigatingintothemachineryformodelmixingandselection,andtheBayespriorstructure.Keywords:softwareengineering;softwarereliability;Bayesanalysis;priordistribution

随着我国软件产业的迅猛发展,开发相应软件可靠性技术的需求不断增加,软件可靠性理论的研究越来越受到科学界的重视.软件可靠性源于传统工业的硬件可靠性,但由于软件的抽象性及高度复杂性等特点,软件可靠性与传统硬件可靠性有本质的区别.自1973年IEEE软件可靠性年会召开以后,软件可靠性成为IEEE,ACM,AIAA,MRI及其它学术、工业和政府部门的主要研究题目之一,而美国、英国在该领域的研究尤其活跃.在美国,DoD及Motorola等对软件可靠性模型应用都作出了具体规定和要求,在马里兰大学统计系设有可靠性研究中心,DoD,NASA,RADC等均有软件可靠性研究机构;英国伦敦城市大学的软件可靠性中心也在进行各种军用、工业及商用等软件可靠性研究.亚洲地区的香港自2000年起开始举办了亚太高品质软件学术会议.与国外相比,国内软件可靠性研究机构比较零散,力量相对薄弱.软件可靠性模型分为两大类:一类是基于软件规模、结构及复杂度的模型,如Halstead模型、Mills模型等,它们更多地应该归为软件质量模型一类,对软件可靠性的预计能力有限;另一类是基于软件失效时间的模型,如JM模型、LV模型、GONHPP模型,这三个模型形成软件可靠性理论研究的骨架,另外还有Musa的执行时间模型等.在目前众多的软件可靠性模型中,其预测结果还很不尽如人意.对此文献[1]指出,目前还没有能被推荐为广泛应用的软件可靠性模型.现有模型的精度具有局部性,即模型往往只对某一个或几个软件工程项

第30卷第10期2002年10月同 济 大 学 学 报JOURNALOFTONGJIUNIVERSITYVol.30No.10 Oct.2002目或其某一段数据能够达到较高的预测水平.这种模型往往潜藏着不健壮性,单个模型会不适应软件工程项目的细微变化而使预测误差急剧增大,这在现今软件工程项目各种因素犬牙交错、复杂多变的情况下,往往造成可靠性管理工程人员得出错误结论的后果.这些模型偶尔出现高精度,但在很多情况下,它们的预测严重失实,从而限制了现有模型的应用.所以,目前有针对特定软件工程项目开发专用可靠性模型的做法.表面上当前软件可靠性模型主要存在的是精度问题,而实际上是模型的稳健性(robustness)问题.所以本文的思想就是不过分追求模型的高精度,用贝叶斯方法实现多模型的自动混合、自动选择,以取得模型的稳健性、实用性和可靠性,使模型能确实可靠地应用于各种实际可靠性管理工程.其中要解决的关键问题是构造模型的自动混合与自动选择机制和先验信念的形式化表达结构.贝叶斯哲学要求将人关于超参数的先验信念(priorbelief)表达为概率分布函数的形式,这往往是人力所不能及的.在很多情况下,这样做的后果只能是牵强附会.贝叶斯分析的优点是其主观先验,其难点也是主观先验,为克服这一难点,本课题拟采用一种独特的全贝叶斯与部分贝叶斯分析相结合的方案.

1 多模型混合与选择机制1.1 基础如前所述,现有很多软件可靠性模型,它们的特性各异,前提假设不同,如完全与非完全除错(perfectvs.imperfectdebugging)、各软件缺陷导致失效的概率均等与非均等,等等.因此,对同一个软件工程项目,各模型对可靠性的估计差别非常大.在工程实践中,不能仅相信某一个模型的预测,而要根据多个模型的预测来做决策,因此必须进行多模型的混合与选择,使不同类型和特性的模型互相补偿,以取得可靠性预测的稳健性.实际的软件失效过程并不能用某一个模型来描述,如Musa的失效数据集T1.文献[2]提出了/变点0(changepoint)的思想,认为从失效1至失效20大致可以用一个模型来描述,从失效21至失效60大致可以用另一个模型来描述.这从另一个侧面表明不能期望用某一个或两个模型来描述软件的失效过程,而是通过多模型的混合与选择来达到这一目标.从过去模型运用的情况及众多文献看,现有软件可靠性模型相互之间存在互补性,有些模型比较悲观(pessimistic),如LV,它们预测的可靠性往往比实际低;而另外一些模型则比较乐观(optimistic),如GO,它们预测的可靠性往往比实际高.而JM模型及其众多变种则可能悲观也可能乐观(cangoeitherway).这就为本文的混合模型提供了坚实的基础.文献[3]在实验的基础上认为:混合模型一般比单个分模型的效果要好,而且混合模型抗数据/噪声0能力强.即混合模型精度更高,稳健性更好.而具有高稳健性的高精度估计才是现实工程急需的,也是本文的目标.并且混合模型不但对短期预测有效,而且对长期预测效果更加明显[3].1.2 混合原理将现有的软件可靠性模型作为分模型,这些模型有JM,GO,LV,SM,MO等,混合模型取下列形式:

Wc1MJM+Wc2MGO+Wc3MLV+Wc4MSM+,+WcnMn,.其中Eni=1Wci=1,且0[Wci[1,此处Wci表示特定分模型对混合模型的贡献,大至可理解为权重.若某分模型Mj特别适合于一特定软件工程项目,则Wcj相对取较大值,反之亦然.如此即可实现众多模型的混合与自动选择,问题的关键是计算Wci.1.3 全贝叶斯分析文献[4]认为贝叶斯哲学是经验数据分析的选择论,所以本文提出用贝叶斯方法来实现软件可靠性模型的自动混合、自动选择与自诊断,该思想在邹丰忠博士论文中提出并进行了初步论证,特别是先验信念的形式化表达(aprioristatements),传统贝叶斯分析的难点是先验信念的处理,对此本项目采取全贝叶斯和部分贝叶斯相结合的方法.如前所述,关键是要计算Wci,但前述要求太苛刻.所以这里取Wi\0,当然总可以把Wi变换为Wci

的形式(归一化变换).根据条件概率有

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=(W1,W2,,,Wi,,)T,A是实际观察到的数据(actualdata).P(B)即为贝叶斯先验分布(priordistribution),这里假定它服从高斯分布,均值为L=(L1,L2,,,Li,,)T,协方差为

CovR21R1R2,R1Rn

R1R2R22,R2Rn

ssss

R1RnR2Rn,R2n

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

先验只是人的一种经验知识和信念,需要在实践中进行积累,特别是对可靠性模型的特性、相关性要进行深入分析才能确定,也要根据软件工程项目的特点、计划和测试方案来确定.当然在没有先验的情况下,该混合模型从机理上仍能正确工作(取w1=w2=,=wn),但必须有足够的实际数据.P(B|A)即为贝叶斯后验(posterior),即要计算的(W1,W2,,,Wi,,),它的意义为:先验信念B在观察到实际数据A后得到更新(updating),P(B|A)即为更新的结果.P(A|B)即为似然(likelihood),它的

意义为:在先验信念B的条件下,观察数据A出现的概率.它的形式为Fni=1P(A|B,t1,t2,,,tm)的多元高斯分布.P(A)为归一化调整(normalization),主要保证后验仍为概率形式,即0[P(B|A)[1.上面提到的实际观察数据可以是下列形式之一:¹均方差(meansquareerror);ºmeankomolgorovdistance;»pre-quentiallikelihood.1.4 部分贝叶斯分析全贝叶斯分析需要人为地规定先验分布(前面假定它服从高斯分布),这仅仅是一种先验的经验,有时不尽合理.而且由此推得的后验可能是一种非封闭结构,数学处理上有一定的难度.所以这里采用部分贝叶斯分析方法作为补充,它不需要人为规定分布,但仍必须确定均值、方差等先验信念.假定有两簇随机变量B=(W1,W2,,,Wr)和A=(A1,A2,,,As),其中B为先验信念,A是观察的实际数据,希望通过观察A来改进对先验信念B的估计.在给定A的情况下,调整后的B应该是aTiA,在E((Bi-aTiA)2)最小时即得到aTiA,具体调整办法为EA(B)=E(B)+Cov(B,A)Var(A)-1(A-E(A))而VarA(B)=Var(B-EA(B))=Var(B)-Cov(B,A)(Var(A))-1Cov(A,B)

相关主题