系统架构设计师教程 第9章 9.2软件可靠性建模 笔记

9.2 软件可靠性建模 ★★★☆☆

9.2.1 影响软件可靠性的因素

软件可靠性模型 (Software Reliability Model) 是指为预计或估算软件的可靠性所建立的可靠性框图和数学模型。 建立可靠性模型是为了将复杂系统的可靠性逐级分解为简单系统的可靠性,以便于定量预计、分配、估算和评价复杂系统的可靠性。
影响软件可靠性的主要因素:缺陷的引入、发现和清除。
缺陷的引入主要取决于软件产品的特性和软件的开发过程特性。软件产品的特性指软件本身的性质,开发过程特性包括开发技术、开发工具、开发人员的水平、需求的变化频度等。
缺陷的发现依靠用户对软件的操作方式、运行环境等,也就是运行剖面。
缺陷的清除依赖于失效的发现和修复活动及可靠性方面的投入。
从技术的角度来看,影响软件可靠性的主要因素如下。
(1)运行剖面(环境)。软件可靠性的定义是相对运行环境的, 一样的软件在不同的运 行剖面下,其可靠性的表现是不一样的。
(2)软件规模。软件的大小, 不同规模的软件不能相提并论。
(3)软件内部结构。结构对软件可靠性的影响主要取决于软件结构的复杂程度,一般来说, 内部结构越复杂的软件,所包含的软件缺陷数就可能越多。
(4)软件的开发方法和开发环境。软件的开发方法对软件的可靠性有显著 影响。
(5)软件的可靠性投入。可靠性的投入包括开发者在可靠性设计、可靠性管理、可靠性测试和可靠性评价等方面投入的人力、资金、资源和时间等。经验表明,在早期重视软件可靠性并采取措施开发出来的软件,可靠性有明显的提高。

9.2.2 软件可靠性的建模方法

一个软件可靠性模型通常(不是绝对)由以下几部分组成。
(1)模型假设。模型是实际情况的简化或规范化,包含若干假设,例如不同软件失效独立发生等。
(2)性能度量。软件可靠性模型的输出量就是性能度量,如失效强度、残留缺陷数等。通常以数学表达式给出。
(3)参数估计方法。某些可靠性度量的实际值无法直接获得,例如残留缺陷数,需通过一定的方法估计参数的值,从而间接确定可靠性度量的值。对于可直接获得实际值的可靠性度量,无须参数估计。
(4)数据要求。软件可靠性模型要求一定的输入数据,即软件可靠性数据。不同类型的软件可靠性模型可能要求不同类型的软件可靠性数据。

大多数的模型包含3个共同假设
(1)代表性假设。此假设认为选取的运行剖面、测试用例是独立随机地选取。可以用测试产生的软件可靠性数据,预测运行阶段的软件可靠性行为。
(2)独立性假设。此假设认为软件失效是独立发生于不同时刻, 一个软件失效的发生不影响另一个软件失效的发生。
(3)相同性假设。此假设认为所有软件失效的后果(等级)相同,即建模过程只考虑软件失效的具体发生时刻,不区分软件的失效严重等级。

常常通过估计或预测的方法来确定模型的参数。
估计是通过收集到的失效数据进行统计分析,利用一定的推导过程归纳出模型的参数;
预测则是使用软件产品自身的属性和开发过程来确定模型的参数,可以在开始执行程序前完成。
大多数模型都会对如下的内容进行解析表达。
(1)任何时间点所经历的平均失效数。
(2)一段时间间隔内的平均失效数。
(3)任何时间点的失效强度。
(4)失效区间的概率分布。

好的软件可靠性模型应该具有如下重要特性。
(1)基于可靠的假设。
(2)简单。
(3)计算一些有用的量。
(4)给出未来失效行为的好的映射。
(5)可广泛应用。

9.2.3 软件的可靠性模型分类

可靠性模型大致可分为如下10类。
● 种子法模型。
● 失效率类模型。
● 曲线拟合类模型。
● 可靠性增长模型。
● 程序结构分析模型。
● 输入域分类模型。
● 执行路径分析方法模型。
● 非齐次泊松过程模型。
● 马尔可夫过程模型。
● 贝叶斯分析模型。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值