ARTICLE · 1124355
【架构】核心章节:第9章 软件可靠性基础知识 —— 知识点框架
【架构】核心章节:第9章 软件可靠性基础知识 —— 知识点框架
一、章节整体定位
二、知识点框架
9.1 软件可靠性基本概念
定义:软件产品在规定的条件下和规定的时间区间完成规定功能的能力。
软件与硬件的4个不同点
IEEE定义(1983年):在规定的条件下,在规定的时间内,软件不引起系统失效的概率,该概率是系统输入和系统使用的函数,也是软件中存在的缺陷函数。
框架性定义4要素
规定时间的3种概念
用执行时间来度量软件可靠性最为准确。
核心度量指标
软件运行剖面(Operational Profile):对系统使用条件的定义,系统的输入值都用其按时间的分布或按它们在可能输入范围内的出现概率的分布来定义。
失效严重程度类:对用户具有相同程度影响的失效集合。
按对成本影响划分失效严重程度类(示例)
按对系统能力影响划分失效严重程度类(示例)
可靠性目标参考表
5个方面
软件失效可能造成灾难性后果 软件的失效在整个计算机系统失效中的比例较高(约80%与软件有关) 相比硬件可靠性技术,软件可靠性技术很不成熟 软件费用呈有增无减的势头,软件可靠性问题是造成费用增长的主要原因之一 软件对生产活动和社会生活的影响越来越大
可靠性测试的3个目的
发现软件系统在需求、设计、编码、测试和实施等方面的各种缺陷 为软件的使用和维护提供可靠性数据 确认软件是否达到可靠性的定量要求
9.2 软件可靠性建模
技术角度的5个主要因素
模型4个组成部分
模型假设 性能度量 参数估计方法 数据要求
3个共同假设
好的软件可靠性模型应具有的重要特性
基于可靠的假设 简单 计算一些有用的量 给出未来失效行为的好的映射 可广泛应用
10类模型
Musa和Okumoto的分类
9.3 软件可靠性管理
定义:软件工程管理的一部分,以全面提高和保证软件可靠性为目标,以软件可靠性活动为主要对象,是把现代管理理论用于软件生命周期中的可靠性保障活动的一种管理形式。
各阶段可靠性活动
9.4 软件可靠性设计
设计原则
软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,不能与其他设计原则相冲突 在满足提高软件质量要求的前提下,以提高和保障软件可靠性为最终目标 应确定软件的可靠性目标,不能无限扩大化,排在功能度、用户需求和开发费用之后考虑
主要技术
双机热备3种工作模式
9.5 软件可靠性测试
主要活动:可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析。
为软件的使用行为建模,建模可以采用马尔可夫链来完成 开发使用模型涉及将输入域分层,有两种类型:用户级分层和用法级分层 定义使用概率的最佳方法是使用实际的用户数据
典型测试用例应包含
测试用例标识 被测对象 测试环境及条件 测试输入 操作步骤 预期输出 判断输出结果是否符合标准 测试对象的特殊需求
可靠性测试用例设计时重点考虑的特殊情况
4类可靠性数据
测试记录必须包含的信息
测试时间 含有测试用例的测试说明或标识 所有与测试有关的测试结果,包括失效数据 测试人员
9.6 软件可靠性评价
3个方面
选择可靠性模型 收集可靠性数据 可靠性评估和预测
5个有待解决的问题
可靠性数据的规范不统一 数据收集工作的连续性不能保证 缺乏有效的数据收集手段 数据的完整性不能保证 数据质量和准确性不能保证
可行办法
及早确定所采用的可靠性模型,以确定需要收集的可靠性数据 制订可实施性较强的可靠性数据收集计划,指定专人负责 重视软件测试特别是可靠性测试产生的测试数据的整理和分析 充分利用数据库来完成可靠性数据的存储和统计分析
主要目的:评估软件系统的可靠性状况和预测将来一段时间的可靠性水平。
常见需要解答的问题
判断是否达到了可靠性目标,是否达到了软件付诸使用的条件,是否达到了中止测试的条件 如未能达到,要再投入多少时间、人力和资金才能达到可靠性目标或投入使用 在软件系统投入实际运行一年或若干时间后,经过维护、升级和修改,软件能否达到交付或部分交付用户使用的可靠性水平
辅助方法
三、考试重点速查表