当前位置: 首页 > news >正文

[软件工程]十.可靠性工程(reliable engineering)

1.什么是可靠性工程

 

  1. 我们希望软件在给定的时间内,运行的时候不会崩溃或者发生失效,同时能保护我们的数据和个人信息。我们要能够信任我们所使用的软件,这意味着软件必须是可靠的。
  2. 可靠性(reliability):系统的可靠性是系统在给定的时段内能够正确提供用户希望的服务的可能性,且可以保护系统不崩溃或者失效,和我们的数据和个人信息

 

2.什么是错误,什么是失效

1)什么是错误(error)

通常指开发人员在软件开发过程中引入的缺陷或问题。错误是故障的根源,是软件系统中潜在的问题,可能在软件运行时导致失效。。

2)什么是失效(failure)

是指软件系统未能满足用户需求或预期行为的情况。失效是故障在软件运行时的表现,是用户直接体验到的问题。

3)什么是故障(fault)

是错误的直接结果,是软件系统中存在的一个具体问题,它可能导致软件在运行时出现异常行为或不正确的结果。

4) 故障(fault)-错误(error)-失效模型(failure Mode)

1>什么是故障-错误-失效模型(fault-error-failure Mode)

即人为故障导致系统故障,

系统故障导致系统错误,

系统错误导致系统失效。

2>图形表示

2bc19d8d281c497d9727d492b90bbb59.png

3.什么是可用性(availability),性能(performance),可依赖性(dependabilty),安全性(safety),信息安全性(security),韧性(resilence),防范性(Defensibility),可靠性(reliability)的定义和区别

1)可用性(Availability)

可用性是指系统在任何给定时间点上,能够正常运行并提供服务的能力。它通常用系统正常运行时间占总时间的比例来衡量。高可用性意味着系统很少或几乎不会出现故障,用户可以随时访问系统并获得服务。

2)性能(Performance)

性能是指系统在执行任务时的效率和响应速度。它包括响应时间、吞吐量、资源利用率等指标。性能好的系统能够快速响应用户请求,并高效地处理大量数据。

3)可依赖性(Dependability)

可依赖性是一个综合性的概念,它包括可用性,可靠性,安全性和信息安全性。(其目的是覆盖系统的可用性,可靠性,安全性和信息安全性。)可依赖性强调的是系统在规定条件下和规定时间内,能够持续提供服务的能力。

4)安全性(Safety)

安全性是指系统在运行过程中,不会对人、环境或财产造成损害的能力。安全性关注的是系统在正常运行和异常情况下的安全保护措施。

5)信息安全性(Security)

信息安全性是指系统保护信息不被未授权访问、泄露、篡改或破坏的能力。它包括数据加密、访问控制、身份验证等措施。是否能抵御意外或蓄意入侵的可能性(鲁棒性)(important)

6)韧性(Resilience)

韧性是指系统在面对干扰性事件(如硬件故障、网络攻击等)时,能够维持关键服务的能力。韧性强调的是系统在遭受攻击或故障后,能够迅速恢复并继续提供服务的能力。

7)防范性(Defensibility)

防范性是指在软件开发过程中,为了确保软件的质量和安全性,所采取的一系列措施和策略。这些措施包括但不限于代码审查、单元测试、集成测试、系统测试、压力测试、安全审计等。

8)可靠性(reliability)

可靠性(reliability):系统的可靠性是系统在给定的时段内能够正确提供用户希望的服务的可能性,且可以保护系统不崩溃或者失效,和我们的数据和个人信息。

9)可用性(Availablity)和可靠性(reliablity)的区别

可用性是指系统在任何给定时间点上,能够正常运行并提供服务的能力。

可靠性是指系统在指定的时间段内可以正常地提供服务,并且提供一些保护系统不崩溃和保护用户数据和信息的能力。

4.可靠性需求(Reliability Requirement)

1)功能性需求:(Functional Requirement)

定义了系统应该包含的检查和修复的手段和修复措施,以及防止系统失效和外部攻击的保护性特征。(提供一些保护系统不崩溃和保护用户数据和信息的能力。)

2)非功能性需求:(Non-functional Requirement)

非功能性需求是对系统的可靠性和可用性的要求做出的规格说明,使用前面描述的度量之一来描述,定义了系统需要的可靠性和可用性。(在任何给定时间点上,能够正常运行并提供服务的能力),多以来,定量的可靠性和可用性规格说明被用于安全关键的系统中,但是很少用在关键的业务流程中。

5.可靠性指标和度量

1)度量可靠性和可用性的指标

812f1ca7871c412097b0a27aaba304ba.png

    1. 请求失败概率(Probability of Failure On Demand   POFOD):(适合偶尔使用的系统)这个度量定义系服务请求将导致失效的可能性。所以POFOD = 0.001意味着提出一个请求是,出现失效(failure)的可能性

 

例子:假设你有一个紧急情况下的报警按钮,它在紧急情况下被按下时应该立即通知救援人员。如果这个按钮的POFOD是0.001,这意味着在紧急情况下按下按钮时,有0.1%的概率它不会正常工作,导致无法及时通知救援人员。

 

    1. 失效发生率(Rate Of Failure On Demand   ROCOF):(ROCOF常常用于衡量频繁使用的系统)这个度量说明在一段时间内(比如一小时内),或在一定的系统执行次数之内,能够观察到的系统的失效次数,若ROCOF = 0.001,ROCOF的倒数是平均失效间隔时间(Mean Time To Failure  MTTF)其常用在可靠性度量中。

 

例子:考虑一个自动售货机,它每天被使用数百次。如果ROCOF是0.001,这意味着在任何给定的使用中,自动售货机出现故障(比如卡住或不出货)的概率是0.1%。ROCOF的倒数,即平均失效间隔时间(MTTF),将告诉我们这个自动售货机在两次故障之间平均能正常工作多长时间。

 

    1. 平均失效间隔时间(Mean Time To  Failure  MTTF):是ROCOF的倒数,常常用在有很长的事务处理序列的系统。

 

例子:假设你有一辆汽车,它的MTTF是100,000公里,这意味着在正常使用条件下,你的汽车平均每行驶100,000公里就会出现一次故障。这个指标帮助你了解汽车的可靠性。

 

    1. 可用性(AVAIL):AVAIL是当请求某一服务的时候系统可使用的概率。因此,概率0.9999的可用性是指平均来说系统在运行时间的99.99%是可用。

 

例子:考虑一个在线银行系统,其可用性是0.9999。这意味着在任何给定的时间点,用户有99.99%的概率能够成功访问和使用这个系统。如果银行系统每天运行24小时,那么它每年大约有52分钟的时间是不可用的(因为1 - 0.9999 = 0.0001,即0.01%的不可用时间)。

2)举个例子

客户说3年故障最多5次,是难以去验证的,是不合理的,我们应该转化为概率的形式,易于衡量。

 

比如:如果客户的系统是偶尔使用的,那么转化为POFOD = 0.0001,即提出10000次请求,会又一次请求会导致失效。

例子:假设你有一个紧急情况下的报警按钮,它在紧急情况下被按下时应该立即通知救援人员。如果这个按钮的POFOD是0.001,这意味着在紧急情况下按下按钮时,有0.1%的概率它不会正常工作,导致无法及时通知救援人员。

 

 

比如:如果客户的系统是经常使用的,那么转化为ROCOF = 0.0001,即在10000次的执行次数内,能观察到一次系统失效。

例子:考虑一个自动售货机,它每天被使用数百次。如果ROCOF是0.001,这意味着在任何给定的使用中,自动售货机出现故障(比如卡住或不出货)的概率是0.1%。ROCOF的倒数,即平均失效间隔时间(MTTF),将告诉我们这个自动售货机在两次故障之间平均能正常工作多长时间。

 

 

比如:如果客户的系统有很长的处理序列,那么转化为MTTF = 10000,即每发生一次系统失效的间隔次数为10000次执行。

例子:假设你有一辆汽车,它的MTTF是100,000公里,这意味着在正常使用条件下,你的汽车平均每行驶100,000公里就会出现一次故障。这个指标帮助你了解汽车的可靠性。

 

 

 

比如:可以将用户的需求转化为 AVAIL = 0.999即在请求某一服务的时候,系统可使用的概率是99.99%

例子:考虑一个在线银行系统,其可用性是0.9999。这意味着在任何给定的时间点,用户有99.99%的概率能够成功访问和使用这个系统。如果银行系统每天运行24小时,那么它每年大约有52分钟的时间是不可用的(因为1 - 0.9999 = 0.0001,即0.01%的不可用时间)。

6.如何保证可靠性(dependablity),防范性(defensibility),韧性(resilience),安全性(safety),它的功能性需求和非功能性需求

    1. (画)进行体系结构设计
    2. 进行需求跟踪: 跟踪需求的变更,确保所有需求都被正确实现。
    3. 监控和日志:建立监控系统,实时跟踪系统状态,记录关键操作日志,以便于问题追踪和性能分析
    4. 安全协议:实现加密、认证和授权等安全协议,保护系统免受未授权访问和攻击。

 

相关文章:

[软件工程]十.可靠性工程(reliable engineering)

1.什么是可靠性工程 我们希望软件在给定的时间内,运行的时候不会崩溃或者发生失效,同时能保护我们的数据和个人信息。我们要能够信任我们所使用的软件,这意味着软件必须是可靠的。可靠性(reliability):系统…...

【Makefile】编译日志之输出重定向符号 >

用法1 make all >& compilelog.txt make all > compilelog.txt这两个编译命令在功能上有一些细微的区别,主要在于标准输出和标准错误的处理方式。 make all >& compilelog.txt 这个命令会将标准输出(stdout)和标准错误&a…...

linux之less

less命令是Linux系统中一个功能强大的文件查看工具,它允许用户分页查看文件内容,并提供了多种快捷键和选项来增强用户体验。以下是less命令的一些常用操作: 基本使用 查看文件使用less命令的基本语法是less [选项] [文件名]。例如&#xff0…...

算法-字符串-165.比较版本号

一、题目 二、思路解析 1.思路: 比较的是两个版本号它们以“.”作为分割的部分的有效值(即数值)是否一致 2.常用方法: 1.s.split("\\规则"),将字符串按参数规则进行分割并存储在字符串数组中 String[] str …...

List与Set、数组与ArrayList、ArrayList与LinkedList的区别

List 与 Set 的区别: 项ListSet重复允许重复的对象(多个null也可以)不允许重复的对象(null也只能有一个)有序性有序的。 保持了每个元素的插入顺序。即输出顺序就是输入顺序。 有序和无序都有。 HashSet:无…...

如何在 Odoo18 视图中添加关联数据看板按钮 | 免费开源ERP实施诀窍

文 / 开源智造 Odoo亚太金牌服务 引言 关联数据看板按钮乃是 Odoo 当中的一项强效功能,它容许用户顺遂地访问相关记录,或者直接从模型的表单视图施行特定操作。它们为用户给予了对重要信息的疾速访问途径,并简化了工作流程,由此…...

Linux下mysql环境的搭建

1.mysql的下载 去MySQL官网下载mysql的linux压缩包 MySQL :: Download MySQL Community Server 如果下载慢请到网盘中自行下载 通过网盘分享的文件:mysql-8.0.40-1.el7.x86_64.rpm-bundle.tar 链接: https://pan.baidu.com/s/1vUJ-VuTwer1nLPT-haQCqw?pwd6342 提…...

视觉语言模型 Qwen2-VL

视觉语言模型 Qwen2-VL flyfish from PIL import Image import requests import torch from torchvision import io from typing import Dict from transformers import Qwen2VLForConditionalGeneration, AutoTokenizer, AutoProcessor from modelscope import snapshot_dow…...

浅谈新能源汽车感应钥匙一键启动的步骤和特点

随着汽车智能化技术的发展,无钥匙启动系统还可以与其他智能系统进行集成,如智能车载系统、远程控制系统等。这使得车主可以通过智能手机等智能设备远程控制车辆的启动、解锁、上锁等操作,进一步提升了使用的便捷性和智能化水平‌。新能源汽车…...

鸿蒙ArkTS语言基础语法详解

文章目录 鸿蒙ArkTS语言基础语法详解一、引言二、ArkTS语言概述1. ArkTS语言特点2. TypeScript基础语法2.1 类型注解2.2 接口2.3 泛型2.4 类的继承2.5 类的访问修饰符 三、ArkTS的基本组成3.1 装饰器3.2 UI描述3.3 自定义组件3.4 系统组件3.5 属性方法和事件方法 四、自定义组件…...

H5游戏出海如何获得更多增长机会?

海外H5小游戏的崛起给了国内众多中小厂商出海发展的机会,开发者如何在海外市场获得更多的增长机会?#APP出海# H5游戏如何在海外获得核心用户? HTML5游戏的开发与运营者们首先可以利用量多质高的HTML5游戏,维持海外用户粘性&…...

Cmake+基础命令

一、版本要求&#xff1a; 检查 cmake 版本号的最低要求&#xff0c;不满足条件时报错。 cmake_minimum_required(VERSION <version>)参数&#xff1a; version&#xff1a;最低要求的版本号 例子&#xff1a; # 最低要求安装3.21版本的cmake cmake_minimum_required…...

python数据分析之爬虫基础:requests详解

1、requests基本使用 1.1、requests介绍 requests是python中一个常用于发送HTTP请求的第三方库&#xff0c;它极大地简化了web服务交互的过程。它是唯一的一个非转基因的python HTTP库&#xff0c;人类可以安全享用。 1.2、requests库的安装 pip install -i https://pypi.tu…...

PHP期末复习(通过30道填空题梳理知识点)

一、基本语法 PHP的开始标记是&#xff1a; <?php<?php 是PHP脚本的开始标签&#xff0c;所有PHP代码必须在这个标签内书写。 PHP文件的结束标记是&#xff1a; ?>?> 是PHP脚本的结束标签&#xff0c;在大多数PHP文件中&#xff0c;通常可以省略结束标记。 定…...

PostgreSQL 安装部署系列:使用YUM 方式在Centos 7.9 安装指定 PostgreSQL -15版本数据库

一、前言 千里之行始于足下&#xff0c;想学习一门数据库&#xff0c;首先要从安装部署开始&#xff0c;先拥有一套属于自己的学习测试库。为了更好的学习该数据库&#xff0c;可以选择一个在企业界使用率比较普及的操作系统&#xff0c;选择稳定版本的操作系统&#xff1b;如果…...

知识图谱8:深度学习各种小模型

1、知识图谱的展示有很多工具 Neo4j Browser - - - - 浏览器版本 Neo4j Desktop - - - - 桌面版本 graphX - - - - 可以集成到Neo4j Desktop Neo4j 提供的 Neo4j Bloom 是用户友好的可视化工具&#xff0c;适合非技术用户直观地浏览图数据。Cypher 是其核心查询语言&#xf…...

为什么 JavaScript 中的 `new` 运算符报错?

在 JavaScript 中&#xff0c;new 运算符通常用于创建一个新对象并调用构造函数来初始化对象。然而&#xff0c;new 运算符可能会引发一些错误&#xff0c;通常是由于以下原因导致的&#xff1a; 构造函数没有正确的定义&#xff1a; 如果使用 new 运算符调用的函数没有正确地定…...

Tomcat,javaweb, servlet , springBoot

在server.xml里配置服务器 <scope>provided</scope>打包的时候&#xff0c;这个jar包不会被打进去&#xff0c;因为tomcat已将封装了这个jar包&#xff0c;没必要要这个...

使用Kimi开发自己的问答应用

概述 Kimi是大家常用的一个人工智能助手&#xff0c;本文使用Kimi开发文档&#xff0c;以node作为后端&#xff0c;开发与一个问答系统 实现效果 Kimi简介 Kimi是由Moonshot AI开发的人工智能助手&#xff0c;擅长中文和英文对话。目标是帮助用户解决问题、提供信息和执行任…...

TypeScript进阶

Typescript进阶 基础知识 JavaScript 的核心特点就是灵活&#xff0c;但随着项目规模的增大&#xff0c;灵活反而增加开发者的心智负担。例如在代码中一个变量可以被赋予字符串、布尔、数字、甚至是函数&#xff0c;这样就充满了不确定性。而且这些不确定性可能需要在代码运行…...

jenkins邮件的配置详解

Jenkins邮件的配置涉及多个步骤和细节,以下是详细的配置指南: 一、前期准备 确定邮件服务:明确Jenkins将要使用的邮件服务,如QQ邮箱、163邮箱、公司邮箱(基于Microsoft 365或Exchange Server)等。获取SMTP配置信息:根据邮件服务类型,获取相应的SMTP服务器地址、端口号…...

小皮面板(PHPSTUDY)配置多个域名或IP

问题描述 小皮面板默认采用nginx的静态部署&#xff0c;按照使用nginx的习惯只需要额外添加一个server即可&#xff0c;但是会发现直接往配置文件里添加新的server是不生效的&#xff0c;小皮的官网论坛几乎已经停止维护&#xff0c;因此资料较少&#xff0c;原本也没有仔细使…...

【大语言模型】LangChain LCEL 表达式语言

【大语言模型】LangChain LCEL 表达式语言 一、简介二、LCEL的优势三、LCEL 的基本使用1、Runnable 对象 四、实战实例 一、简介 LangChain LCEL 的全称为 LangChain Expression Language 即可直译为 LangChain 表达式。 为了构造更复杂的 LLM 应用并且更为简便快捷的构造 LLM…...

Leetcode 3382. Maximum Area Rectangle With Point Constraints II

Leetcode 3382. Maximum Area Rectangle With Point Constraints II 1. 解题思路2. 代码实现 题目链接&#xff1a;3382. Maximum Area Rectangle With Point Constraints II 1. 解题思路 这一题是题目3380. Maximum Area Rectangle With Point Constraints I的进阶版&#…...

MitelMiCollab 身份绕过导致任意文件读取漏洞复现(CVE-2024-41713)

0x01 产品描述: Mitel MiCollab 是一个企业协作平台,它将各种通信工具整合到一个应用程序中,提供语音和视频通话、消息传递、状态信息、音频会议、移动支持和团队协作功能。0x02 漏洞描述: Mitel MiCollab 的 NuPoint 统一消息 (NPM) 组件中存在身份验证绕过漏洞,由于输入…...

DVWA 靶场 SQL 注入报错 Illegal mix of collations for operation ‘UNION‘ 的解决方案

在 dvwa 靶场进行联合 SQL 注入时&#xff0c;遇到报错 Illegal mix of collations for operation UNION报错如下图&#xff1a; 解决办法&#xff1a; 找到文件MySQL.php 大致位置在dvwaincludesDBMS 目录下 使用编辑器打开 检索$create_db 第一个就是 在{$_DVWA[ ‘db_d…...

京准电钟分享:医院网络内NTP时间同步服务器作用是什么?

京准电钟分享&#xff1a;医院网络内NTP时间同步服务器作用是什么&#xff1f; 京准电钟分享&#xff1a;医院网络内NTP时间同步服务器作用是什么&#xff1f; 时间同步技术必定将是整个大数据处理系统的重要支撑和保障。时间同步技术使数据产生与处理系统的所有节点具有全局…...

HTML DOM API

HTMLInputElement HTMLInputElement 接口提供了特定的属性和方法&#xff0c;用于管理 <input> 元素的选项、布局和外观。 HTMLInputElement 和 <input> 之间的关系可以理解为接口与具体元素的关系&#xff1a; <input> 元素&#xff1a; <input> 是…...

java时间处理SimpleDateFormat详解

文章目录 常用构造函数日期格式模式常见用法1. 格式化日期2. 解析日期字符串 注意事项示例扩展&#xff1a;指定区域和时区 SimpleDateFormat 是 Java 中用于日期和时间格式化的类&#xff0c;属于 java.text 包。它允许开发者将日期对象格式化为字符串&#xff0c;或者将字符…...

redis-stack redisSearch环境安装搭建

RedisSearch在redis许可证变更之后显得是redis中的一大特色&#xff0c;闲来无事学习记录一下。 尝试通过源码编译redisSearch&#xff0c;貌似非常费劲&#xff0c;所以建议使用docker或者Linux的发行包进行安装redis-stack。redis-stack是基于redis的模块化机制进行一个扩展…...

企业网络营销网站设计/百度营销推广

目录 一、linux分区介绍 二、增加一块硬盘并进行分区和挂载 三、详细操作步骤 一、linux分区介绍 1.原理介绍 1&#xff09;对于Linux来说无论有几个分区&#xff0c;分给哪一个目录使用&#xff0c;它归根结底就只有一个根目录&#xff0c;一个独立且唯一的文件结构&…...

网站建设 上市公司/西安seo排名外包

首先&#xff0c;这是官方对该函数的解释 https://docs.scipy.org/doc/numpy/reference/generated/numpy.dot.html#numpy.dot 需要明确的是&#xff0c;np.dot()函数不光只进行2-D矩阵运算。 np.dot(a,b) a,b 是1-D 向量 这时计算np.dot(&#xff09;则是向量内积&#xff0…...

女生做网站编辑好吗/网站页面禁止访问

C代码管理没有规矩很难管理&#xff0c;不像类管理那样方便&#xff0c;我们一遍一遍的写代码但是重复的很多&#xff0c;如何管理自己写的C程序以供以后使用方便&#xff1f;因此好用的C代码管理小工具出现了&#xff0c;可用于代码管理&#xff0c;将计算机里面的代码导入到数…...

wordpress注册邮件验证/新闻软文推广案例

异常 原因 是我浏览器使用的广告拦截插件阻止了请求的发送。我这里使用的广告拦截插件是ADGUARD。 解决 关闭该插件&#xff0c;但为了其他网页能拦截广告&#xff0c;应该过滤掉该页面。 能正常发送了 参考链接&#xff1a;接口请求跳坑&#xff1a; Status (blocked:other)…...

微网站中定位功能怎么做的/网络平台怎么创建需要多少钱

一、原理 jsonp是利用浏览器请求script文件时不受同源策略的限制而实现的&#xff0c;伪造一个script标签&#xff0c;将请求数据的url赋值给script的src属性&#xff0c;并将该标签添加到html中&#xff0c;浏览器会自动发送请求&#xff0c;返回的一般时一段js代码&#xff0…...

网站广告如何做/厦门seo百度快照优化

1、只有当前组件是容器中的组件&#xff0c;才能使用容器提供的ConfigurationPropeities功能 2、使用ConfigurationProperties&#xff0c;被注入字段必须要有set 、get 方法 3、prefix表达式中可以使用 点来表示yml中的层级 4、通常需要通过配置文件注入复杂类型&#xff0c;如…...