《系统架构设计师教程(第2版)》第9章-软件可靠性基础知识-01-软件可靠性基本概念

文章目录

  • 1. 软件可靠性的概述
    • 1.1 定义
      • 1.1.1 规定的时间
      • 1.1.2 规定的条件
      • 1.1.3 所要求的功能
    • 1.2 定义的特点和意义
    • 1.3 注意点
  • 2. 软件可靠性的定量描述
    • 2.1 规定时间
      • 2.1.1 自然时间
      • 2.1.2 运行时间
      • 执行时间
    • 2.2 失效概率 F(t)
    • 2.3 可靠度 R(t)
    • 2.4 失效强度 f(t)
    • 2.5 平均失效前时间(MTTF)
    • 2.6 平均恢复前时间 (MTTR)
    • 2.7 平均故障间隔时间(MTBF)
  • 3. 可靠性目标
    • 3.1 失效严重程度类
      • 3.1.1 按对成本影响分类
      • 3.1.2 按对系统能力的影响分类
    • 3.2 可靠性目标
  • 4. 可靠性测试
  • 4.1 可靠性测试的意义
    • 4.2 广义的可靠性测试
    • 4.3 狭义的软件可靠性测试

1. 软件可靠性的概述

1.1 定义

  • 定义:在规定的时间周期内,规定的条件下,程序执行所要求的功能的能力

下边对高亮部分详细阐述:

1.1.1 规定的时间

  • 规定时间的量度:运行时间
  • 运行时间:
    • 包括软件系统运行后工作挂起的累计时间
    • 属于随机变量

由于软件运行的环境与程序路径选取的随机性,软件的失效为随机事件,所以运行时间属于随机变量

1.1.2 规定的条件

  • 指软件的运行环境。

    • 包括:硬件环境、软件支持环境、确定的软件输入域
  • 主要是描述:

    • 软件系统运行时计算机的配置情况及对输入数据的要求
    • 并假定其他一切因素都是理想的
  • 可有效地判断软件失效的责任在用户方还是开发方

  • 软件运行剖面(规定条件的另一种描述)

    • 对系统使用条件的定义,即,关于软件可靠性描述中的规定条件

1.1.3 所要求的功能

  • 功能不同导致可靠性不同的原因:
    功能不同 —> 调用子模块不同 —> 可靠性不同

1.2 定义的特点和意义

  • 其定义描述的特点:
    • 内在缺陷外在失效来描述可靠性
    • 概率的方法去描述可靠性
  • 意义:使人们对软件可靠性进行量化评估成为可能

1.3 注意点

  • 描述的软件对象必须明确(指明界限)
  • 软件失效必须明确定义
  • 必须假设硬件无故障、软件有关变量的输入值正确
  • 规定的时间必须指明时间基准(见2.1)

2. 软件可靠性的定量描述

2.1 规定时间

  • 系统处于稳定工作状态时,可根据经验,按比例换算以下三种时间基准

2.1.1 自然时间

  • 概念
    • 即我们日历、时钟的显示的时间
    • 如:9:00 开始 17:30 结束

2.1.2 运行时间

  • 概念:
    • 软件从启动到结束的时间
    • 如,软件运行了8 小时

执行时间

  • 概念
    • 软件运行过程中,中央处理器 (CPU) 执行程序指令所用的时间总和
  • 该方法度量软件可靠性最为准确
    • 使用方法:系统处于稳定工作状态时,根据经验,按比例换算

2.2 失效概率 F(t)

  • 概述:

    • 从软件运行开始,到某一时刻 t为止,出现失效的概率
    • 可以看作是关于软件运行时间的一个随机函数
    • 表示:F(t)
  • 特征

    • F(0)=0:软件运行初始时刻失效概率为0
    • F(t) 在时间域(0, + ∞ +\infty +) 上是单调递增的
    • F( + ∞ +\infty +)=1:失效概率在运行时间不断增长时趋向于1

    即,任何软件都存在缺陷

  • 为了简化分析,把F(t) 看作关于时间 t 的一个连续函数,并且可导。

  • 替代:可用模糊数学中的可能性替代

2.3 可靠度 R(t)

  • 概述:

    • 软件系统在规定的条件下、规定的时间内不发生失效的概率
    • 直接反映软件可靠性的度量指标
    • 是一种动态度量
  • 工式:R(t)=1-F(t)

  • 特征:

    • R(0)=1
    • R( + ∞ +\infty +)=0
  • 另一中表述:表示软件成功执行一个回合的概率

  • 软件回合 (Run):

    • 软件在规定环境下的一个基本执行过程

    即,定一组输入数据,到软件给定相应的输出数据这一过程

    • 是软件运行最小的、不可分的执行单位

2.4 失效强度 f(t)

  • 概述:(公式需要和书上对比
    • Failure Intensity
    • 单位时间软件系统出现失效的概率
    • 表示:f(t)
  • 公式:
    在这里插入图片描述

说明:- t 到 t+△t时刻,软件系统出现失效的平均概率为 (F(t+△t)-f(t))/△t, 当△t趋于很小时,就表现为 t时刻的失效强度

2.5 平均失效前时间(MTTF)

  • 概念:

    • Mean Time To Failure
    • 定义为从t=0时到故障发生时系统的持续运行时间的值
  • 公式:
    在这里插入图片描述

  • 不可修复系统的系统平均寿命:系统在失效前的平均时间

2.6 平均恢复前时间 (MTTR)

  • 概念
    • Mean Time To Restoration
    • 出现故障到修复成功的时间
    • 包括:
      • 确认失效发生所必需的时间
      • 记录所有任务的时间
      • 将设备重新投入使用的时间
  • MTTR越短表示易恢复性越好

2.7 平均故障间隔时间(MTBF)

  • 概念:
    • Mean Time Between Failures
    • 失效或维护中所需的平均时间
    • 包括:
      • 故障时间
      • 检测和维护设备的时间
  • 特点:MTBF=MTTF+MTTR

3. 可靠性目标

  • 对软件运行的影响程度不仅取决于软件失效发生的概率,还和软件失效的严重程度有很大关系

3.1 失效严重程度类

  • 概念:
    • Failure Severity Class
    • 对用户具有相同程度影响的失效集合

3.1.1 按对成本影响分类

  • 其影响包括:

    • 失效引起的额外运行成本
    • 修复和恢复成本
    • 现有或潜在的业务机会的损失等
  • 示例
    在这里插入图片描述

3.1.2 按对系统能力的影响分类

  • 其影响包括:
    • 关键数据的损失
    • 系统异常退出、系统崩溃
    • 导致用户操作无效等
  • 示例

在这里插入图片描述

3.2 可靠性目标

  • 概述:

    • 指客户对软件性能满意程度的期望
    • 描述:一般用可靠度、故障强度、平均失效时间等指标
    • 确定可靠性目标:失效严重程度 + 失效强度
  • 示例(可靠性目标参考表)

失效严重程度可靠性要求(%)失效强度平均无失效时间
199.999910-6114年
299.9910-4417天
39910-14天
49019小时

4. 可靠性测试

4.1 可靠性测试的意义

  • 软件失效可能造成灾难性的后果

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

    • 原因:
    • 软件系统的复杂性
    • 无法用全路径方式测试
    • 计算机系统的失效中,有80%和软件有关
  • 4.3 软件可靠性技术不成熟

  • 4.4 软件可靠性问题造成软件费用增长

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

  • 4.5 系统对软件的依赖性增强,使得可靠性测试更重要

4.2 广义的可靠性测试

  • 概述:
    • 指为了最终评价软件系统的可靠性而运用建模、统计、试验、分析和评价等一系列手段对软件系统实施的一种测试
  • 完整过程:

在这里插入图片描述

4.3 狭义的软件可靠性测试

  • 概述:

    • 即,我们通常所说的可靠性测试(Software Reliability Test)
    • 概念:
      • 指为了获取可靠性数据
      • 针对软件的某个重要质量特性,按预先确定的测试用例
      • 在软件的预期使用环境中,对软件实施的一种测试
    • 是面向缺陷的测试
  • 目的

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

在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

modelsim 仿真bmp图片实现RGB_YCrCb

用modelsim_se软件仿真bmp图片,可在modesim中实现一些图片处理算法和查看效果 本文以最简单的仿真一副bmp图像为例,实现RGB_YCrCb的modelsim仿真,带源工程 1、先在本地建立文件夹 2、首先打开moselsim 3、新建库和新建项目,保存到建立的文件…

Android音视频的基础

视频是什么? 视频就是由一系列图片构成的。 视频帧 帧,是视频的一个基本概念,表示一张画面,如上面的翻页动画书中的一页,就是一帧。一个视频就是由许许多多帧组成的。 帧率 帧率,即单位时间内帧的数量&a…

39-性能分析(下):APIServer性能测试和调优实战

在API上线之前,我们需要知道API的性能,以便知道API服务器所能承载的最大请求量、性能瓶颈,再根据业务对性能的要求,来对API进行性能调优或者扩缩容。通过这些,可以使API稳定地对外提供服务,并且让请求在合理…

网络网络层之(7)PPPOE协议

网络网络层之(7)PPPOE协议 Author: Once Day Date: 2024年4月7日 一位热衷于Linux学习和开发的菜鸟,试图谱写一场冒险之旅,也许终点只是一场白日梦… 漫漫长路,有人对你微笑过嘛… 全系列文档可参考专栏:通信网络技术_Once-Day…

紫叶写作靠谱不 #笔记#学习方法#媒体

紫叶写作是一款非常好用的论文写作工具,它不仅提供了查重降重的功能,还能帮助用户快速完成论文的撰写和格式编辑。通过紫叶写作,用户可以轻松地查重降重,避免论文中出现抄袭和重复的现象,保证论文的原创性和质量。 紫叶…

【网络】P2P打洞原理(简单描述)

本文首发于 ❄️慕雪的寒舍 引入 如果你折腾过NAS或者BT下载等等玩意,可能听说过“P2P打洞”这一技术名词。简单来说,P2P打洞可以让我们直接在外网访问内网的设备,从而让没有公网IP的家庭设备也能获得“公网直连”的速度。 比如绿联、极空间…

创建个人百度百科需要什么条件?

互联网时代,创建百度百科词条可以给个人带来更多的曝光和展现,相当于一个镀金的网络名片,人人都想上百度百科,但并不是人人都能创建上去的。 个人百度百科词条的创建需要满足一定的条件,今天伯乐网络传媒就来给大家聊聊…

神经网络解决回归问题(更新ing)

神经网络应用于回归问题 神经网络是处理回归问题的强大工具,它们能够学习输入数据和输出之间的复杂关系。 神经网络提供了一种灵活且强大的框架,用于建模和预测回归问题。通过 适当的 网络结构、训练策略和正则化技术,可以有效地从数据中学…

在Linux系统上实现TCP(socket)通信

一.什么TCP TCP(传输控制协议)是一种面向连接的、可靠的、基于字节流的传输层通信协议。 二.TCP通信流程 三. TCP 服务器端 1 创建socket int sockfd socket(AF_INET, SOCK_STREAM, 0); //SOCK_STREAM tcp通信2 绑定(bind) struct sockaddr_in myad…

系统架构最佳实践 -- 智慧图书管理系统架构设计

随着数字化时代的到来,智慧图书管理系统在图书馆和机构中扮演着重要的角色。一个优秀的图书管理系统不仅需要满足基本的借阅管理需求,还需要具备高效的性能、良好的扩展性和稳定的安全性。本文将讨论智慧图书管理系统的架构设计与实现,以满足…

计算机视觉异常检测——PatchCore面向全召回率的工业异常检测

1. 概述 异常检测问题在工业图像数据分析中扮演着至关重要的角色,其目的是从大量正常数据中识别出异常行为或模式。这一任务的挑战在于,正常数据的样本相对容易获取,而异常情况却因其稀有性和多样性而难以收集。为了解决这一问题&#xff0c…

裸机开发之汇编、寄存器

一、什么是汇编?为什么学汇编? 在之前写控制代码的时候就在想:底层是怎么控制的?后来经过学习知道之前所编写的代码都是应用层代码,顾名思义就是在系统写好的底层之上调用系统函数。原以为底层是指写系统写好的底层函数…

苹果电脑(Mac)怎么清理 itunes 备份?

苹果电脑用户广泛利用 iTunes 应用程序对 iPhone 或 iPad进行定期备份,以确保珍贵的数据安全无虞。然而,随着备份历史的增长,它们会在磁盘上积累大量空间,尤其当您频繁为多台设备备份时,存储资源可能会迅速消耗殆尽。为…

3D Web轻量化引擎HOOPS Commuicator如何从整体装配中创建破碎的装配零件和XML?

前言 虽然可以从某些本机CAD格式(其子组件驻留在单独的文件中,例如CATIA V5、Creo - Pro/E、NX或SolidWorks)创建破碎装配,但无法从整体装配文件(例如IFC、Revit)创建或3DXML。 本文介绍了一个示例&#…

学习Rust的第一天:基础知识

Introduction 介绍 I am Shafin Murani is a software development student and I am documenting every single day of my progress in learning rust. This is the first article of the series. Shafin Muranishi 是一名软件开发专业的学生,这是他在30天内记录学…

无影云电脑不能连接到本机的调试串口的解决方案

目录 概述 解决方案 云端电脑中的操作 本地USBDK驱动程序的更新 概述 我从1月份开始使用阿里的无影云电脑进行嵌入式开发板的测试,主要的原因有两个:一是平时使用的笔记本资源过于紧张,二是方便移动办公,这样我只要平时拿着开…

UDP简单总结

UDP:用户数据报协议 特点: 无连接、不可靠通信 不事先建立连接,数据按照包发,一包数据包含:自己的IP、程序端口、目的地IP、程序端口和数据(限制在64KB内) 发送方不管对方是否在线,数据在中间丢失也不管,…

备考分享丨云计算HCIE实验考试需要注意什么

去年九月底我在朋友的推荐下报考了誉天的云计算方向,在此期间我非常感谢田sir、苗苗老师和凡凡老师,每次我遇见问题找他们都能给我完完全全的解决,给我这个非科班出身的学员很大的鼓励与帮助。 我是经济学专业,毕业之后没有考研&…

java数据结构与算法刷题-----LeetCode785. 判断二分图

java数据结构与算法刷题目录(剑指Offer、LeetCode、ACM)-----主目录-----持续更新(进不去说明我没写完):https://blog.csdn.net/grd_java/article/details/123063846 文章目录 深度优先广度优先 二分图:将所有结点分成两个集合&am…

​如何使用 ArcGIS Pro 制作带贴图建筑

对于用GIS软件制作三维建筑,很多时候都是制作的建筑体块,这里为大家介绍一下怎么使用 ArcGIS Pro 制作带贴图的建筑,希望能对你有所帮助。 数据来源 教程所使用的数据是从水经微图中下载的建筑数据,除了建筑数据,常见…