软件可靠性多模型综合评估
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
收稿日期: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卷