系统可靠性分析与设计相关知识总结

一、软件可靠性定义

        软件可靠性使软件产品在规定的条件下规定的时间区间完成规定的功能的能力。是软件系统在应用或系统错误面前,在意外或错误使用的情况下维持软件系统功能特性的基本能力

        规定的条件:直接与软件运行相关的使用该软件的计算机系统的状态和软件的输入条件(软件运行时的外部输入条件)

        规定的时间区间:软件的实际运行时间区间

        规定功能:为提供给定能力,软件产品所必须具备的功能。

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

                1. 复杂性软件内部逻辑高度复杂,硬件则相对简单。设计错误是导致软件失效的主要

                                   原因。

                2. 物理退化硬件失效主要是因为物理退化,软件不存在物理退化

                3. 唯一性软件是唯一的,软件复制不改变本身,而任何两个硬件是不可能绝对相同。

                4. 版本更新周期软件更新较快,硬件更新较慢

二、关键可靠性的定量描述

        规定时间的三种概念:

                ​​​​​​​1. 自然时间:日历时间;

                2. 运行时间:软件从启动开始,到运行结束的时间段

                3. 执行时间:软件运行过程中,CPU执行程序指令所用时间总和(最准确,效果最好

        失效概率: 

                失效概率可以看作是一个随机函数F(t),有如下特征:

                1. F(0) = 0;程序在运行初始时刻的失效概率为0

                2. F(t)随时间的增加单调递增 

                3. F(+∞) = 1;失效概率随时间增长趋向于1

        可靠度:

                可靠性最为直接的表示方式,可靠度就是软件系统在规定的条件下、规定时间内不发生

        失效的概率。可靠度R(t) = 1 - F(t)

                串联系统可靠度:R = R1 x R2 x .... x Rn

                串联系统是效率:F = F1 + F2 + ... + F3

                并联系统可靠度:1 - (1-R1) x (1-R2) x .... x (1-Rn)

        失效强度:

                单位时间内软件系统出现失效的概率。F(t)的斜率.

        平均失效前时间(MTTF):

                平均失效前时间也被称为平均无故障时间:MTTF = 1/F(t)

       平均故障间隔时间(MTTR):

                失效或维护中所需要的平均时间

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

                系统出现失效到下一次出现失效的平均时间。MTBF = MTTF + MTTR

                系统可靠性=MTTF/(MTTF+MTTR)

        影响软件可靠性的因素 :

                1. 运行环境

                2. 软件规模

                3. 软件内部结构

                4. 软件的开发方法和开发环境

                5. 软件的可靠性投入

三、软件可靠度的建模方法和模型分类

        可靠性模型的组成:

                1. 模型假设:模型是实际情况的简化或规范化

                2. 性能度量:软件可靠性模型的输出量

                3. 参数估计方法:某些可靠性独立无法直接获得,需要间接确定可靠性度量的值

                4. 数据要求:可靠性模型要求一定的输入数据,即可靠性数据

        一个好的可靠性模型应该包含以下特性:

                1. 基于可靠的假设; 2. 简单; 3. 计算一些有用的量;4. 给出未来失效行为的好的映

                射;5. 可广泛应用

        可靠性模型的三个假设:

                1. 代表性假设:软件测试用例的选取代表软件实际的运行剖面

                2. 独立性假设:软件的失效时独立发生的

                3. 相同性假设:所有软件失效的后果相同

        可靠性模型分类:

                ​​​​​​​1. 种子法模型

                        种子法模型利用捕获一再捕获抽样技术估计程序中的错误数,在程序中预先有意播

                种一些设定的错误种子,根据测试出的原始错误数和发现的诱导错误的比例来估算残余

                错误数优点:简单易行缺点:诱导错误的种子与实际的原始错误之间的类比性估量

                困难

                2. 失效率类模型:

                        用来研究程序的失效率

                3. 曲线拟合类模型:

                        用回归分析的方法研究软件复杂性、缺陷型、失效率等,包括参数法和非参数法

                4. 可靠性增长模型:

                        用增长函数来表述软件的改进过程。

                5. 程序结构分析模型:

                        根据程序、子程序及其相互调用关系形成一个可靠性分析网络

                6. 输入域分类模型:

                        从软件输入域中的某些样本的点运行程序,根据这些样本点在实际环境中的使用的

                概率测试运行时的成功/失效率,推断软件的使用可靠性。

                7. 执行路径分析方法模型:

                        先计算程序各逻辑路径的执行概率和程序中错误路径的执行概率,再综合出该软件

                的使用可靠性

                8. 非齐次柏松过程模型

                        以软件测试过程中单位时间的失效从设计为独立柏松随机变量,来预测今后软件在

                某使用时间点的累积失效数

                9. 马尔可夫过程模型

                        完成改错的线性死亡模型

                        不完全改错的线性死亡模型

                        完全改错的非静态线性死亡模型

                10.贝叶斯分析模型

                        利用失效率的实验前分布和当前的测试失效信息,来评估软件的可靠性                


四、软件可靠性设计

五、软件可靠性评价

      

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Android知识 - 代码混淆ProGuard规则介绍

ProGuard 的规则及示例 规则概述 ProGuard 是一个代码优化工具,它通过移除未使用的代码、重命名类、字段和方法等方式来减小应用的大小。在 ProGuard 的配置文件中,我们可以定义一系列的规则来控制优化和混淆的过程。 规则语法 ProGuard 的规则通常包…

husky配置实现代码提交前校验与规范提交信息

husky是一个Git Hook管理工具,主要用于实现提交前eslint校验和commit信息的规范校验。 Husky 的原理是让我们在项目根目录中写一个配置文件,然后在安装 Husky的时候把配置文件和 Git Hook 关联起来,这样我们就能在团队中使用 Git Hook 了。 …

Matplotlib数据可视化实战-2绘制折线图(2)

2.11营业额可视化 已知某学校附近一个烧烤店2022年每个月的营业额如下图所示。编写程序绘制折线图对该烧烤店全年营业额进行可视化,使用红色点画线连接每个月的数据,并在每个月的数据处使用三角形进行标记。 烧烤店营业额 月份123456789101112营业额/万…

机器学习的分类——监督学习(Supervised Learning)

监督学习(Supervised Learning)是机器学习中最常用和最直观的一类方法。它的核心思想是利用一组已知输入与输出的样本(即训练数据)来训练模型,目的是使模型能够学习到输入与输出之间的映射关系,以便对新的输…

【MySQL】14. 全文索引(选学)

全文索引的创建 当对文章字段或有大量文字的字段进行检索时,会使用到全文索引。 MySQL提供全文索引机制,但是有要求,要求表的存储引擎必须是MyISAM,而且默认的全文索引支持英文,不支持中文。 (为啥一定要用MyISAM呢&am…

Redis - 5k star! 一款简洁美观的 Redis 客户端工具~

项目简介 Tiny RDM 是一款现代化、轻量级的跨平台 Redis 桌面客户端,可在 Mac、Windows 和 Linux 系统上运行。初次打开 Tiny RDM,你会被它舒适的风格和配色所吸引,界面简约而不简单,功能齐全。 Tiny RDM 有着如下的功能特性 项…

男生t恤什么牌子好?男士T恤品牌推荐?

很多男士朋友最近都打算准备一套春夏季穿的短袖,但奈何当前的市场上充斥着大量低劣质的衣裤。这些产品的质量普遍不耐穿、耐洗,并且版型不好等情况。为此我特意为大家整理五个质量好且价格不贵的五个男装品牌。希望能够帮助到大家挑选到合适的短袖。 因为…

保研线性代数机器学习基础复习1

1.什么是代数(algebra)? 为了形式化一个概念,构建出有关这个概念的符号以及操作符号的公式。 2.什么是线性代数(linear algebra)? 一项关于向量以及操作向量的公式的研究。 3.举一些向量的例子&#x…

【opencv】教程代码 —ImgProc (7)使用维纳滤波器来恢复失焦的图像

7. out_of_focus_deblur_filter.cpp使用维纳滤波器来恢复失焦的图像 代码的主要功能是通过使用维纳滤波器来恢复失焦的图像,它读取一个灰度图像文件,对其进行滤波操作,并将结果保存为新文件。这个过程包括计算点扩散函数(PSF),执行…

机器学习模型——KNN

KNN的基本概念: KNN(K-Nearest Neighbor)就是k个最近的邻居的意思,即每个样本都可以用它最接近的k个邻居来代表。KNN常用来处理分类问题,但也可以用来处理回归问题。 核心思想是如果一个样本在特征空间中的k个最相邻的样本中的大多数属于某…

python实现在线 ChatGLM调用

python实现在线 ChatGLM调用 1. 申请调用权限: 收钱进入到质谱AI开放平台,点击“开始使用”或者“开发者工具台”进行注册: 对于需要使用 API key 来搭建应用的话,需要点击右边红框中的查看 API key,就会进入到我们…

yolov8 pose keypoint解读

yolov8进行关键点检测的代码如下: from ultralytics import YOLO# Load a model model YOLO(yolov8n.pt) # pretrained YOLOv8n model# Run batched inference on a list of images results model([im1.jpg, im2.jpg]) # return a list of Results objects# Pr…

【408直通车】(考研数一、二、三合集)高等数学公式全覆盖(上)

数学集合定义总结: 自然数集( N \mathbb{N} N):包括0、1、2、3等正整数,即 { 0 , 1 , 2 , … } \{0, 1, 2, \ldots\} {0,1,2,…}。 整数集( Z \mathbb{Z} Z):包括负整数、0和正整数…

读所罗门的密码笔记04_社会信用

1. 人工智能 1.1. 人工智能可以帮助人们处理复杂的大气问题,完善现有的气候变化模拟,帮助我们更好地了解人类活动对环境造成的危害,以及如何减少这种危害 1.2. 人工智能也有助于减少森林退化和非法砍伐 1.3. 人工智能甚至可以将我们从枯燥…

代码随想录算法训练营 Day29 回溯算法5

Day29 回溯算法5 491.递增子序列 思路 跟上一题类似,需要去重 但问题是该题要求递增子序列,因此不能在一开始将数组排序,不知道这种情况如何去重 根据代码随想录 要点: 本题不可以对数组进行排序对于每一层使用uset记录取过的…

RISC-V特权架构 - 中断定义

RISC-V特权架构 - 中断定义 1 中断类型1.1 外部中断1.2 计时器中断1.3 软件中断1.4 调试中断 2 中断屏蔽3 中断等待4 中断优先级与仲裁5 中断嵌套6 异常相关寄存器 本文属于《 RISC-V指令集基础系列教程》之一,欢迎查看其它文章。 1 中断类型 RISC-V 架构定义的中…

idea打开文件乱码,设置编码

idea整个项目都设置了utf-8了,但是还是有一个文件是其他编码_(ཀ」 ∠)__ 。 配置项目编码 在设置中设置编码 配置具体目录的编码 上面的设置之后,还是有几个文件一直是乱码,需要单独配置。 偶尔引入的依赖中的文件也会乱码,需…

题目:摆花(蓝桥OJ 0389)

问题描述&#xff1a; 题解&#xff1a; #include <bits/stdc.h> using namespace std; using ll long long; const int N 105; const ll p 1e6 7; ll a[N], dp[N][N];int main() {int n, m; cin >> n >> m;for(int i 1; i < n; i)cin >> a[i…

JVM内存 垃圾收集器

JVM&#xff08;Java虚拟机&#xff09;内存管理和垃圾收集器是Java编程中非常重要的概念。JVM内存主要划分为几个不同的区域&#xff0c;每个区域都有其特定的用途。而垃圾收集器则是负责自动管理这些内存区域&#xff0c;回收不再使用的对象&#xff0c;以释放内存。 首先&a…

什么是双亲委派机制,如何打破双亲委派

了解双亲委派前&#xff0c;我们需要先了解下类加载器。 什么是类加载器呢 在Java中&#xff0c;类加载器&#xff08;ClassLoader&#xff09;负责将类文件加载到Java虚拟机中&#xff0c;并生成对应的 Class 对象。类加载器的分类和对应的作用如下&#xff1a; 启动类加载器…