ARTICLE DETAIL

资讯详情

深耕网站建设与运营推广的一线实战洞察。

【架构专栏】第9章 软件可靠性基础知识 1/2

【架构专栏】第9章 软件可靠性基础知识 1/2 架构设计 相关文档希望互相学习共同进步风123456789-CSDN博客系统架构设计 相关文章【架构专栏】架构考试介绍【架构专栏】架构知识点知识总览​共19章内容主要包括11绪论、2计算机系统、3信息系统、4信息安全技术、5软件工程26数据库设计、7系统架构设计基础知识38系统质量属性与架构评估、9软件可靠性、10软件架构演化与维护、11未来信息综合技术412信息系统架构设计、13层次式架构设计、14云原生架构设计、15面向服务架构设计、16嵌入式系统架构设计、17通信系统架构设计、18安全架构设计、19大数据架构设计每天进步一点点加油小伙伴们本文学习第9章 软件可靠性基础知识以下为个人笔记希望有所帮助共同学习。本章偶尔考察普及为主了解即可内容包括软件可靠性基本概念定义、定量描述、可靠性目标、意义、广义与侠义可靠性测试软件可靠性建模影响因素、建模方法、模型分类、可靠性管理、软件可靠性设计容错设计技术、检错设计技术、降低复杂度设计技术、系统配置技术-双击热备、服务器集群技术、软件可靠性测试概念、定义软件运行剖面、测试用例设计、可靠性测试的实施软件可靠性评价概述、可靠性模型选择、可靠性数据的收集、可靠性评估与预测第9章 软件可靠性基础知识​软件可靠性基本概念、建模、管理、设计、测试和评价等内容。本章侧重于概念知识来源于教材扩展内容较少。单选2-3分论文也有涉及。软件可靠性和其他属性一样是衡量软件的重要指标保障软件可靠性最有效、最经济、最重要的手段是在软件设计阶段采用措施进行可靠性控制。9.1 软件可靠性基本概念9.1.1 定义软件可靠性是指在规定的时间内软件不引起系统失效的概率。该概率是系统输入和系统使用 的函数也是软件中存在的缺陷函数系统输入将确定是否会遇到已存在的缺陷。软件可靠性是软件产品在规定的条件下和规定的时间区间完成规定功能的能力。◆软件可靠性和硬件可靠性区别1复杂性软件复杂性比硬件高大部分失效来自于软件失效。2物理退化硬件失效主要是物理退化所致软件不存在物理退化。3唯一性软件是唯一的每个COPY版本都一样而两个硬件不可能完全一样。4版本更新周期硬件较慢软件较快。9.1.2 定量描述软件的可靠性是在软件使用条件、在规定时间内、系统的输入/输出、系统使用等变量构成的 数学表达式。1.规定时间规定时间自然时间、运行时间、执行时间〈占用CPU〉。2.失效概率失效概率软件运行初始时为0随着时间增加单调递增不断趋向于1.3.可靠度可靠度软件系统在规定的条件下、规定的时间不发生失效的概率。等于1-失效概率。4.失效强度失效强度单位时间软件系统出现失效的概率。5.平均失效前时间平均失效前时间MTTF平均无故障时间发生故障前正常运行的时间。6.平均恢复前时间平均恢复前时间MTTR平均故障修复时间发生故障后的修复时间。7.平均故障间隔时间平均故障间隔时间MTBF失效或维护中所需的平均时间包括故障时间以及检测和维护设备的时间。MTBFMTTFMTTR。系统可用性 MTTF /(MTTFMTTR)*100%。不同系统的可靠性公式1串联系统一个设备不可靠整个就崩溃系统可靠性R R1 * R2 * R3....*Rn2)并联系统所有设备都不可靠整个才崩溃系统可靠性R 1-1-R1 * 1-R2 *1- R3....*1-Rn对软件运行的影响程度不仅取决于软件失效发生的概率还和软件失效的严重程度有很大关系。失效严重程度类就是对用户具有相同程度影响的失效集合。◆对失效严重程度的分级可以按照不同的标准进行按对成本影响、对系统能力的影响等标准划分软件失效的严重程度类。◆对成本的影响可能包括失效引起的额外运行成本、修复和恢复成本、现有或潜在的业务机会的损失等。由于失效严重程度类的影响分布很广泛为了按照一定数量的等级去定义失效严重程度类通常用数量级去划分等级。9.1.3 可靠性目标软件可靠性是 指用户对所使用的软件的性能满意程度的期望。可以用可靠度、平均失效时间和故障强度等来描述。◆可靠性测试的目的可归纳为以下3个方面。1发现软件系统在需求、设计、编码、测试和实施等方面的各种缺陷。2〉为软件的使用和维护提供可靠性数据。3确认软件是否达到可靠性的定量要求。9.1.4 可靠性测试的意义可靠性测试的意义是1软件失效可能造成灾难性的后果。2软件的失效在整个计算机系统失效中的比例较高。3相比硬件可靠性技术软件可靠性技术不成熟。4软件可靠性问题会造成软件费用增长。5系统对软件的依赖性强对生产活动和社会生活影响日益增大。9.1.5 广义的可靠性测试与狭义的可靠性测试1广义的可靠性测试是为了最终评价软件系统的可靠性而运用建模、统计、试验、分析和 评价等一系列手段对软件系统实施的一种测试。2狭义的可靠性测试指为了获取可靠性数据按预先确定好的测试用例在软件预期使用环境中对软件实施的一种测试。9.2 软件可靠性建模9.2.1 影响软件可靠性的因素软件可靠性模型是指为预计或估算软件的可靠性所建立的可靠性框图和数学模型。影响软件可靠性的因素是纷杂而众多的甚至包括技术以外的许多因素。首先必须考虑影响软件可靠性的主要因素缺陷的引入、发现和清除。缺陷的引入主要取决于软件产品的特性和软件的开发过程特性。软件产品的特性指软件本身的性质开发过程特性包括开发技术、开发工具、开发人员的水平、需求的变化频度等。缺陷的发现依靠用户对软件的操作方式、运行环境等也就是运行剖面。缺陷的清除依赖于失效的发现和修复活动及可靠性方面的投入。从技术角度看影响软件可靠性的因素包括运行环境、软件规模、软件的内部结构、软件的开发方法和开发环境、软件的可靠性投入。9.2.2 软件可靠性的建模方法一个软件可靠性模型通常但不是绝对由以下几部分组成1模型假设。模型是实际情况的简化或规范化总要包含若干假设例如测试的选取代表实际运行剖面不同软件失效独立发生等。2〉性能度量。软件可靠性模型的输出量就是性能度量如失效强度、残留缺陷数等。在软件可靠性模型中性能度量通常以数学表达式给出。3参数估计方法。某些可靠性度量的实际值无法直接获得例如残留缺陷数这时需通过一定的方法估计参数的值从而间接确定可靠性度量的值。4〉数据要求。一个软件可靠性模型要求一定的输入数据即软件可靠性数据。◆绝大多数的模型包含3个共同假设1〉代表性假设。是指可以用测试产生的软件可靠性数据预测运行阶段的软件可靠性行为。2独立性假设。此假设认为软件失效是独立发生于不同时刻一个软件失效的发生不影响另一个软件失效的发生。3相同性假设。此假设认为所有软件失效的后果等级相同即建模过程只考虑软件失效的具体发生时刻不区分软件的失效严重等级。人们常常通过估计或预测的方法来确定模型的参数。确定了模型的参数后就可以来表示失效过程的很多不同的特性。例如大多数模型都会对如下的内容进行解析表达任何时间点所经历的平均失效数。一段时间间隔内的平均失效数。任何时间点的失效强度。失效区间的概率分布。好的软件可靠性模型具有如下重要特性基于可靠的假设。简单。计算一些有用的量。给出未来失效行为的好的映射。可广泛应用。9.2.3 软件的可靠性模型分类软件的可靠性模型分类● 种子法模型。● 失效率类模型。● 曲线拟合类模型。● 可靠性增长模型。● 程序结构分析模型。● 输入域分类模型。● 执行路径分析方法模型。● 非齐次泊松过程模型。● 马尔可夫过程模型。● 贝叶斯分析模型。1.种子法模型。利用捕获-再捕获抽样技术估计程序中的错误数在程序中预先有意“播种”一些设定的错误“种子”然后根据测试出的原始错误数和发现的诱导错误的比例来估计程序中残留的错误数。2. 失效率类模型。用来研究程序的失效率。3.曲线拟合类模型。用回归分析的方法研究软件复杂性、程序中的缺陷数、失效率、失效间隔时间。4.可靠性增长模型。这类模型预测软件在检错过程中的可靠性改进用增长函数来描述软件的改进过程。5.程序结构分析模型。是根据程序、子程序及其相互间的调用关系形成一个可靠性分析网络。网络中的每个结点代表一个子程序或一个模块网络中的每一有向弧代表模块间的程序执行顺序。假定各结点的可靠性是相互独立的通过对每个结点可靠性、结点间转换的可靠性和网络在结点间的转换概率得出该持续程序的整体可靠性。6.输入域分类模型。选取软件输入域中的某些样本“点”运行程序根据这些样本点在“实际”使用环境中的使用概率的测试运行时的成功/失效率推断软件的使用可靠性。7.执行路径分析方法模型。分析方法与上面的模型相似先计算程序各逻辑路径的执行概率和程序中错误路径的执行概率再综合出该软件的使用可靠性。8.非齐次泊松过程模型。是以软件测试过程中单位时间的失效次数为独立泊松随机变量来预测在今后软件的某使用时间点的累计失效数。9.马尔可夫过程模型。包括完全改错的线性死亡模型。不完全改错的线性死亡模型。完全改错的非静态线性死亡模型。10.贝叶斯模型。是利用失效率的试验前分布和当前的测试失效信息来评估软件的可靠性。另外Musa 和 Okumoto 依据模型的不同属性对可靠性模型进行以下分类1时间域有两种自然或日历时间与执行CPU〉时间。2失效数类取决于无限时间内发生的失效数是有限的还是无限的。3失效数分布相对于时间系统失效数的统计分布形式主要的两类是泊松分布型和二项分布型。4有限类对有限失效数的类别适用用时间表示的失效强度的函数形式。5无限类对无限失效数的类别适用用经验期望失效数表示的失效强度的函数形式。9.3 软件可靠性管理软件可靠性管理是软件工程管理的一部分它以全面提高和保证软件可靠性为目标以软件可靠性活动为主要对象是把现代管理理论用于软件生命周期中的可靠性保障活动的一种管理形式。软件可靠性管理的内容包括软件工程各个阶段的可靠性活动的目标、计划、进度、任务和修正措施等。可靠性各阶段设计任务如下1.需求分析阶段(1)确定软件的可靠性目标。(2)分析可能影响可靠性的因素。(3)确定可靠性的验收标准。(4)制定可靠性管理框架。(5)制定可靠性文档编写规范。(6)制订可靠性活动初步计划。(7)确定可靠性数据收集规范。2.概要设计阶段(1)确定可靠性度量。(2)制定详细的可靠性验收方案。(3)可靠性设计。(4)收集可靠性数据。(5)调整可靠性活动计划。(6)明确后续阶段的可靠性活动的详细计划。(7)编制可靠性文档。3.详细设计阶段(1)可靠性设计。(2)可靠性预测(确定可靠性度量估计值)。(3)调整可靠性活动计划。(4)收集可靠性数据。(5)明确后续阶段的可靠性活动的详细计划。(6)编制可靠性文档。4.编码阶段(1)可靠性测试(含于单元测试)。(2)排错。(3)调整可靠性活动计划。(4)收集可靠性数据。(5)明确后续阶段的可靠性活动的详细计划。(6)编制可靠性文档。5.测试阶段(1)可靠性测试(含于集成测试、系统测试)。(2)排错。(3)可靠性建模。(4)可靠性评价。(5)调整可靠性活动计划。(6)收集可靠性数据。(7)明确后续阶段的可靠性活动的详细计划。(8)编制可靠性文档。6.实施阶段(1)可靠性测试(验收)(2)排错。(3)收集可靠性数据。(4)调整可靠性模型。(5)可靠性评价。(6)编制可靠性文档。ok, 今天就到这里吧 相关系列文章欢迎点赞、收藏提供意见​计算机系统基础知识 1分概述、计算机硬件、计算机软件操作系统 3分进程管理、存储管理、文件管理、设备管理数据库技术 3分数据库设计、关系代数、范式、事务并发、数据库安全、新技术嵌入式技术 3分嵌入式硬件、嵌入式操作系统、嵌入式软件开发计算机网络 3分超纲较多OSI七层模型、TCP/IP协议族、网络生命周期、IP地址其他计算机系统基础知识 1分计算机语言、多媒体、系统工程系统性能 1分性能指标、性能设计信息系统基础知识 3分信息系统生命周期、开发方法、五大典型系统信息安全技术基础 5分安全属性、信息安全技术、网络安全技术、安全协议软件工程 12分概述、需求工程、系统设计、运维、测试、基于构件面向对象技术 3分面向对象基础、分析设计、UML关系、图项目管理 1分进度管理、配置管理、质量管理、风险管理系统架构设计 20分架构概念、生命周期、ABSD、DSSA、架构风格、架构复用、质量属性、架构评估软件可靠性 2分可靠性建模、软件可靠性设计软件架构的演化和维护1分架构演化分类、评估、面向对象架构演化未来信息综合技术 3分信息物理系统、人工智能、边缘计算、机器人、数字李生、云计算数学与经济管理 2分最小生成树、最短路径、网络与最大流量、线性规划、决策论知识产权和标准化 2分知识产权属性、保护期限、产权人确定、侵权判定专业英语 5分完形填空大学英语3级难度自学架构专栏知识点【架构专栏】架构考试介绍【架构专栏】架构知识点【架构专栏】第1章 绪论【架构专栏】第11章 未来信息综合技术【架构专栏】第2章 计算机基础知识【架构专栏】第12章 信息系统架构设计理论与实践【架构专栏】第3章 信息系统基础知识【架构专栏】第13章 层次式架构设计理论与实践【架构专栏】第4章 信息安全技术基础知识【架构专栏】第14章 云原生架构设计理论与实践【架构专栏】第5章 软件工程基础知识【架构专栏】第15章 面向服务架构设计理论与实践【架构专栏】第6章 数据库设计基础知识【架构专栏】第16章 嵌入式系统架构设计理论与实践【架构专栏】第7章 系统架构设计基础知识【架构专栏】第17章 通信系统架构设计理论与实践【架构专栏】第8章 系统质量属性与架构评估【架构专栏】第18章 安全架构设计理论与实践【架构专栏】第9章 软件可靠性基础知识【架构专栏】第19章 大数据架构设计理论与实践【架构专栏】第10章 软件架构的演化和维护希望有所帮助互相学习、共同进步欢迎点赞、收藏
返回列表