软件可靠性第二章翻译.ppt
2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversitySoftwareReliabilityEngineering2ChenHaopengSaturday,January7,2023ReferencesReferences:SoftwareReliabilityEngineering2SoftwareReliabilityEngineering2ndndedtion,JohnD.Musaedtion,JohnD.Musa2 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University软件可靠性工程过程软件可靠性工程过程 软件可靠性工程过程大致包含五个活动软件可靠性工程过程大致包含五个活动:定义必要的可靠性开发业务概况准备测试执行测试将失败数据提交决策3 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University软件可靠性工程过程软件可靠性工程过程 测试人员进行系统工程的头两项活动测试人员进行系统工程的头两项活动 测试人员需要接触更多的产品用户,这是非常有用的测试人员需要接触更多的产品用户,这是非常有用的知道系统行为是不可接受的 是怎么不可接受的 为了了解用户将如何使用该产品.4 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University测试种类测试种类 有两种类型的软件可靠性工程测试有两种类型的软件可靠性工程测试可靠性增长测试认证测试可靠性增长试验包括可靠性增长试验包括功能测试负荷试验回归测试认证测试不涉及调试认证测试不涉及调试通过认证测试将进行二进制决定:接受软件或拒绝软件并退回返工将其供应商5 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University系统的测试系统的测试 系统系统:每个实体你将单独测试它可以包含由任何硬件,软件和人员要素的组合。.我们将使用可靠性增长测试,只要我们在开发甚至是我们将使用可靠性增长测试,只要我们在开发甚至是产品的一部分。产品的一部分。认证测试认证测试是一个是一个预预演,如果我演,如果我们们的客的客户户将将进进行行验验收收测试测试。超系统和产品的系统作为一个组件运行,这些应被视为潜超系统和产品的系统作为一个组件运行,这些应被视为潜在的系统,需要单独进行测试。在的系统,需要单独进行测试。6 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性可靠性我们可以定义关于自然单位或时间单位的可靠性指标。我们可以关注的两个时间我们可以关注的两个时间.程序执行时间,实际上是由一个处理器执行系统指令花费的时间。第二类时间是我们正常遇到的作为这两种类型的时间举例,考虑一个文字处理系统的秘书服务。一个星期后,有可能是40小时的时间在此期间,系统运行。可能有2小时的文字处理程序本身的执行时间。7 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性可靠性 有四类时间故障发生的情况。有四类时间故障发生的情况。失效时间无故障时间间隔失败的经验累积到一个特定的时间失败经历的时间间隔他们都是随机变量。至少有两方面的随机性主要原因。至少有两方面的随机性主要原因。首先,由程序员的错误,而对故障的说明是一个非常复杂的,不可预测的过程。因此,程序故障的位置是未知的。第二,程序的执行条件一般都是不可预测的。8 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University基于时间的故障规范基于时间的故障规范FailurenumberFailuretime(s)Failureinterval(s)11010219933213443115581567012788188103159125221015025111691912199301323132142562515296409 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University基于失败的故障规范基于失败的故障规范Time(s)CumulativefailuresFailuresininterval3022605390721208115010218011121012124013127014110 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University典型的失效概率分布典型的失效概率分布Valueofrandomvariable(failuresintimeperiod)ProbabilityProductofvalueandprobability00.10010.180.1820.220.4430.160.4840.110.4450.080.4060.050.4070.040.2880.030.2490.020.18100.010.10Mean failures3.0411 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University时间轴系统故障时间轴系统故障MTBFMeanTimeBetweenFailures平均故障平均故障间隔隔时间MTTDMeanTimeToDetection平均平均检测时间MTTRMeanTimeToRepair平均修平均修护时间12 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University电子元器件故障率电子元器件故障率故障率约。恒定的使用寿命。同样适用于修复率13 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性算数可靠性算数 可靠性可靠性可靠性可靠性,R(tR(t),系统从时间系统从时间系统从时间系统从时间t t开始执行一个单任务开始执行一个单任务开始执行一个单任务开始执行一个单任务假设任务在时间假设任务在时间t=0开始开始任任务期期间没有修没有修护是一个常数的故障率是一个常数的故障率,例如例如每超过一小时的使每超过一小时的使用寿命用寿命,每每25万小时万小时假设假设独立故障独立故障R(t)=e-t非老师备注:以下几页非老师备注:以下几页非老师备注:以下几页非老师备注:以下几页PPTPPT有些英文无翻译必有些英文无翻译必有些英文无翻译必有些英文无翻译必要,如有考题,到时套用公式。要,如有考题,到时套用公式。要,如有考题,到时套用公式。要,如有考题,到时套用公式。14 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性算数可靠性算数R(tR(t)=)=e-e-t t举例例如果如果是是每每25万小时万小时,例如每小例如每小时故障率是故障率是0.000025,那么一个那么一个8小小时的任的任务R(8)=99.98%系系系系统统在在在在执执行行行行 10,00010,000 次八小次八小次八小次八小时时的任的任的任的任务时务时将成功将成功将成功将成功9,9989,99815 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性基础知识可靠性基础知识 Failurerate(FR=)Failurerate(FR=)故障率故障率故障率故障率Averagenumberoftimesthesystemislikelytofailinagivenperiodoftime,e.g.0.003failuresperday Meantimetofailure(MTTF)Meantimetofailure(MTTF)平均无故障平均无故障平均无故障平均无故障时间时间Expectedtimethatthesystemwilloperatebeforefirstfailureoccurs:Meantimebetweenfailures(MTBF)Meantimebetweenfailures(MTBF)平均无故障平均无故障平均无故障平均无故障时间时间跟跟MTTF相似,但是包括修相似,但是包括修护时间16 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性基础知识可靠性基础知识 Repairrate(RR=)Repairrate(RR=)修复率修复率修复率修复率 AveragenumberoftimesthesystemislikelytobeAveragenumberoftimesthesystemislikelytoberepairedinagivenperiodoftime,e.g.0.03repairsperrepairedinagivenperiodoftime,e.g.0.03repairsperyearyear Meantimetorepair(MTTR)Meantimetorepair(MTTR)平均修复平均修复平均修复平均修复时间时间Expectedtimetorepair,asforMTTF:Meantimetodetection(MTTD)Meantimetodetection(MTTD)平均平均平均平均检测时间检测时间Similar,expectedtimedetectionofsystemmalfunction17 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可用性可用性 AvailabilityAvailability可用性可用性可用性可用性 TheprobabilitythatasystemwillbefunctioningTheprobabilitythatasystemwillbefunctioningcorrectlyatanygiventimecorrectlyatanygiventime i.e.thei.e.thefractionfractionoftimewhenoperational;alternativelyoftimewhenoperational;alternatively UnavailabilityUnavailability不可用性不可用性不可用性不可用性18 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University举例举例 GivenGivenFRFR故障率故障率故障率故障率=0.001failures=0.001failuresperhourperhourRRRR修复率修复率修复率修复率=0.5repairs=0.5repairsperhourperhour WegetWegetMTTFMTTF平均无故障平均无故障平均无故障平均无故障时间时间=1/0.001=1000hours=1/0.001=1000hoursMTTRMTTR平均修复平均修复平均修复平均修复时间时间=1/0.5=2hours=1/0.5=2hoursAvailabilityAvailability可用性可用性可用性可用性=1000/(1000+2)=0.998=99.8%=1000/(1000+2)=0.998=99.8%注意注意注意注意 故障和修复率随时间改变故障和修复率随时间改变故障和修复率随时间改变故障和修复率随时间改变 不同于可靠性,可用性是瞬间的措施,而不是每个任务不同于可靠性,可用性是瞬间的措施,而不是每个任务不同于可靠性,可用性是瞬间的措施,而不是每个任务不同于可靠性,可用性是瞬间的措施,而不是每个任务期间期间期间期间19 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性框图可靠性框图鉴于由模块组成的系统,其可靠性是什么?鉴于由模块组成的系统,其可靠性是什么?组合模块组合模块-系列(上),并行系列(上),并行20 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University串行系统串行系统任何组件故障导致系统故障任何组件故障导致系统故障把所有故障率把所有故障率计算出来,然后算算出来,然后算平均无故障时间平均无故障时间FR(故障率)(故障率)=FR1故障率故障率1+FR2+.+FRn可靠性乘可靠性乘积,假假设故障都是独立的故障都是独立的rel=rel1xrel2x.xreln21 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University并行系统并行系统一个组件出现故障需要不会导致系统故障一个组件出现故障需要不会导致系统故障组建失建失败率率=1-reli系系统的可靠性的可靠性rel=1“probabilitysystemhasfailed”=1(1-rel1)x(1-rel2)x.x(1-reln)22 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University组合系列并行系统组合系列并行系统 需要考虑的任意串并联组合需要考虑的任意串并联组合需要考虑的任意串并联组合需要考虑的任意串并联组合-通过分组简化通过分组简化通过分组简化通过分组简化-应用可靠性的计算方法应用可靠性的计算方法应用可靠性的计算方法应用可靠性的计算方法23 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University并行系统的可靠性并行系统的可靠性可靠性对于不同的可靠性对于不同的N的并行系统的并行系统24 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University马尔可夫模型马尔可夫模型有用的故障有用的故障预测,不同的,不同的设计方案比方案比较建立一个概率(建立一个概率(马尔可夫)模型可夫)模型预测的可靠性,可用性,基于的可靠性,可用性,基于该模型的可靠性模型的可靠性模型的模型的类型型离散离散时间的的马尔可夫可夫链连续时间马尔可夫可夫链在在LogicExpress的可靠性措施的可靠性措施使用概率来使用概率来计算的算的预测模型模型检测25 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University离散时间马尔可夫链离散时间马尔可夫链状态状态1:工作工作,状态状态2:故障故障每一步失败的概率是每一步失败的概率是0.1;正在维修的概率是正在维修的概率是0.4系统行为的路径系统行为的路径,e.g.:1(0.9)1(0.1)2(0.4)1(概率概率=0.9x0.1x0.4=0.036)26 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University连续时间马尔可夫链连续时间马尔可夫链状态状态1:工作工作,状态状态2:故障故障故障率是故障率是l,修复律是修复律是m平均无故障时间平均无故障时间(MTTF)is1/l,平均修复时间(平均修复时间(MTTR)is1/m实时性能实时性能,e.g:-“什么是在经过什么是在经过100小时的工作正在可能性小时的工作正在可能性“-“在长远来说,什么样的时间比例是花费在失败了?在长远来说,什么样的时间比例是花费在失败了?“27 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University较大的马尔可夫链模型较大的马尔可夫链模型状态状态=可能的配置系统可能的配置系统状态空间状态空间=所有可能状态所有可能状态常巨大的:百万常巨大的:百万/十亿状态十亿状态例如:例如:计算机与计算机与5个状态(关闭,睡眠,工作,失败,个状态(关闭,睡眠,工作,失败,维修)维修)20台电脑网络:台电脑网络:520=980万状态万状态分析性能分析性能/可靠性属性:可靠性属性:求解线性方程组求解线性方程组/线性优化问题线性优化问题变量数变量数=状态数目状态数目28 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University较大的马尔可夫链模型较大的马尔可夫链模型需要工具的支持,例如需要工具的支持,例如PRISM构建模式,从高层次的语言描述构建模式,从高层次的语言描述概率计算,计时,措施,概率计算,计时,措施,.29 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性指标可靠性指标经常使用时序逻辑经常使用时序逻辑准确,形式规范,没有含糊之处准确,形式规范,没有含糊之处 PpPp AAUUBB“事件事件A在事件在事件B之前发生的概率是之前发生的概率是p”PpPp TTAA“事件事件A在时间在时间T之前发生的概率是之前发生的概率是p”down=P0.75!failU1,2.5updown=P0.75!failU1,2.5up“当关闭时,系统恢复完成的概率在当关闭时,系统恢复完成的概率在1至至2.5小时,小时,没有发生进一步的失败,是大于没有发生进一步的失败,是大于0.75”30 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性指标可靠性指标通常希望获得的实际概率通常希望获得的实际概率而不是仅仅而不是仅仅“是是”/“不不“的答案的答案可以研究的范围值可以研究的范围值/图概率图概率常用来发现行为模式常用来发现行为模式/异常异常P=?Tarrive一个到达在时间一个到达在时间T到到达的概率达的概率?”forT=0.100Forc=2,4,6,8,1031 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityPRISM 概率模型检测工具概率模型检测工具DevelopedatBirmingham,7yearsDevelopedatBirmingham,7years特点:特点:-自定义建模语言自定义建模语言-支持三种类型的概率模型支持三种类型的概率模型-图形用户界面图形用户界面-模拟器,调试器模拟器,调试器-Linux的的/的的Solaris/Windows/Mac上上-开源:开源:GNU通用公共许可证(通用公共许可证(GPL)-广泛的案例研究广泛的案例研究32 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityPRISM模型语言模型语言 简单的编程语言简单的编程语言介绍了概率模型(马尔可夫链)介绍了概率模型(马尔可夫链)模块模块-组件模型组件模型变量变量-描述了每个模块的状态描述了每个模块的状态留守命令留守命令-描述模块的行为描述模块的行为另外:另外:全局变量全局变量同步同步33 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityPRISM模型语言:举例模型语言:举例TossingacoinTossingacoin/constants/constantsconstconstintint HEADSHEADS=1 1;constconstintint TAILSTAILS=2 2;/asinglemodule/asinglemodulemodulemodulecoincoin/variable/variablexx:0 0.2 2initinit0 0;/guardedcommands/guardedcommands(x x=0 0)-)-0.50.5:(:(x x=HEADSHEADS)+)+0.50.5:(:(x x=TAILSTAILS););(x x 0 0)-)-11:(:(x x=x x););endmoduleendmodule34 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityThe PRISM Tool35 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityThe PRISM Tool36 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityThe PRISM Tool37 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University案例案例1-工作站机群工作站机群 计算机网络:计算机网络:-两个与两个与N每个工作站每个工作站subclusters-中央骨干连接中央骨干连接-所有组件可以失败所有组件可以失败/被修复被修复38 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University工作站机群:故障率工作站机群:故障率 Meantimetofailure(Meantimetofailure(MTTFMTTF)平均无故障时间平均无故障时间平均无故障时间平均无故障时间 Failurerate(Failurerate(FRFR)故障率故障率故障率故障率 FRFR=1/=1/MTTFMTTF Also:Also:Meantimetorepair(MTTR)平均修复时间平均修复时间Repairrate(RR)修复率修复率ComponentMTTF(hours)FR(/hour)Workstation500 0.002Switch4000 0.00025Backbone5000 0.000239 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityPRISM代码代码:Clustersconst const intint N N;/number of work stations in each cluster/number of work stations in each clustermodule module leftclusterleftcluster/variables/variablesleft_opleft_op :0 0.N N init init N N;/number of workstations operational/number of workstations operationalleft_repleft_rep :boolbool init false;init false;/being repaired?/being repaired?/guarded commands/guarded commands/one workstation fails/one workstation fails(left_opleft_op 0 0)-)-0.0020.002*left_opleft_op :(:(left_opleft_op=left_opleft_op-1 1););/start being repaired/start being repaired repairleftrepairleft left_opleft_op -10 10:(:(left_repleft_rep=true);=true);/finish being repaired/finish being repaired fixedleftfixedleft left_repleft_rep -2 2:(:(left_repleft_rep=false)&(=false)&(left_opleft_op=left_opleft_op+1 1););endmoduleendmodule/construct second(identical)cluster by“renaming”/construct second(identical)cluster by“renaming”module module rightclusterrightcluster =leftclusterleftcluster left_opleft_op=right_opright_op,left_repleft_rep=right_repright_rep,.,.40 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityPRISM模型模型 Othermodules:Othermodules:leftswitch,rightswitch,backbone,repairman PRISMconverts:PRISMconverts:modeldescription-continuous-timeMarkovchainN(num.ofworkstations)Num.ofstates8 2,7723238,676128597,0125129,465,87641 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityPRISM的的可靠性指标可靠性指标服务质量(服务质量(QoS)的定义:)的定义:“最低最低”(对于某些(对于某些kN)的)的至少至少k工作站业务和连接工作站业务和连接“溢价溢价“至少至少n个工作站业务和连接个工作站业务和连接P“0.10.7保险费保险费“在长期而言,提供服务质量,保险费率在长期而言,提供服务质量,保险费率大于大于70“42 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityPRISM的可靠性分析的可靠性分析 P值?=T!最低!最低-“什么是服什么是服务质量的概率低于最低量的概率低于最低质量量下降下降t小小时之内?之内?”43 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University软件可靠性软件可靠性很难给出一个很难给出一个“软件可靠性软件可靠性“的正式定义的正式定义1如果正确,如果正确,0就不正确就不正确计算程序中的错误计算程序中的错误概率是计划让同一个输入数据从用户环境的概率是计划让同一个输入数据从用户环境的典型设置正确的输出典型设置正确的输出可靠性取决于用户配置文件可靠性取决于用户配置文件非执行的代码不会对产量的影响非执行的代码不会对产量的影响很少使用的模块可能不太重要的系统的可靠很少使用的模块可能不太重要的系统的可靠性性44 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性措施可靠性措施在在测测试试过过程程中中识识别别并并修修复复故故障障,并并收收集集有有关关数数据据,例例如如,软软件件之之间间的的无无故故障障时时间间利利用用这这些些数数据据来来预预测测未未来来故故障障间间隔隔时时间间可可靠靠性性增增长长的的故故障障发发生生在在软软件件和和它它的的可可靠靠性性增增加加删删除除。该该故故障障间间隔隔时时间间较较长长的的增长。增长。45 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University可靠性措施可靠性措施实实际际开开发发的的软软件件故故障障的的频频率率是是唯唯一一可可靠靠的的 方方 法法 来来 预预 测测 未未 来来 的的 行行 为为。通通常常涉涉及及测测量量记记录录之之间间的的软软件件时时,在在模模拟环境中执行或业务连续失败的次数。拟环境中执行或业务连续失败的次数。46 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University时间测量时间测量测量可以采取以下方面:测量可以采取以下方面:执行时间执行时间-为程序的执行实际的处理时间为程序的执行实际的处理时间日日历历时时间间-以以秒秒,分分钟钟,小小时时熟熟悉悉的的术术语语和时间。和时间。时时钟钟时时间间-时时间间一一台台计计算算机机运运行行,而而执执行行程程序序。其其他他方方案案可可能能是是同同一一台台机机器器上上执执行在同一时间。行在同一时间。47 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University趋势分析趋势分析变变变变更更更更请请请请求求求求(RFCRFC)的的的的-把把把把一一一一个个个个请请请请求求求求由由由由开开开开发发发发人人人人员员员员,测测测测试试试试人人人人员员员员,质质质质量保证等修改软件量保证等修改软件量保证等修改软件量保证等修改软件不不不不良良良良率率率率(DRDR)-缺缺缺缺陷陷陷陷的的的的数数数数量量量量在在在在测测测测试试试试阶阶阶阶段段段段发发发发现现现现48 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University趋势分析趋势分析随随着着越越来来越越多多的的不不良良率率上上升升的的修修改改发发生生-这表明,没有发生可靠性增长这表明,没有发生可靠性增长作作为为变变革革稳稳定定,不不良良率率下下降降的的请请求求-这这表表明,正在发生的可靠性增长明,正在发生的可靠性增长49 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University统计模型统计模型Jalinski-morandaJalinski-morandaMusabasicMusabasicMusa-Musa-OkumotoOkumotoLittlewood-VerallLittlewood-VerallSchneidewindSchneidewindYamadaYamada50 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityExecute test casesGet the profiles for each test caseBuild a relational database of profiles Estimate transition probabilities&build operational profile Uncertainty analysisEstimate components reliabilityApproachInstrument the software with a profiler Map functions to componentsIdentify fault(s)location(s)for each test case that failed Search the bug tracking databaseSearchtest logs&source code change logsExecute tests on multiple releases Get test cases that failedSoftware reliability modelSearch CVS51 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University比较硬件和软件故障比较硬件和软件故障硬硬件件设设计计看看作作是是低低于于软软件件设设计计复复杂杂。对对于于硬硬件件的的传传统统浴浴形形曲曲线线是是合合适适的的。软软件件可可以以完完美美复复制制,而而硬硬件件制制造造过过程程中中可能引入的缺点。可能引入的缺点。52 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong University软件可靠性软件可靠性随随着着软软件件,可可靠靠性性不不随随时时间间改改变变。假假设设所所陈陈述述的的情情况况保保持持不不变变,用用软软件件是是不不受受锈锈蚀蚀,腐腐蚀蚀,或或任任何何与与通通常常计计算算大大大大简简化化。随随 着着 硬硬 件件 的的 情情 况况 是是 不不 同同 的的。软软件件可可靠靠性性可可能能会会波波动动,因因为为它它是是在在测测试试和和修修改改和和调调试试。硬硬件件可可靠靠性性通通常常在在它它的工作寿命如传统浴形曲线。的工作寿命如传统浴形曲线。53 2006 by SJTUCenter for Software Engineering,Shanghai Jiaotong UniversityThankYou!