系统架构师考试学习笔记第三篇——架构设计高级知识(11)软件可靠性基础知识

本章知识点:

        第11课时主要学习软件可靠性基本概念、建模、管理、设计、测试和评价等内容。本课时内容侧重于概念知识,根据以往全国计算机技术与软件专业技术资格(水平)考试的出题规律,考查的知识点多来源于教材,扩展内容较少。根据考试大纲,本课时知识点会涉及单项选择题(约占2~3分),论文也会有涉及。本课时知识架构如图11.1所示。

一、软件可靠性基本概念

1.软件可靠性的定义


        软件可靠性是指在规定的时间内,软件不引起系统失效的概率。该概率是系统输入和系统使用的函数,也是软件中存在的缺陷函数;系统输入将确定是否会遇到已存在的缺陷。


2.软件可靠性的定量描述


        软件的可靠性是在软件使用条件、在规定时间内、系统的输入/输出、系统使用等变量构成的数学表达式,如图11.2所示。

3.可靠性的目标


        软件可靠性是指用户对所使用的软件的性能满意程度的期望。可以用可靠度、平均失效时间和故障强度等来描述。


4.可靠性测试的意义与目的


        可靠性测试的意义是:
        (1)软件失效可能造成灾难性的后果。
        (2)软件的失效在整个计算机系统失效中的比例较高。
        (3)相比硬件可靠性技术,软件可靠性技术不成熟。
        (4)软件可靠性问题会造成软件费用增长。

      (5)系统对软件的依赖性强,对生产活动和社会生活影响目益增大。

可靠性测试的目的如图11,3所示。

5.广义的可靠性测试与狭义的可靠性测试


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

二、软件可靠性建模

        (1)影响软件可靠性的因素包括:运行环境、软件规模、软件的内部结构、软件的开发方法和开发环境、软件的可靠性投入。
        (2)软件可靠性模型的组成和特性,如图11.4所示。

        (3)软件可靠性建模方法包括:种子法、失效率类、曲线拟合类、可靠性增长、程序结构分析、输入域分类、执行路径分析方法、非齐次泊松过程、马尔可夫过程、贝叶斯分析。

三、软件可靠性管理

        软件可靠性管理的各阶段,如图11.5所示。

四、软件可靠性设计 

        软件可靠性设计技术有:容错设计技术、检错技术、降低复杂度设计、系统配置技术。
(1)容错设计技术:恢复块设计、N版本程序设计、冗余设计。
        1)恢复块设计:选择一组操作作为容错设计单元,把普通的程序块变成恢复块。
        2)N版本程序设计:通过设计多个模块或不同版本,对相同初始条件和相同输入的操作结果,实行多数表决,防止其中某一软件模块/版本的故障提供错误的服务。
        3)冗余设计:在一套完整的软件系统之外,设计一种不同路径、不同算法或不同实现方式方法的模块或系统作为备份,在出现故障时可使用冗余部分进行替换。
(2)检错技术。
        1)检错技术代价低于容错技术和冗余技术,但是不能自动解决故障,需要人工干预。
        2)检错技术着重考虑检测对象、检测延时、实现方式、处理方式四个要素。
(3)降低复杂度设计。
降低复杂度设计思想是在保证实现软件功能基础上,简化软件结构、缩短程序代码长度、优化软件数据流向、降低软件复杂度、提高软件可靠性。

(4)系统配置技术:可以分为双机热备技术和服务器集群技术。
        1)双机热备技术。
        ·采用“心跳”方法保证主系统与备用系统的联系。
        ·根据两台服务器的工作方式分为双机热备模式(十台工作,一台后备)、双机互备模式(两台运行相对独立应用,互为后备)、双机双工模式(两台同时运行相同应用,互为后备)。
        2)服务器集群技术。
        集群内各节点服务器通过内部局域网相互通信,若某节点服务器发生故障,这台服务器运行的应用被另一节点服务器自动接管。

五、软件可靠性测试

1.软件可靠性测试概述


        软件可靠性测试包括:可靠性目标的确定、运行剖面的开发、测试用例的设计、测试实施、测试结果分析等。


2.定义软件运行剖面


        为软件的使用行为建模,开发使用模型,明确需测试内容。


3.软件可靠性测试用例设计


        测试用例要能够反映实际的使用情况,优先测试最重要的和最频繁使用的功能,其组成如图11.6所示。设计测试用例,针对组合功能或特定功能,编写成相关文档。

4.数件可靠性测试的实施


        用时间定义的软件可靠性数据分为4类:失效时间数据、失效间隔时间数据、分组时间内的失效数据、分组时间内的累积失效数。
        测试记录与测试报告的组成如图11.7所示。

六、软件可靠性评价

1.软件可靠性评价概念


        评估和预测软件可靠性过程包括:
        (1)选择可靠性模型。
        (2)收集可靠性数据。
        (3)可靠性评估和预测。


2.如何选择可靠性模型


        可以从以下几方面选择可靠性模型:
        (1)模型假设的适用性。
        (2)预测的能力与质量。
        (3)模型输出值能否满足可靠性的评价需求。
        (4)模型使用的简便性。


3.可靠性数据的收集


        数据收集可行的办法有:
        (1)尽可能早地确定可靠性模型。
        (2)数据收集计划要有较强的可操作性。

        (3)重视测试数据的分析和整理。
        (4)充分利用技术手段(数据库技术)来完成分析和统计。


4.软件可靠性的评估和预测


        (1)软件可靠性的评估和预测的目的是评估软件系统的可靠性状况和预测将来一段时间的可靠性水平。
        (2)软件可靠性的评估和预测以软件可靠性模型分析为主,以失效数据的图形分析法和试探性数据分析技术等为辅。

七、课后练习

1.采用检错设计技术要着重考虑四个要素:检测对象、()、实现方法和处理方式。
A.检测延时
B.测试结果
C.性能测试
D.功能测试

2.(   )是通常所说的Active/Standby方式,Active服务器处于工作状态,Standby服务器处于监控准备状态,服务器数据包括数据库数据同时往两台或多台服务器写入,保证数据的即时同步。
A.双机热备
B.双机互备
C.双机双工
D.服务器集群

答案解析:

1、解析:对软件可靠性管理的检错技术的考查。采用检错设计技术要着重考虑4个要素:检测对象、检测延时、实现方法和处理方式。
答案:A

2、解析:对软件可靠性管理的检错技术的考查。
一台服务器处于工作状态,另一台处于后备状态,是双机热备模式。
答案:A

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

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

相关文章

赞奇科技与华为云共襄828 B2B企业节,激活数字内容“云”创作

8月28日,在2024中国国际大数据产业博览会上,第三届828 B2B企业节正式开幕,旨在融通数智供需,加速企业智改数转,助推中国数智产业实力再升级。 828 B2B企业节是全国首个基于数字化赋能的企业节,由华为联合上…

SprinBoot+Vue学生选课微信小程序的设计与实现

目录 1 项目介绍2 项目截图3 核心代码3.1 Controller3.2 Service3.3 Dao3.4 application.yml3.5 SpringbootApplication3.5 Vue3.6 uniapp代码 4 数据库表设计5 文档参考6 计算机毕设选题推荐7 源码获取 1 项目介绍 博主个人介绍:CSDN认证博客专家,CSDN平…

C++使用日志库经验总结

1、log4cpp日志源文件路径设置 在 Visual Studio 中,C 项目的日志格式可以通过设置项目的属性来调整。如果你想要使用完整路径来显示诊断消息,可以在项目属性中的“C/C”选项卡下的“高级”属性页中找到“使用完整路径”(/FC)选项…

探索数字化生态平台的特色功能,开启未来新征程

在数字化浪潮席卷全球的今天,数字化生态平台正以惊人的速度崛起,成为推动经济发展与社会进步的强大引擎。那么,这些平台究竟有哪些独特的特色功能呢?让我们一同深入探索。 首先,我们要明确数字化生态平台的定义。它是利…

ParallelsDesktop19可在任何Mac上运行Windows软件

ParallelsDesktop19是一款Mac虚拟机软件,可在任何Mac上运行Windows,体验不同操作系统之间的无缝集成,并具有创新设计和增强功能,如无密码登录与TouchID、支持macOSSonoma14和增强打印选项。此外,它还支持运行更多Windo…

第二证券:大洗牌!头部券商营收、净利集体下滑

前十券商营收团体下滑,银河证券跌幅最小 新股IPO数量锐减129家至44家,国内证券市场股票基金交易量日均规划 同比下降 6.83%……关于证券公司而言,本年上半年可谓多重要素叠加冲击,成果下滑难以避免。于大多数证券公司而言&#x…

01、echart的基本使用

一 为什么使用echarts 丰富的可视化类型(柱状图、散点图、雷达图…) 多种数据格式无需转换直接使用 千万数据的前端展现移动端优化 多渲染方案,跨平台 动态数据 绚丽的特效 二echarts快速上手 方式一: 从gi thup中下载ech…

redroid搭建云手机学习笔记(一)

参考链接 通过Redroid搭建自己的云手机 docker安装 docker官网目前打不开了,通过官网安装的方式无法实现,这里需要借助镜像网站来实现docker的安装 参考链接:https://developer.aliyun.com/mirror/docker-ce # step 1: 安装必要的一些系统…

强化学习实操入门随笔

碎碎念:经过思考,打通底层逻辑,我认为未来ai的功能是在沟通领域代替人,未来人-人模式(媒介是死的语言,比如看古人留下的文字、聊天的暂时不在)会变成人-ai替身-人模式(符合本人想法的…

selenium(一)基于java、元素定位

Selenium自动化 Selenium是一个用于Web应用程序的自动化测试工具。它直接运行在浏览器中,可以模拟用户在浏览器上面的行为操作。 chrome下载 https://www.google.com/chrome/ 下载的结果是 “ChromeSetup.exe”,双击该文件,安装程序会自…

1、Java简介+DOS命令+java的编译运行(字节码/机器码、JRE/JVM/JDK/JIT的区别)+一个简单的Java程序

前言:本文属于黑马程序员和javaguide的混合笔记,仅作学习分享使用,建议感兴趣的小伙伴去看黑马原视频或javaguide原文。如有侵权,请联系删除。 Java类型: JavaSE 标准版:以前称为J2SE,主要用来…

网站开发:HTML+CSS - 表格与表单

1. 前言​​​​​​​​​​​​​​ 表格与表单在网页开发中非常重要。表格使得用户可以更简洁清晰的去浏览信息。 表单提供了一种在客户端(浏览器)和服务器之间进行数据交互的方式。 以下为其主要作用: 用户交互和数据输入:表…

【ragflow】安装2:源码安装依赖

中文文档【ragflow】安装1: docker:失败官方说的成功 docker 安装的启动失败 重新来一遍,不会重新拉取: root@k8s-master-pfsrv:/home/zhangbin/perfwork/rag# cd ragflow/ root@k8s-master-pfsrv:/home/

USB3202N多功能数据采集卡16位模拟量250K频率LabVIEW采集卡

品牌:阿尔泰科技 系列:多功能数据采集卡 概述: USB3202N多功能数据采集卡,LabVIEW无缝连接,提供图形化API函数,提供8通道(RSE、NRSE)、4通道(DIFF)模拟量输…

【如何在MacOS升级ruby版本】

🎥博主:程序员不想YY啊 💫CSDN优质创作者,CSDN实力新星,CSDN博客专家 🤗点赞🎈收藏⭐再看💫养成习惯 ✨希望本文对您有所裨益,如有不足之处,欢迎在评论区提出…

C++期末知识点概述

《大学 C知识点概述》 在大学的计算机课程中,C作为一门重要的编程语言,有着广泛的应用和丰富的知识点。 一、基础语法 数据类型:C包含多种数据类型,如整数类型(int、short、long 等)、浮点类型&#xff…

Unity(2022.3.41LTS) - 音频

目录 一、音频系统概述 二、音频资源类型 三、音频组件 四、音频空间定位 五、音频效果处理 六.音乐框架设计 一、音频系统概述 Unity 的音频系统允许开发者在游戏中添加各种声音效果,包括背景音乐、音效、环境音等。它提供了丰富的功能来控制音频的播放、音…

python破解[5分钟解决拼多多商家后台字体加密]

可【QQ群】拿源码 进入经营总览想把数据存下来发现返回的json数据部分空白如下 这可怎么办 稳住应该是字体的问题,可能是多多自己实现了某种字体,我们去找他的js 发现如我们所想,进行跟踪,发现的确是在css端进行了字体替换&am…

Servlet, Filter, Listener 启动与执行顺序

Servlet, Filter, Listener 启动与执行顺序 1、启动顺序 **Listener -> Filter -> Servlet**2、记忆口诀3、执行顺序 💖The Begin💖点点关注,收藏不迷路💖 在Java Web应用中,Servlet、Filter和Listener的启动与执…

从0开始深度学习(2)——自动微分

1 微积分 1.1 导数和微分 略 1.2 偏导数 略 1.3 梯度(gradient) 1.3.1 定义 对于一个多变量函数 f ( x 1 , x 2 , … , x n ) f\left(x_{1}, x_{2}, \ldots, x_{n}\right) f(x1​,x2​,…,xn​)其中点 a ( a 1 , a 2 , … , a n ) \mathbf{a}(a_…