深入解析:软考系统架构设计师知识点-软件可靠性基础

news/2025/10/23 15:53:22/文章来源:https://www.cnblogs.com/slgkaifa/p/19160876

深入解析:软考系统架构设计师知识点-软件可靠性基础

知识点概览

  • 软件可靠性基本概念:软件可靠性定义、软件可靠性的定量描述、可靠性测试的意义、广义的可靠性测试和狭义的可靠性测试
  • 软件可靠性建模:影响软件可靠性的因素、软件可靠性的建模方法、软件的可靠性模型分类
  • 软件可靠性管理:需求分析阶段、概要设计阶段、详细设计阶段、编码阶段、测试阶段、实施阶段
  • 软件可靠性设计:容错设计技术、检错技术、降低复杂度设计、系统配置技术
  • 软件可靠性测试:定义软件运行剖面、设计可靠性测试用例、实施可靠性测试
  • 软件可靠性评价:选择可靠性模型、收集可靠性数据、可靠性评估和预测

软件可靠性定义

软件可靠性是软件产品在规定的条件下和规定的时间区间完成规定作用的能力。

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

  1. 复杂性:软件复杂性比硬件高,大部分失效来自于软件失效。
  2. 物理退化:软件不存在物理退化现象,硬件失效核心是由于物理退化所致。
  3. 唯一性:软件是唯一的,每个复制版本都一样,而两个硬件不可能完全一样。
  4. 版本更新周期:硬件较慢,软件较快。

软件可靠性的定量描述

软件可靠性的定量描述

  • 规定时间:自然时间、运行时间、执行时间(占用CPU)。
  • 失效概率:软件运行初始时刻失效概率为0,随着时间增长单调递增,不断趋向于1。
  • 可靠度:软件系统在规定的条件下、规定的时间内不发生失效的概率。等于1-失效概率。
  • 失效强度:单位时间软件系统出现失效的概率。
  • 平均失效前时间(MTTF):平均失效等待时间,系统从开始运行到发生第一次故障所经历的平均时间。
  • 平均恢复前时间(MTTR):平均修复时间,从出现故障到修复成功的时间。
  • 平均故障间隔时间(MTBF):平均失效间隔时间,失效或维护中所需的平均时间,包括故障时间以及检测和维护设备的时间。(框架两次连续故障之间的平均时间)。MTBF=MTTF+MTTR。
  • 系统可用性=MTTF/(MTTF+MTTR)*100%。

串并联系统可靠性

无论什么系统,都是由多个设备组成,并协同工作,而这多个设备的组合方式可以是串联、并联,也可以是混合模式,假设每个设备的可靠性为 R1 R2…Rn ,则:

串联系统可靠性:

并联系统可靠性:

可靠性目标

可靠性目标是指客户对软件性能满意程度的期望。通常用可靠度、故障强度和平均失效时间(MTTF)等指标来描述。

可靠性测试的意义

可靠性测试的意义

  • 软件失效可能造成灾难性的后果。
  • 软件的失效在整个计算机系统失效中的比例较高。
  • 软件可靠性技术很不成熟,加剧了软件可靠性问题的重要性。
  • 软件可靠性问题是造成软件费用增长的首要原因之一。
  • 环境对于软件的依赖性越来越强,软件对生产活动和社会生活的影响越来越大,从而增加了软件可靠性难题在软件工程领域乃至整个计算机工程领域的重要性。

可靠性测试的目的

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

广义的可靠性测试和狭义的可靠性测试

广义的软件可靠性测试是指为了最终评价软件系统的可靠性而运用建模、统计、试验、分析和评价等一系列手段对软件系统实施的一种测试。

狭义的软件可靠性测试是指为了获取可靠性数据,按预先确定的测试用例,在软件的预期使用环境中,对软件实施的一种测试。它是面向缺陷的测试,以用户将要使用的方式来测试软件。

影响软件可靠性的因素

指为预计或估算软件的可靠性所建立的可靠性框图和数学模型。就是软件可靠性模型

从技术的角度来看,影响软件可靠性的主要因素包括:运行剖面(环境)、软件规模、软件内部结构、软件的开发方法和开发环境、软件的可靠性投入。

软件可靠性的建模方法

一个软件可靠性模型通常(但不是绝对)由以下几部分组成:

大多数的模型包含3个共同假设:

软件的可靠性模型分类

软件的可靠性分类

  1. 种子法模型。利用捕获-再捕获抽样技能估计程序中的错误数,在程序中预先有意“播种”一些设定的错误“种子”,然后根据测试出的原始错误数和发现的诱导错误的比例,来估计程序中残留的错误数。
  2. 失效率类模型。用来研究程序的失效率。
  3. 曲线拟合类模型。用回归分析的技巧研究软件复杂性、软件中的缺陷数、失效率、失效间隔时间。
  4. 可靠性增长模型。这类模型预测软件在检错过程中的可靠性改进,用增长函数来描述软件的改进过程。
  5. 程序结构分析模型。是根据程序、子程序及其相互间的调用关系,形成一个可靠性分析网络。
  6. 输入域分类模型。选取软件输入域中的某些样本“点”运行程序,根据这些样本点在“实际”使用环境中的使用概率的测试运行时的成功/失效率,推断软件的使用可靠性。
  7. 执行路径分析方法模型。分析方法与上面的模型相似,先计算程序各逻辑路径的执行概率和程序中错误路径的执行概率,再综合出该软件的使用可靠性。
  8. 非齐次泊松过程模型。是以软件测试过程中单位时间的失效次数为独立泊松随机变量,来预测在今后软件的某使用时间点的累计失效数。
  9. 马尔可夫过程模型。
  10. 利用失效率的试验前分布和当前的测试失效信息,来评估软件的可靠性。就是贝叶斯模型。

软件的可靠性管理

软件可靠性管理是软件工程管理的一部分,它以全面提高和保证软件可靠性为目标,以软件可靠性活动为主要对象,是把现代管理理论用于软件生命周期中的可靠性保障活动的一种管理形式。

软件可靠性管理的内容包括软件工程各个阶段的可靠性活动的目标、计划、进度、任务和修正措施等。软件工程各个阶段可能进行的主要软件可靠性活动如下:

软件可靠性设计

实践证明,保障软件可靠性最管用、最经济、最重要的手段是在软件设计阶段采取措施进行可靠性控制。

在常规的软件设计中,应用各种方法和技术,使程序设计在兼顾用户的功能和性能需求的同时,全面满足软件的可靠性要求。就是可靠性设计就

软件可靠性设计的原则:

  • 软件可靠性设计是软件设计的一部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。
  • 软件可靠性设计在满足提高软件质量要求的前提下,以提高和保障软件可靠性为最终目标。
  • 软件可靠性设计应确定软件的可靠性目标,不能无限扩大化,并且排在作用度、用户需求和开发费用之后考虑。

软件可靠性设计技术主要有容错设计、检错设计、降低复杂度设计和系统配置科技等技术。

采用冗余手段来消除故障的影响。就是提高系统可靠性的技术可以分为避错(排错)技术和容错技术。避错是通过技术评审、系统测试和正确性证明等技术,在环境正式运行之前避免、发现和改正错误。容错是指系统在运行过程中发生一定的硬件故障或软件错误时,仍能保持正常工作而不影响正确结果的一种性能或措施。容错技能首要

冗余是指在正常系统运行所需的基础上加上一定数量的资源,包括信息、时间、硬件和软件。冗余是容错技术的基础,通过冗余资源的加入,许可使系统的可靠性得到较大的提高。主要的冗余技术有结构冗余(静态、动态、混合)、信息冗余、时间冗余和冗余附加4种。

容错设计技术

软件容错技术主要有恢复块设计、N版本程序设计和冗余设计等方法。

恢复块设计与N版本程序设计的比较

对比恢复块方法N 版本程序设计
硬件运行环境单机多机
错误检测方法验证测试程序表决
恢复策略后向恢复前向恢复
实时性

前向恢复:使当前的计算继续下去,把框架恢复成连贯的正确状态,弥补当前状态的不连贯情况。

后向恢复:系统恢复到前一个正确状态,继续执行。

检错技术

在软件系统中,对无须在线容错的地方或不能采用冗余设计技能的部分,倘若对可靠性要求较高,故障有可能导致严重的后果,一般采用检错技术。检错技术构建的代价一般低于容错技术和冗余技术,但是不能自动解决故障,需要人工干预。

采用检错设计技术要着重考虑几个要素:检测对象、检测延时、建立方式和处理方式。

降低复杂度设计

在保证实现软件功能的基础上,简化软件结构,缩短程序代码长度,优化软件数据流向,降低软件复杂度,从而提高软件可靠性。就是降低复杂度设计的思想就

系统配置技术

通常在系统配置中可以采用容错工艺,通过系统的整体来提供相应的可靠性,主要有双机热备技术和服务器集群技术。

双机热备技术

双机热备技术是一种软硬件结合的较高容错应用方案。该方案是由两台服务器和一个外接共享磁盘阵列柜及相应的双机热备份软件组成。双机热备系统采用“心跳”方法保证主系统与备用系统的联系。所谓“心跳”,是指主从系统之间相互按照一定的时间间隔发送通信信号,表明各自系统当前的运行状态。一旦“心跳”信号表明主机架构发生故障,或者备用系统无法收到主系统的“心跳”信号,则系统的高可用性管理软件认为主架构发生故障,立即将架构资源转移到备用系统上,备用系统替代主环境工作,以保证系统正常运行和网络服务不间断。

有3种工作模式:双机热备模式;双机互备模式;双机双工模式。

  • 双机热备模式:即通常所说的Active/Standby方式,Active服务器处于工作状态;而Standby服务器处于监控准备状态,服务器数据包括数据库数据同时往两台或多台服务器写入,保证数据的即时同步。当Active服务器出现故障时,通过软件诊测或手工方式将 Standby 机器激活,保证应用在短时间内完全恢复正常使用。这是目前采用较多的一种模式,但由于另外一台服务器长期处于后备的状态,就存在一定的计算资源浪费。
  • 双机互备模式:是两个相对独立的应用在两台机器同时运行,但彼此均设为备机,当某一台服务器出现故障时,另一台服务器可以在短时间内将故障服务器的应用接管过来,从而保证了应用的持续性,但对服务器的性能要求比较高。
  • 双机双工模式:是集群的一种形式,两台服务器均处于活动状态,同时运行相同的应用,以保证整体系统的性能,也实现了负载均衡和互为备份,通常使用磁盘柜存储技术。Web服务器或FTP服务器等用此种方式比较多。

服务器集群技术

集群手艺是指一组相互独立的服务器在网络中组合成为单一的系统工作,并以单一系统的模式加以管理。(将多台计算机组织起来进行协同工作)

在集群系统中,每台计算机均承担部分计算任务和容错任务,当其中一台计算机出现故障时,系统使用集群软件将这台计算机从系统中隔离出去,通过各计算机之间的负载转嫁机制搞定新的负载分担,同时向系统管理人员发出警报。集群体系通过功能整合和故障过渡,建立了系统的高可用性和可靠性。

特点:可伸缩性、高可用性、可管理性、高性价比、高透明性。

分类:高性能计算集群、负载均衡集群、高可用性集群。

负载均衡技术

负载均衡是集群系统中的一项重点技术,可以提高集群架构的整体处理能力和系统可靠性,最终目的是加快集群系统的响应速度,提高客户端访问的成功概率。集群的最大特征是多个节点的并行和共同工作,如何让所有节点承受的负荷平均,不出现局部过大负载或过轻负载的情况,是负载均衡的重要目的。比较常用的负载均衡搭建技术主要有以下几种:

  • 基于特定软件的负载均衡(应用层)。很多网络协议都支持重定向功能,例如,基于HTTP重定向服务,其主导原理是服务器使用HTTP重定向指令,将一个客户端重新定位到另一个位置。服务器返回一个重定向响应,而不是返回请求的对象。客户端确认新地址然后重发请求,从而达到负载均衡的目的。
  • 在DNS服务器中为同一个主机名配置多个地址,在应答DNS查询时,DNS服务器对每个查询将以DNS文件中主机记录的IP地址按顺序返回不同的解析结果,将客户端的访问引导到不同的节点上去,使得不同的客户端访问不同的节点,从而达到负载均衡的目的。就是基于 DNS的负载均衡(传输层),主要原理
  • 基于NAT的负载均衡。将一个外部IP地址映射为多个内部IP地址,对每次连接需求,动态地转换为一个内部节点的地址,将外部连接请求引导给得到地址的那个节点上,从而达到负载均衡的目的。
  • 反向代理负载均衡。将来自Internet上的连接请求以反向代理的方式动态地转发给内部网络上的多个节点进行处理,从而达到负载均衡的目的
  • 混合型负载均衡。

软件可靠性测试

软件可靠性测试由可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果的分析等主要活动组成。

软件可靠性测试的步骤:定义软件运行剖面(为软件的使用行为建模,开发使用模型,明确需要测试的内容)——设计可靠性测试用例——实施可靠性测试。

通过软件可靠性数据是可靠性评价的基础。用时间定义的软件可靠性材料能够分为4类:

  1. 失效时间数据:记录发生一次失效所累积经历的时间。
  2. 失效间隔时间内容:记录本次失效与上一次失效间的间隔时间。
  3. 分组时间内的失效数:记录某个时间区内发生了多少次失效。
  4. 分组时间的累积失效数:记录到某个区间的累积失效数。

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

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

相关文章

Windows Server 2019 中文版、英文版下载 (2025 年 10 月更新)

Windows Server 2019 中文版、英文版下载 (2025 年 10 月更新)Windows Server 2019 中文版、英文版下载 (2025 年 10 月更新) Windows Server 2019 x64 Version 1809 (updated Oct 2025) 请访问原文链接:https://sysi…

CF1140E Palindrome-less Arrays

首先发现回文串的限制太强了,我们来弱化一下这个限制,不难发现相当于要求 \(a_i \ne a_{i + 2}\),此时我们奇数位和偶数位分开处理,发现就是要你填数使得相邻位不同,我们对于每个连续 \(-1\) 段考虑即可,发现其只…

Windows Server 2016 中文版、英文版下载 (2025 年 10 月更新)

Windows Server 2016 中文版、英文版下载 (2025 年 10 月更新)Windows Server 2016 中文版、英文版下载 (2025 年 10 月更新) Windows Server 2016 x64 Version 1607 (updated Oct 2025) 请访问原文链接:https://sysi…

Windows 7 Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)

Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新)Windows 7 & Windows Server 2008 R2 简体中文版下载 (2025 年 10 月更新) Windows 7 & Windows Server 2008 R2 (updated Oct 20…

foobar2000下载安装教程:从入门到配置的完整指南(2025最新版)

本文是一篇 2025最新版 foobar2000 下载与安装教程,从入门到进阶配置,全面讲解如何在 Windows 系统上下载安装 foobar2000、设置中文界面、优化音质输出(WASAPI/ASIO),以及安装常用插件与主题。文章还针对播放异常…

20 万奖金池就位!Higress AI 网关开发挑战赛参赛指南

作者:澄潭 大赛背景,请移步至:《一等奖6万,Higress AI 网关开发挑战赛正式上线》01 大赛技术栈核心解读 1.1 扩展 Higress:Go 与 Wasm 插件入门 插件是向 Higress 数据平面注入智能的核心机制。本次大赛的所有赛题…

10.17 NOIP 模拟赛 T2. 箱思客

前言 很难不注意到我还有一个线段树合并, 一个神秘的 \(\text{CSP-S T4}\) 排列没有搞, 还有一个 \(\text{T3}\) 不管怎么样一定要注意停滞, 解决 思路 不难发现就是每次取了之后是否放回去的一个期望问题 首先考虑概率…

Serverless 应用引擎 SAE:为传统应用托底,为 AI 创新加速

本文整理自 2025 云栖大会,阿里云智能集团高级产品专家张凤婷的演讲 在容器技术持续演进与 AI 全面爆发的当下,企业既要稳健托管传统业务,又要高效落地 AI 创新,如何在复杂的基础设施与频繁的版本变化中保持敏捷、…

c++ 容器clear函数无法释放对象

class MyClassA { public:MyClassA():b(new char[12]) {memset(b, 0, 12);strcpy(b,"hello");cout << "构造" << endl;}~MyClassA() {if (b) {cout << "析构" <&l…

编织袋定制生产厂家:基于专业测评的技术、工艺及市场优势深度分析

在工业与农业包装领域,编织袋因其强度高、成本效益优、可定制性强等特点,占据着不可替代的地位。面对市场上众多的生产厂家,如何甄别出真正具备强大产能、卓越品质和稳定服务能力的供应商,成为采购决策的关键。本文…

2025 最新瓷砖厂家推荐榜:精选绿色创新与优质服务品牌,助力家装工程选购不踩坑

引言 家居消费升级与绿色发展浪潮下,瓷砖行业迎来品质迭代与创新加速,但市场品牌鱼龙混杂、产品同质化严重的问题仍未解决。消费者与工程采购方常陷入 “重外观轻环保”“重价格轻品质” 的误区,面临放射性超标、耐…

零样本学习(Zero-Shot Learning‌)

CLIP的四亿数据集预训练过程中,是见到过“platypus”这个词汇的; 四亿数据集中可能没有“鸭嘴兽图片”,但是我们输入的鸭嘴兽图片会有部分特征与预训练过程中大量大量图片中的部分特征相似,比如说鸭嘴兽有尖嘴,预…

docker 创建私有仓库

docker 创建私有仓库//查询nginxdocker login docker.1ms.run docker search docker.1ms.run/nginx docker pull docker.1ms.run/nginx -------------------------------------------------------------------//运行ng…

mac安装stable diffusion简易部署

1、到python官网下载安装python 3.10.6版本 2、到github下载stable diffusion https://github.com/AUTOMATIC1111/stable-diffusion-webui 3、下载的压缩包双击后,把解压的文件放在用户名文件夹下一级 4、运行,终端进…

视频汇聚平台EasyCVR如何构建智慧农业监控监管系统? - 实践

视频汇聚平台EasyCVR如何构建智慧农业监控监管系统? - 实践pre { white-space: pre !important; word-wrap: normal !important; overflow-x: auto !important; display: block !important; font-family: "Conso…

100列表_切片_slice_步长_step_翻转_reverse

100列表_切片_slice_步长_step_翻转_reverse$(".postTitle2").removeClass("postTitle2").addClass("singleposttitle");列表_切片_slice_步长_step_翻转_reverse 回忆上次 对切片 赋了…

可视化图解算法65:有效的字母异位词

对于数据结构与算法,我们总结了一套【可视化+图解】方法,依据此方法来解决相关问题,算法变得易于理解,写出来的代码可读性高也不容易出错。1.题目 描述 给定两个字符串 s 和 t ,编写一个函数来判断 t 是否是 s 的…

2025 年传感器厂家最新推荐排行榜:磁致伸缩 / 防爆 / 防水 / 隔爆 / 线性等类型传感器企业实力与产品优势解析

引言 当前传感器行业蓬勃发展,产品类型日益丰富,但市场上品牌良莠不齐,技术水平、产品质量和服务能力差异显著,给企业及采购者带来极大选择困扰。在工业生产、重点工程等场景中,对传感器的高精度、稳定性、耐用性…

2025 年加热线圈厂家最新推荐排行榜:聚焦行业头部企业,深度解析优质品牌核心优势与选购价值轴承外感应加热线圈 / 轴承座内圈加热线圈 / 感应加热线圈公司推荐

引言 当前加热线圈市场品牌繁杂,产品质量参差不齐,部分产品存在加热不均匀、寿命短、能耗高等问题,难以满足机械制造、汽车工业、风电装备等领域对高精度、高可靠性加热的需求。同时,不同行业对加热线圈的定制化要…