【系统架构设计师】十三、软件可靠性(基本概念|软件可靠性建模)

目录

一、基本概念

1.1 定义

1.2 软件可靠性的定量描述

1.3 可靠性测试的意义

1.4 广义的软件可靠性测试和狭义的软件可靠性测试

二、软件可靠性建模

2.1 可靠性模型的组成

2.2 可靠性模型的共同假设

2.3 可靠性模型的重要特性

2.4 可靠性建模方法

往期推荐

历年真题练习


         历年真题考情:本章节每年单项选择考2分左右,论文也会有涉及

        主要学习软件可靠性基本概念、建模、管理、设计(重点是容错技术)、测试和评价等内容。很少涉及超纲题

一、基本概念

1.1 定义

        软件可靠性是软件产品在规定的条件下和规定的时间区间完成规定功能的能力

        软件可靠性和硬件可靠性区别:

                (1)复杂性软件复杂性比硬件高,大部分失效来自于软件失效。
                (2)物理退化:硬件失效主要是物理退化所致,软件不存在物理退化。
                (3)唯一性软件是唯一的,每个COPY版本都一样,而两个硬件不可能完全一样。
                (4)版本更新周期硬件较慢,软件较快

1.2 软件可靠性的定量描述

        (1)规定时间:自然时间、运行时间、执行时间(占用CPU)。
        (2)失效概率:软件运行初始时为0,随着时间增加单调递增,不断趋向于1。
        (3)可靠度:软件系统在规定的条件下、规定的时间内不发生失效的概率。等于1-失效概率。
        (4)失效强度:单位时间软件系统出现失效的概率。
        (5)平均失效前时间(MTTF):平均无故障时间,发生故障前正常运行的时间。
        (6)平均恢复前时间(MTTR):平均故障修复时间,发生故障后的修复时间。
        (7)平均故障间隔时间(MTBF):失效或维护中所需的平均时间,包括故障时间以及检测和维护设备的时间。

        注:MTBF=MTTF+MTTR
        系统可用性=MTTF/(MTTF+MTTR)*100%

1.3 可靠性测试的意义

        (1)软件失效可能造成灾难性的后果

        (2)软件的失效在整个计算机系统失效中的比例较高

        (3)相比硬件可靠性技术,软件可靠性技术很不成熟,这就加剧了软件可靠性问题的重要
性。

        (4)软件可靠性问题是造成费用增长的主要原因之一

        (5)软件对生产活动和社会生活的影响越来越大,从而增加了软件可靠性问题在软件工程领域乃至整个计算机工程领域的重要性。

1.4 广义的软件可靠性测试和狭义的软件可靠性测试

        广义的软件可靠性测试是指为了最终评价软件系统的可靠性而运用建模、统计、试验、分析和评价等一系列手段对软件系统实施的一种测试。一个完整的软件可靠性测试包括如下图所示的过程。

        狭义的软件可靠性测试是指为了获取可靠性数据,按预先确定的测试用例,在软件的预期使用环境中,对软件实施的一种测试。狭义的软件可靠性测试也叫“软件可靠性试验”(Software Reliability Test),它是面向缺陷的测试,以用户将要使用的方式来测试软件。

        可靠性测试是对软件产品的可靠性进行调查、分析和评价的一种手段。可靠性测试的目的可归纳为以下3个方面:

        (1)发现软件系统在需求、设计、编码、测试和实施等方面的各种缺陷。
        (2)为软件的使用和维护提供可靠性数据。
        (3)确认软件是否达到可靠性的定量要求。

二、软件可靠性建模

        软件可靠性模型(Software Reliability Model) 是指为预计或估算软件的可靠性所建立的可靠性框图和数学模型。建立可靠性模型是为了将复杂系统的可靠性逐级分解为简单系统的可靠性,以便于定量预计、分配、估算和评价复杂系统的可靠性。

        影响软件可靠性的因素包括:运行剖面(环境)、软件规模、软件的内部结构、软件的开发方法
和开发环境、软件的可靠性投入

2.1 可靠性模型的组成

        一个软件可靠性模型通常(但不是绝对)由以下几部分组成:

        (1) 模型假设。模型是实际情况的简化或规范化,总要包含若干假设,例如测试的选取代表实际运行剖面,不同软件失效独立发生等。
        (2) 性能度量。软件可靠性模型的输出量就是性能度量,如失效强度、残留缺陷数等。在软件可靠性模型中性能度量通常以数学表达式给出。
        (3) 参数估计方法。某些可靠性度量的实际值无法直接获得,例如残留缺陷数,这时需通过一定的方法估计参数的值,从而间接确定可靠性度量的值。
        (4) 数据要求。一个软件可靠性模型要求一定的输入数据,即软件可靠性数据。

2.2 可靠性模型的共同假设

        绝大多数的模型包含3个共同假设:

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

2.3 可靠性模型的重要特性

        一个好的软件可靠性模型应该具有如下重要特性:

        (1)基于可靠的假设。
        (2)简单。
        (3)计算一些有用的量。
        (4)给出未来失效行为的好的映射。
        (5)可广泛应用。

2.4 可靠性建模方法

        (1)种子法模型。利用捕获一再捕获抽样技术估计程序中的错误数,在程序中预先有意“播种”一些设定的错误“种子”,然后根据测试出的原始错误数和发现的诱导错误的比例,来估计程序中残留的错误数。
        (2)失效率类模型。用来研究程序的失效率。
        (3)曲线拟合类模型。用回归分析的方法研究软件复杂性、程序中的缺陷数、失效率、失效间隔时间
        (4)可靠性增长模型。这类模型预测软件在检错过程中的可靠性改进,用增长函数来描述软件的改进过程。
        (5)程序结构分析模型。是根据程序、子程序及其相互间的调用关系,形成一个可靠性分析网络。
        (6)输入域分类模型。选取软件输入域中的某些样本“点”运行程序,根据这些样本点在“实际”使用环境中的使用概率的测试运行时的成功/失效率,推断软件的使用可靠性。
        (7)执行路径分析方法模型。分析方法与上面的模型相似,先计算程序各逻辑路径的执行概率和程序中错误路径的执行概率,再综合出该软件的使用可靠性。
        (8)非齐次泊松过程模型。是以软件测试过程中单位时间的失效次数为独立泊松随机变量,来预测在今后软件的某使用时间点的累计失效数。
        (9)马尔可夫过程模型。用于描述软件状态之间的转换和失效行为的随机性,能够处理更复杂的失效模式,如软件在不同运行阶段具有不同的失效率。
        (10)贝叶斯模型。是利用失效率的试验前分布和当前的测试失效信息,来评估软件的可靠性
 

往期推荐

【系统架构设计师】十二、系统质量属性与架构评估(系统架构评估|SAAM|ATAM|CBAM)-CSDN博客文章浏览阅读898次,点赞28次,收藏7次。系统架构评估是在对架构分析、评估的基础上,对架构策略的选取进行决策。它利用数学或逻辑分析技术,针对系统的一致性、正确性、质量属性、规划结果等不同方面,提供描述性、预测性和指令性的分析结果。敏感点:是实现质量目标时应注意的点,是一个或多个构件的特性。权衡点:是影响多个质量属性的敏感点。例如修改某个功能,影响到了架构的性能属性和安全性属性。https://shuaici.blog.csdn.net/article/details/140444642【系统架构设计师】九、软件工程(项目管理|进度管理|软件配置管理|软件质量管理|软件风险管理 )-CSDN博客文章浏览阅读1.4k次,点赞40次,收藏10次。面向对象的分析模型主要由顶层架构图、用例与用例图、领域概念模型构成设计模型则包含以包图表示的软件体系结构图、以交互图表示的用例实现图、完整精确的类图、针对复杂对象的状态图和用以描述流程化处理过程的活动图等。为使软件项目开发获得成功,关键问题是必须对软件项目的工作范围、可能风险、需要资源(人、硬件/软件)、要实现的任务、经历的里程碑、花费工作量(成本)、进度安排等进行预先计划和执行。:识别出项目中已知和可预测的风险,确定风险的来源、产生的条件、描述风险的特征以及哪些项目可以产生风险,形成一个风险列表。https://shuaici.blog.csdn.net/article/details/140344001

历年真题练习

        1.下列关于软件可靠性的叙述,不正确的是()

                A.由于影响软件可靠性的因素很复杂,软件可靠性不能通过历史数据和开发数据直接测量和估算出来。
                B.软件可靠性是指在特定环境和特定时间内,计算机程序无故障运行的概率。
                C.在软件可靠性的讨论中,故障指软件行为与需求的不符,故障有等级之分。
                D.排除一个故障可能会引入其他的错误,而这些错误会导致其他的故障。

        2.在系统性能评价中通常用平均无故障时间(MTBF)和平均故障修复时间(MTTR)分别表示计算机系统的可靠性和可用性,以下关于MTBF和MTTR的说法中,错误的是()

                A.平均无故障时间,也就是平均运行多久不出故障,这个时间越大,可用性越好。
                B.平均故障修复时间,也就是每次故障需要多长时间恢复为正常状态,这个时间越小越好。
                C.如果两次故障的间隔时间长,而每次故障的修复时间短,则系统的可靠性高。
                D.MTBF小,MTTR大表示系统具有高可靠性和高可用性。

人工分割线-答案

        1. A

        2. D        解析:MTBF大,MTTR小表示系统具有高可靠性和高可用性。这个你可以根据A、B、C选项推出来。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://xiahunao.cn/news/3248382.html

如若内容造成侵权/违法违规/事实不符,请联系瞎胡闹网进行投诉反馈,一经查实,立即删除!

相关文章

SD-WAN组网搭建5G备份方案实现方式

SD-WAN(Software-Defined Wide Area Network,软件定义广域网)结合5G作为备份链路是现代企业网络弹性策略的一部分,尤其是在需要高可用性和快速故障切换的场景下。以下是实现SD-WAN组网并集成5G备份方案的一般步骤: 1. …

‍我想我大抵是疯了,我喜欢上了写单元测试

前言 大家好我是聪。相信有不少的小伙伴喜欢写代码,但是对于单元测试这些反而觉得多此一举,想着我都在接口文档测过了!还要写什么单元测试!写不了一点!! 由于本人也是一个小小程序猿🙉&#xf…

Python | 分享8个Excel自动化脚本,一定有你用得上的!

本文将介绍8个常用的Python脚本,帮助你轻松应对Excel的日常操作。那话不多说,开始吧! 1. 安装所需的Python库 在开始之前,我们需要安装一些Python库来操作Excel文件。以下是需要安装的库: pandas:用于数据…

Java 实验七:集合的使用

一、实验目的 1、理解Java集合框架的特点、接口与类之间的关系; 2、掌握Java集合框架的List接口,以及List接口的重要实现类LinkedList、ArrayList; 3、掌握Java集合框架的Set、SortedSet接口,以及重要实现类HashSet 与 TreeSet…

活动回顾 | AutoMQ 联合 GreptimeDB 共同探讨新能源汽车数据基础设施

7 月 13 日,AutoMQ 携手 GreptimeDB“新能源汽车数据基础设施” 主题 meetup 在上海圆满落幕。本次论坛多角度探讨如何通过创新的数据管理和存储架构,提升汽车系统的性能、安全性和可靠性,从而驱动行业的持续发展和创新,涵盖 Auto…

C#字符串基本操作

1、代码 //1、创建字符串(获取长度)string str "Hello, World!";Console.WriteLine($"string:{str},length:{str.Length}");//2、字符串连接string str1 "Hello, ";string str2 "World!";Console.WriteLine…

简易ELK搭建

ELK搭建 1. elasticsearch1.1 下载1.2 ES配置1.3 启动ES1.4 开启权限认证1.5 IK分词器配置(非必须) 2. kibana2.1 下载2.2 配置2.3 启动kibana 3. logstash3.1 下载3.2 配置3.3 启动logstash 4. springboot推送数据 ELK包括elasticsearch、logstash、kib…

【初阶数据结构】掌握二叉树遍历技巧与信息求解:深入解析四种遍历方法及树的结构与统计分析

初阶数据结构相关知识点可以通过点击以下链接进行学习一起加油!时间与空间复杂度的深度剖析深入解析顺序表:探索底层逻辑深入解析单链表:探索底层逻辑深入解析带头双向循环链表:探索底层逻辑深入解析栈:探索底层逻辑深入解析队列:探索底层逻辑深入解析循环队列:探索…

25.dom创建、获取、插入、替换、删除、克隆节点

dom节点 -构成页面的每个组成部分(标签 属性 文字 注释) 节点(所有的文本内容 包括换行和空格) 元素节点(页面上的每个标签) 属性节点(标签上的属性) 注释节点(所有的注释内容包括注释内的空格换行) 创建节点 创建文本节点: var 变量名docume…

Sui基金会公布第一批RFP资助获得者名单

Sui资助计划已经从RFP申请者中选出了第一批受资助名单,这一举措标志着我们在促进Sui生态创新和增长方面迈出的重要一步。RFP计划旨在解决生态内的特定需求,为与我们战略目标一致的项目提供有针对性的支持。 为非技术者打造兼容Kiosk的启动平台 现存问题…

更新:彩虹云商城系统 自助下单免授权无后门源码(修复完整版)

源码简介: 最新更新彩虹云商城系统,自助下单免授权无后门源码(修复完整版) 自助下单彩虹云商城系统。这玩意儿不简单,它是高效稳定的电商平台!免授权源码版本,灵活方便。源码是用PHP语言写的。…

[CP_AUTOSAR]_分层软件架构_接口之内存模块的交互介绍

目录 1、Memory service modules 特征及差异2、Memory 如何通信交互2.1、Memory通信架构2.2、大块的NV数据管理 3、Memory 软件接口4、内存抽象接口的实现3.1、情况1:只使用了一种NV设备类型3.2、情况2:使用了2种或更多的NV设备 4、结论 在前面 关于接口…

2. KNN分类算法与鸢尾花分类任务

鸢尾花分类任务 1. 鸢尾花分类步骤1.1 分析问题,搞定输入和输出1.2 每个类别各采集50朵花1.3 选择一种算法,完成输入到输出的映射1.4 第四步:部署,集成 2. KNN算法原理2.1 基本概念2.2 核心理念2.3 训练2.4 推理流程 3. 使用 skle…

路由数据获取及封装方法

数据库设计 自联表 定义tree字段 public class LabelValue{public int label { get; set; }public string? value { get; set; }public List<LabelValue> children { get; set; }}获取路由方法 public Response<object> getMenuList() {Response<object>…

spark 事件总线listenerBus

事件总线基本流程 图片来源&#xff1a;https://blog.csdn.net/sinat_26781639/article/details/105012302 LiveListenerBus创建 在sparkContext初始化中创建LiveListenerBus对象。 主要变量有两个 queues&#xff1a;事件队列&#xff0c;里面存放四个队列&#xff0c;每…

零基础学习Python(三)

1. 多重继承 一个子类可以继承多个父类&#xff0c;这与一些编程语言的规则不通。 如果多个父类中有同名的变量和方法&#xff0c;子类访问的顺序是按照继承时小括号里书写的顺序进行访问的。 可以用issubclass(B, A)方法判断B是否为A的子类。 2. 绑定 类中的方法通过参数s…

Unity 导入MRTK,使用URP 升级材质,MRTK的材质还是洋红色

控制台显示信息 ToggleBackground material was not upgraded. There’s no upgrader to convert Mixed Reality Toolkit/Standard shader to selected pipeline UnityEditor.Rendering.Universal.UniversalRenderPipelineMaterialUpgrader:UpgradeProjectMaterials() (at 点击…

Windows 电脑部署 ollama3 并安装模型

Windows 电脑部署 ollama3 并安装模型 部署中为了尽可能减少对本地环境的污染&#xff0c;使用 Docker 安装&#xff01; github: https://github.com/ollama/ollama 准备部署文件 version: 3.8services:ollama:volumes:- ./models:/root/.ollama # 将本地文件夹挂载到容器中…

window11 部署llama.cpp并运行Qwen2-0.5B-Instruct-GGUF

吾名爱妃&#xff0c;性好静亦好动。好编程&#xff0c;常沉浸于代码之世界&#xff0c;思维纵横&#xff0c;力求逻辑之严密&#xff0c;算法之精妙。亦爱篮球&#xff0c;驰骋球场&#xff0c;尽享挥洒汗水之乐。且喜跑步&#xff0c;尤钟马拉松&#xff0c;长途奔袭&#xf…

AWS与其他友商云相比的优势

亚马逊网络服务(AWS)作为全球领先的云计算平台,在激烈的市场竞争中一直保持着领先地位。尽管其他云服务提供商如微软Azure和谷歌云平台也在不断发展,但AWS仍然拥有一些显著的优势。本文将结合九河云的分析探讨AWS相较于其他友商云服务的主要优势。 1. 全面的服务生态系统 AWS…