【软考速通笔记】系统架构设计师⑨——软件可靠性基础知识

文章目录

一、前言

笔记目录大纲请查阅:【软考速通笔记】系统架构设计师------导读

二、软件可靠性基础概念

软件可靠性是指在规定时间内,软件不引起系统失效的概率。

三、软件可靠性建模方法

  • 种子法
  • 失效率类
  • 曲线拟合类
  • 可靠性增长
  • 程序结构分析
  • 输入域分类
  • 执行路径分析方法
  • 非齐次泊松过程
  • 马尔科夫过程
  • 贝叶斯分析

四、软件可靠性设计

4.1 容错设计

  • 恢复快设计:在发生错误时,软件可以回退到一个安全的状态,并重新尝试执行任务。
  • N版本程序设计:通过并行运行多个功能相同但实现不同的程序版本,并比较它们的输出来提高可靠性。这种方法利用多个版本的冗余性来检测和纠正潜在的错误,从而提高软件的容错能力。
  • 冗余设计:为了提高可靠性而故意在软件中添加额外的资源或信息。冗余设计可以包括结构冗余、信息冗余和时间冗余等多种形式。结构冗余是指在软件或硬件中故意增加额外的组件,如备份系统或数据副本;信息冗余则是通过增加额外的信息(如校验码)来检测或修正错误;时间冗余则是通过重复执行操作来校验结果的正确性。

4.2 检错设计

  • 4要素:检测对象、检测延时、实现方式、处理方式

4.3 降低复杂度设计

  • 简化软件结构
  • 缩短程序代码长度
  • 优化软件数据流向
  • 降低软件复杂度
  • 提高软件可靠性

4.4 系统配置设计

  • 双机热备:主系统正常运行,备用系统处于待命且监视主系统状态(心跳或者其他方法),准备在主系统发生故障时接管。
  • 服务器集群技术:将多台服务器组成一个集群,共同对外提供服务。通过负载均衡和故障转移等机制,确保集群中的服务器能够高效、稳定地运行。

五、软件可靠性测试

  • 广义的可靠性测试:为了最终评价软件系统的可靠性而运用建模、设计、试验、分析和评价等一系列手段对软件系统实施的一种测试。
  • 狭义的可靠性测试:为了获取可靠性数据,按预先确定好的测试用例,在软件预期使用环境中,对软件实施的一种测试

若觉得文章对你有帮助,随手『点赞』、『收藏』、『关注』,也是对我的支持。

相关推荐
Yawesh_best5 小时前
告别系统壁垒!WSL+cpolar 让跨平台开发效率翻倍
运维·服务器·数据库·笔记·web安全
Ccjf酷儿7 小时前
操作系统 蒋炎岩 3.硬件视角的操作系统
笔记
习习.y7 小时前
python笔记梳理以及一些题目整理
开发语言·笔记·python
在逃热干面8 小时前
(笔记)自定义 systemd 服务
笔记
DKPT9 小时前
ZGC和G1收集器相比哪个更好?
java·jvm·笔记·学习·spring
QT 小鲜肉10 小时前
【孙子兵法之上篇】001. 孙子兵法·计篇
笔记·读书·孙子兵法
星轨初途12 小时前
数据结构排序算法详解(5)——非比较函数:计数排序(鸽巢原理)及排序算法复杂度和稳定性分析
c语言·开发语言·数据结构·经验分享·笔记·算法·排序算法
QT 小鲜肉12 小时前
【孙子兵法之上篇】001. 孙子兵法·计篇深度解析与现代应用
笔记·读书·孙子兵法
p***q7812 小时前
docker离线安装及部署各类中间件(x86系统架构)
docker·中间件·系统架构
love530love14 小时前
【笔记】ComfUI RIFEInterpolation 节点缺失问题(cupy CUDA 安装)解决方案
人工智能·windows·笔记·python·插件·comfyui