[软件工程]九.可依赖系统(Dependable Systems)

9.1什么是系统的可靠性(reliability)

系统的可靠性反映了用户对系统的信任程度。它反映了用户对其能够按照预期运行且正常使用中不会失效的信心程度。

9.2什么是可依赖性(dependablity)的目的

其目的是覆盖系统的可用性,可靠性,安全性和信息安全性。

9.3系统的可依赖性通常会比它们本身的具体功能更加重要

  1. 系统失效会影响到很多人(有次百度网盘失效,导致百度网盘大量数据的泄露,很多人从此不再把重要和私密文件存在百度网盘中了)
  2. 用户经常拒绝不可靠,不安全或信息安全有问题的系统
  3. 系统失效的代价可能是巨大的
  4. 可依赖性差的系统可能导致信息丢失和泄露

9.4设计一个可依赖系统我们要考虑什么

  1. 硬件失效:系统硬件失效有可能是源自设计上的失误,也可能是源自构件加工制造中的问题,或者是硬件构件已达到了它们的使用年限。
  2. 软件失效:系统软件失效可能是由于规格说明,设计和实现中的错误。
  3. 操作事务:系统的操作人员未按照预期正确地使用系统。

9.5可依赖性属性(Dependablity Property)

1)计算机系统地可依赖性是衡量其可信赖度(trustworthiness)的性能指标:

2)可依赖性包含的五个维度

  1. 可用性(availability):系统在任何时间都能运行并能够提供有用的服务
  2. 可靠性(reliability):系统的可靠性是系统在给定的时段内能够正确提供用户希望的服务的可能性
  3. 安全性(safety):系统的安全性是判断系统将会对人和系统的环境造成伤害的可能性(不会对人/物造成伤害)
  4. 信息安全性(security):系统的信息安全性是判断系统能否抵御意外或者蓄意的入侵的可能性(鲁棒性)
  5. 韧性(resilience):系统的韧性是指当出现一些干扰性事件的时候(比如,设备故障或者恶意攻击)系统保持其关键服务继续正常运行的可能性。(遭到破坏或攻击后的恢复能力)

0950d7c544934dd784b40a325ef1e3ac.png

3)还有三个属性与可依赖性有关

  1. 可维修性(Repairability)
  2. 可维护性(Maintainablity)
  3. 容错(Error tolerance)

4)成本和可依赖性的关系

8f17ced8693c4b13af02f189a5b1448a.png

  1. 如果可依赖性低,通过好的软工方法可以大大提高软件质量,但在好的措施的基础上,改进的效益低。
  2. 如果软件的可依赖性变得更高,这急剧增加了高可用性系统的成本

9.6社会技术系统(Sociotechnical systems)

1)什么是社会技术系统

将技术系统与社会系统相结合的概念。这个概念强调在设计和实施技术解决方案时,必须同时考虑技术因素和人类因素,以及它们之间的相互作用。社会技术系统理论认为,技术系统和人类系统是相互依赖的,它们共同构成了一个整体,影响着组织的效率、生产力和员工的满意度。

2)社会技术系统在软件工程中的应用

在软件工程实践中,社会技术系统理论指导开发者和组织在设计和实施软件系统时,不仅要关注技术实现,还要考虑如何通过技术来支持和改进工作流程、提高员工的工作效率和满意度、以及如何适应组织的业务目标和文化。

3)一个简单的例子

例如,在开发一个企业资源规划(ERP)系统时,不仅要考虑软件的功能性、性能和安全性,还要考虑如何通过系统来优化业务流程、提高决策效率、以及如何培训员工使用新系统。

9.7冗余和多样性(Redundancy and Diversity)

1)什么是冗余(Redundancy)

  1. 在软件工程和计算机科学中指的是系统中存在多余或重复的组件、数据或功能,这些组件、数据或功能在正常情况下可能不是必需的,但在系统出现故障或错误时可以提供额外的保护或恢复能力。冗余可以分为硬件冗余、软件冗余和数据冗余。
  2. 冗余主要是要保留多个版本

2)什么是多样性(Diversity)

  1. 多样性(Diversity)通常指的是尽量给保留的版本提供多样的形式(为软件的不同版本提供多种不同的配置、功能集、环境或部署选项。这种多样性有助于满足不同用户群体的需求,提高软件的适应性和灵活性。下面是一些具体例子来解释这个概念:)
  2. 给保留的版本提供不同的形式,提高不同的功能:比如高考的全国A卷,B卷还会有防止意外情况的备用卷,这就是多样性,给保留下的版本提供更多的形式。

3)什么时候使用冗余

在可用性(任何时间都可以提供服务)要求高的系统中,冗余的服务常常被使用。

4)什么时候使用多样性

在使用版本发布的系统中,对于新版本,提供多的形式

9.8QA:Quality Assurance(质量保证)

1)QA保证的是什么

QA不管你的结果是否正确,只是对过程进行规范,通过了QA才可以送去测试。

2)QA是完成实现阶段的标志

3)一个QA的例子

比如:A写了一个排序,QA不管是可以正确排序,只是对过程中的行为进行规范,只有通过了QA才可以送去测试

9.9QC:Quality Control

1)什么是QC

质量控制(QC)是软件开发过程中的一系列活动,旨在通过测试和检查来识别和修正软件中的缺陷。QC关注的是软件产品的质量,包括单元测试、集成测试、系统测试、验收测试等。QC的目标是确保软件产品满足用户需求和质量标准。

9.10RTM(RTraceability Matrix)需求跟踪矩阵

9c286bce08f3405881838bedd460823d.png

9.11什么标志着需求分析的结束

通过需求评审。

 

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

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

相关文章

减少30%人工处理时间,AI OCR与表格识别助力医疗化验单快速处理

在医疗行业,化验单作为重要的诊断依据和数据来源,涉及大量的文字和表格信息,传统的手工输入和数据处理方式不仅繁琐,而且容易出错,给医院的运营效率和数据准确性带来较大挑战。随着人工智能技术的快速发展,…

Jackson使用实例:将后端返回的 JSON 字段名转换为大写(多种方案详细实例实现)

目录 将返回 JSON 字段名转换为大写背景解决方案1. **局部字段名转换为大写** — 使用 JsonNaming 注解方案概述步骤 2. **全局字段名转换为大写** — 配置 ObjectMapper方案概述步骤 3. **手动指定字段名称** — 使用 JsonProperty 注解方案概述步骤 4. **总结**推荐方案 将返…

汽车一键启动开关 、一键启动按键 、一键启动按钮

‌汽车一键启动按钮是智能汽车的重要部分,通常用于启动和关闭引擎‌。 ‌具体功能‌: ‌启动引擎‌:在许多现代汽车中,一键启动按键取代了传统的钥匙启动方式。只需轻轻按下一键启动按钮,车辆电源即被接通&#xff0c…

.NET用C#导入Excel数据到数据库

将Excel文件中的数据导入到数据库中不仅能够提升数据处理的效率和准确性,还能极大地促进数据分析和决策制定的过程。尤其在企业级应用中,Excel作为数据输入和初步整理的工具非常普遍,但其功能对于复杂查询、大规模数据管理和跨部门的数据共享…

python中数组怎么转换为字符串

1、数组转字符串 #方法1 arr [a,b] str1 .join(arr)#方法2 arr [1,2,3] #str .join(str(i) for i in arr)#此处str命名与str函数冲突! str2 .join(str(i) for i in arr) 2、字符串转数组 #方法一 str_x avfg st_list list(str_x) #使用list()#方法二 list_s…

国内管理咨询公司哪家落地辅导做的好?

在当今快速变化的市场环境中,企业面临着前所未有的竞争压力与转型挑战。为了在这场没有硝烟的战争中脱颖而出,许多企业开始寻求外部专业力量的帮助,以期通过科学的管理咨询实现战略升级和业绩突破。而在众多的管理咨询公司中,思博…

前端进阶指南:详解 Source Map 的作用与工作原理,解析.map文件

前言 在前端开发中,代码的压缩与混淆是提升网页性能的常见做法。然而,这种优化措施也带来了调试难度的增加,因为压缩后的代码往往难以阅读和理解。这时,Source Map 技术应运而生,作为连接源代码和构建后代码的桥梁&am…

Cursor vs VSCode:主要区别与优势分析

Cursor - The AI Code Editor 1. AI 集成能力 Cursor的优势 原生AI集成: # Cursor可以直接通过快捷键调用AI # 例如:按下 Ctrl K 可以直接获取代码建议 def complex_function():# 在这里,你可以直接询问AI如何实现功能# AI会直接在编辑器中…

python+selenium的八大定位方式

1.id定位 元素的id属 driver.find_element_by_id(By.ID,"username")2.name定位 driver.find_element_by_id(By.NAME,"username")#一个login_btn_list webdriver.find_elements(By.CLASS_NAME,)#多个元素组成的列表, login_btn_list[1].click…

RTCMultiConnection 跨域问题解决

js套件地址 https://github.com/muaz-khan/RTCMultiConnection server套件地址 https://github.com/muaz-khan/RTCMultiConnection-Server 要解决的就是server代码的跨域问题 原装写法: 解决写法: // 喜欢组合语法的自己组 const io new ioServer.S…

【JavaEE】多线程(6)

一、用户态与内核态 【概念】 用户态是指用户程序运行时的状态,在这种状态下,CPU只能执行用户态下的指令,并且只能访问受限的内存空间 内核态是操作系统内核运行时的状态,内核是计算机系统的核心部分,CPU可以执行所有…

Ajax:回忆与节点

一点回忆 面对我的Ajax学习,实现前后端交互,最开始我采用的使用网络寻找intellij IDEA Ultimate破解方法,然后最终成功,然后按照相关教程配置java ee项目,然后中间又去配置了Tomcat服务器,然后又去学习了一…

1688:开启跨境电商新篇章

引言 在全球化贸易不断深化的今天,跨境电商已成为中小企业拓展国际市场的重要渠道。1688,作为阿里巴巴集团旗下领先的内贸平台,近年来也逐渐发力跨境电商领域,为全球买家提供了一个直通中国工厂的贸易平台。本文将带您深入了解16…

2024-12-06 Unity Addressables3——资源加载

文章目录 1 引用加载1.1 Addressables 的资源引用类1.2 加载资源1.3 加载场景1.4 释放资源 2 Label 介绍3 动态加载3.1 加载单个资源3.2 加载多个资源 Unity 版本:6000.0.26f1c1Addressables 版本:2.3.1 1 引用加载 1.1 Addressables 的资源引用类 Ass…

API设计指南:详解HTTP状态码错误解析、HTTP方法及参数命名规则

目录 1、HTTP API规范1.1 原则1.2 协议1.3 版本1.4 路径1.5 HTTP 方法(Method)1.6 过滤信息1.7 参数命名1.8 HTTP 状态码(Response Code)1.9 鉴权 2、状态码2.1 API返回基础规范2.2 常见的 HTTP 状态码2.3 API错误信息应该放到响应…

【C#】键值对的一种常见数据结构Dictionary<TKey, TValue>

在 C# 中&#xff0c;Dictionary<TKey, TValue> 是一个 键值对&#xff08;key-value&#xff09;集合&#xff0c;是一种非常常见的数据结构。它允许通过 键&#xff08;key&#xff09;来快速查找与之相关的 值&#xff08;value&#xff09;。你可以将其类比为一个映射…

Word处理表格的一些宏

目录 1、表格首行居中2、表格内容靠左上下居中&#xff08;排除首行&#xff09; 1、表格首行居中 说明&#xff1a; 遇到错误将进行捕获&#xff0c;然后继续处理下一个表格 宏&#xff1a; Sub 表格首行居中()Dim tbl As tableOn Error Resume Next 错误时继续执行下一个…

相机动态/在线标定

图1 图2 基本原理 【原理1】平行线在射影变换后会交于一点。如图所示,A为相机光心,蓝色矩形框为归一化平面,O为平面中心。地面四条黄色直线为平行且等距的车道线。HI交其中两条车道线于H、I, 过G作HI的平行线GM交车道线于M。HI、GM在归一化平面上的投影分别为JK、PN,二者会…

嵌入式Linux(SOC带GPU树莓派)无窗口系统下搭建 OpenGL ES + Qt 开发环境,并绘制旋转金字塔

树莓派无窗口系统下搭建 OpenGL ES Qt 开发环境&#xff0c;并绘制旋转金字塔 1. 安装 OpenGL ES 开发环境 运行以下命令安装所需的 OpenGL ES 开发工具和库&#xff1a; sudo apt install cmake mesa-utils libegl1-mesa-dev libgles2-mesa-dev libdrm-dev libgbm-dev2. 安…

工作:SolidWorks从3D文件导出2D的DWG或DXF类型文件方法

工作&#xff1a;SolidWorks从3D文件导出2D的DWG或DXF类型文件方法 SolidWorks从3D文件导出2D的DWG或2D DXF类型文件方法&#xff08;一&#xff09;打开3D文件&#xff08;二&#xff09;从装配体到工程图&#xff08;三&#xff09;拖出想要的角度的图型&#xff08;四&#…