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

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

文章目录

  • 一、前言
  • 二、软件可靠性基础概念
  • 三、软件可靠性建模方法
  • 四、软件可靠性设计
    • 4.1 容错设计
    • 4.2 检错设计
    • 4.3 降低复杂度设计
    • 4.4 系统配置设计
  • 五、软件可靠性测试

一、前言

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

二、软件可靠性基础概念

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

三、软件可靠性建模方法

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

四、软件可靠性设计

4.1 容错设计

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

4.2 检错设计

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

4.3 降低复杂度设计

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

4.4 系统配置设计

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

五、软件可靠性测试

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

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


http://www.kler.cn/a/418918.html

相关文章:

  • Django Auth的基本使用
  • 组播基础实验
  • Spark Optimization —— Reducing Shuffle
  • QT6学习第六天 初识QML
  • 服务熔断-熔断器设计
  • go使用mysql实现增删改查操作
  • 【AI】数据,算力,算法和应用(3)
  • Flutter | 基于函数式编程的通用单选列表设计
  • unity工程转为安卓使用的aar文件
  • 黑马2024AI+JavaWeb开发入门Day05-数据库DDL、DML、DQL飞书作业
  • windows电脑上安装树莓派操作系统
  • Ubuntu问题 -- 使用scp将本机文件传输至ubuntu服务器中
  • Linux 链接概念
  • antd table 自定义表头过滤表格内容
  • flutter 解决webview加载重定向h5页面 返回重复加载问题
  • 电脑cpu带的字母代表啥
  • 牛客面经学习【2024/12/1】
  • 剪映自动批量替换视频、图片素材教程,视频批量复刻、混剪裂变等功能介绍
  • PDF版地形图矢量出现的问题
  • Linux下的root密码重置
  • Dockerfile打包部署
  • MYSQL 什么是内连接 外连接 左连接 右连接?及适用场景
  • C++11新增特性2
  • vue3typescript,shims-vue.d.ts中declare module的vue声明
  • C-操作符
  • Linux虚拟机安装nginx踩坑记录