- 1、本文档共61页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
第十一章软件可靠性讲述
Musa于1975年发表此模型,主要贡献在于提出将CPU执行时间作为软件可靠性的时间基准。 (4) Musa执行时间模型 Nelson最早于1973年提出一个基于数据域模型并于1978年得以完善。 此模型是基于数据域模型的代表,成为目前应用最多的模型之一。 (5) Sukert模型比较工作 Sukert于1976年给出其关于不同模型的分析比较的试验报告,开创了软件可靠性模型比较研究的先河。 模型比较研究已成为建模研究的一个基本方面。 (6) Nelson模型 GoeI和Okumoto于1978年发表此模型,将软件故障次数描述为非齐次Poisson过程。此模型是NHPP模型的代表。 (7) Goel—Okumoto NHPP模型 Musa于1979年发表了一批软件可靠性数据,对软件可靠性建模研究产生重要影响。目前已成为软件可靠性建模研究的“标准”参考数据。之后Musa,Ianninohe和Okumoto于1987年又发表了“软件可靠性”一书,在软件可靠性领域颇受推崇。该书首次对众多软件可靠性模型给出了统一的数学描述。 (8) Musa软件可靠性数据 2.模型组成 软件可靠性模型通常由以下几个部分组成: (1) 模型假设 模型是实际情况的简化或规范化,总要包含若干假设。 此假设认为软件测试用例的选取代表软件实际的运行剖面,甚至认为测试用例是独立随机地选取。 ① 代表性假设 此假设实质上是指可以用测试产生的软件可靠性数据预测运行阶段的软件可靠性行为。 此假设认为软件故障是独立发生于不同时刻,一个软件故障的发生不影响另一个软件故障的发生。譬如在概率范畴内,假设相邻软件故障间隔构成一组独立随机变量,或假设一定时间内软件故障次数构成一个独立增量过程。 ② 独立性假设 此假设认为所有软件故障的后果(等级)相同,即建模过程只考虑软件故障的具体发生时刻,不区分软件故障的性质。 ③ 相同性假设 软件可靠性模型的输出量变为性能度量,如故障强度、残留缺陷数、可靠度等。在软件可靠性模型中性能度量通常以数学表达式给山。 (2) 性能度量 某些可靠性度量的实际值无法直接获得(如残留缺陷数),这时需通过一定的方法估计参数的值,从而间接确定可靠性度量的值。 (3)参数估计方法 当然,对于可直接获得实际值的可靠性度量,便无需参数估计了。 一个软件可靠性模型要求一定的输入数据,即软件可靠性数据。不同类型的软件可靠性模型可能要求不同类型的软件可靠性数据。 (4) 数据要求 本书仅介绍三种最常用的软件模型。 二、J - M (Jelinski—Moranda) 模型 J – M 模型是最早的软件可靠性马尔科夫过程的数学模型,沿用了硬件可靠性的方法。 J – M的假设是: ① 软件最初的错误数为常值N。用 (i=1,2,…,N)表示在第(i-1)个错误被改正后,软件投入运行至第i次故障发生前这个阶段的时间,且故障间隔时间 是统计独立的。 ④ 每次故障后总有并仅有一个错误被排除,因此,系统的故障率是阶梯式下降的。 ③ 每个软件错误一经发现立即被修正,且不考虑修改错误的时间,也不产生新的错误。 ② 在两个相继故障构成的时间间隔内,软件的故障率为常数,其大小正比于软件中的残存错误数。 1. 可靠性特征量 (1) 按上述假设得出的软件系统故障的密度函数为: (2) 故障率为: (3) 可靠度函数为: 2. 可靠性特征量估计 模型的待估参数为φ和N。设t1,t2,…,tn是试验中实际测得的n次故障发生的时间间隔,则其极大似然方程为: 运用极大似然估计法,则 可得模型参数的极大似然估计值 和 分别为 发现 n 个软件错误后,停止测试。此时,软件的可靠性水平为 (1) 残存错误数 (2) 故障率 (3) 可靠度 (4)平均无故障工作时间MTBF 例11-1 Jelinski和Moranda曾在美国海军舰队计算机程序编制中心利用海军战术数据系统(NTDS)的软件故障数据,对他们的模型作了验证。NTDS包括38个不同的模块,每个模块都经过开发、测试、使用三个阶段。验证所用的故障数据是取自两个大型模块的软件反馈报告。这个模块在设计阶段共发现了26个错误,测试
文档评论(0)