[软件工程]九.可依赖系统(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什么标志着需求分析的结束

通过需求评审。

 

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

idea连接SQL Server数据库_idea连接sqlserver数据库

4.设置密码(这一步可以在安装数据库时就可以完成),如果觉得用户名有问题,也可以修改用户名 5.查看SQL Server端口号(默认端口:1433),选择SQL Server2019配置管理器 6.打开SQL Server…

macOS 15.1.1 (24B2091) 系统中快捷键符号及其代表的按键的对照表

以下是 macOS 15.1.1 (24B2091) 系统中快捷键符号及其代表的按键的对照表: 符号按键名称描述⌘Command (Cmd)常用的功能键,用于执行大多数快捷操作。⌥Option (Alt)Option 键,常用于辅助操作和特殊字符输入。⇧ShiftShift 键,常用…

G15沈海高速茶白高架自动化监测

1. 项目简介 G15 沈海高速公路北起辽宁省沈阳市苏家屯区金宝台枢纽,与沈阳市绕城高速公路(国家高速 G1501)相接,南至海南省海口市秀英区粤海枢纽,与海南地区环线高速公路(国家高速 G98)相交&am…

openEuler 22.03 使用cephadm安装部署ceph集群

目录 目的步骤规格步骤ceph部署前准备工作安装部署ceph集群ceph集群添加node与osdceph集群一些操作组件服务操作集群进程操作 目的 使用ceph官网的cephadm无法正常安装,会报错ERROR: Distro openeuler version 22.03 not supported 在openEuler上实现以cephadm安装部…

MySQL-DDL之数据库操作

文章目录 一. 创建数据库1. 直接创建数据库,如果存在则报错2. 如果数据库不存在则创建3. 创建数据库时设置字符集4. 栗子 二. 查看数据库1. 查看数据库 三. 删除数据库1. 删除数据库 四. 使用数据库1. 使用数据库2. 查看正在使用的数据库 数据定义语言:简…

java 操作 redis

文章目录 一. java 操作 redis1. 引入依赖2. 配置端口转发3. 连接redis服务器 二. 基础命令get/setexists/delKEYSEXPIRE/TTLTYPE 之前介绍的是各种redis的基本操作/命令, 都是在redis命令行客户端, 手动执行的 但是在日常开发中, 更多的是使用redis的api, 来实现定制化的redis…

WGAN生成对抗网络数据生成

数据生成 | WGAN生成对抗网络数据生成 目录 数据生成 | WGAN生成对抗网络数据生成生成效果基本描述程序设计参考资料 生成效果 基本描述 1.WGAN生成对抗网络,数据生成,样本生成程序,MATLAB程序; 2.适用于MATLAB 2020版及以上版本&…

飞凌嵌入式受邀亮相瑞萨2024工业技术研讨会

11月30日,一年一度的2024瑞萨电子MCU/MPU工业技术研讨会在深圳举行了首秀,为大湾区及全国嵌入式工程师献上一场全新工业技术的大秀。 飞凌嵌入式作为瑞萨电子的生态合作伙伴,给现场观众带去了基于RZ/G2L高性能多核异构处理器设计开发的FET-G2…

C++STL容器vector容器大小相关函数

目录 前言 主要参考 vector::size vector::max_size vector::resize vector::capacity vector::empty vector::reserve vector::shrink_to_fit 共勉 前言 本文将讨论STL容器vector中与迭代器相关的函数,模板参数T为int类型。 主要参考 cpluscplus.com 侯…

JavaWeb学习(3)(Servlet详细、Servlet的三种实现方式(面试)、Servlet的生命周期、传统web.xml配置Servlet(了解))

目录 一、Servlet详细。 (1)基本介绍。 (2)基本作用。 1、接收客户端请求数据。 2、处理请求。 3、完成响应结果。 二、Servlet的三种实现方式。 (1)实现javax.servlet.Servlet接口。 1、基本介绍。 2、代码…

Spring Boot读取配置文件的六种方案

从配置文件中获取属性应该是SpringBoot开发中最为常用的功能之一,但就是这么常用的功能,仍然有很多开发者在这个方面踩坑,以下是我整理的几种获取配置属性的方式。 一、Environment 使用 Environment 方式来获取配置属性值非常简单&#xf…

在google cloud虚拟机上配置anaconda虚拟环境简单教程

下载anaconda安装包 wget https://repo.anaconda.com/archive/Anaconda3-2022.10-Linux-x86_64.sh 安装 bash Anaconda3-2022.10-Linux-x86_64.sh 进入base环境 eval "$(/home/xmxhuihui/anaconda3/bin/conda shell.bash hook)" source ~/.bashrc 安装虚拟环境…

【5G】5G目标和标准化 5G targets and standardization

5G标准是在第三代合作伙伴关系项目(3GPP,3rd Generation Partnership Project)中定义的,实际的标准制定工作由参与3GPP活动的区域标准机构成员共同推进。目前,超过600家公司通过各自的地区标准组织成为3GPP的成员。然而…

神经网络的梯度反向传播计算过程,举例说明

目录 神经网络的梯度反向传播计算过程 网络结构 权重和偏置 激活函数 前向传播 损失函数 反向传播 参数更新 举例 神经网络的梯度反向传播计算过程 为了说明神经网络的梯度反向传播计算过程,我们考虑一个简单的全连接网络,该网络有一个输入层、一个隐藏层和一个输出…

网络分层模型( OSI、TCP/IP、五层协议)

1、网络分层模型 计算机网络是一个极其复杂的系统。想象一下最简单的情况:两台连接在网络上的计算机需要相互传输文件。不仅需要确保存在一条传输数据的通路,还需要完成以下几项工作: 发起通信的计算机必须激活数据通路,这包括发…

Unity中使用Sqlite存储本地数据

sqlite-net sqlite下载页 我的环境:win11、unity团结1.3.4 1.下载sqlite-net,将SQLite.cs脚本导入Unity 2.下载各平台依赖项,如dll、aar等。导入Unity并设置 3.简单列子,打包测试 using System; using System.IO; using SQLi…

详解LeetCode地下城游戏(动态规划)——区分两种状态表示形式

地下城游戏 题目链接:174. 地下城游戏 状态表示: 按照以往题的表示,dp[i][j]表示:从起点(0,0)位置到达(i,j)位置时,所需的最小初始健康值。但是…

【JAVA】Java第十三节:String类(String相关方法,以及StrinBuftrer , StringBulder相关方法)

本文详细介绍了String类以及常用的String相关方法,以及StrinBuftrer , StringBulder相关方法的使用,建议有印象即可,不需要都记住,使用时去查取即可 一、创建一个String类型的变量 我们平时创建String类型的变量一般是第一种形式…

JavaWeb文件上传

文件上传总览 文件上传主要是指将本地文件(包括但不限于图片、视频、音频等)上传到服务器,提供其他用户浏览或下载的过程。在日常生活中,我们在很多情况下都需要使用文件上传功能,比如:发微博、发朋友圈等…

Doris的基础架构

Doris的基础架构 Frontend(FE):主要负责用户请求的接入、查询解析规划、元数据的管理、节点管理相关工作。Backend(BE):主要负责数据存储、查询计划的执行。 我的Github地址,欢迎大家加入我的开…