是什么

可靠性指软件在异常情况下或在被非法、非常规使用时维持自身功能的能力。

可靠性体现在容错和健壮性这两个方面。

  • 容错

容错指软件发生故障时仍保持正常运行的能力。它保证软件能在异常情况下正常运行,并在内部完成故障的修复工作。

修复完成后,软件需要继续或从头开始执行异常位置的操作。比如分布式系统在发生通信异常时会先暂时切断连接,等问题修复完成后再重新连接,恢复软件的运行。

  • 健壮性

健壮性是保护软件不受非正常使用方式或非法输入影响的能力。具备该能力后,不论什么样的使用方式,软件都能准确迁移至系统定义的状态。

健壮性值保证软件能迁移至系统定义的状态,并不要求软件修复或重新执行引发异常的处理。

为什么

软件对可靠性的需求是不尽相同的。

比如大规模系统或关键的业务系统就不允许出现中断服务的情况,就算缩减功能,也要持续提供服务。

而供个人使用的软件就不需要如此强大的持续性了。相较于在危险状态下继续提供服务,这类软件大多选择保存数据重新启动。

因此,在设计软件架构时,我们要先明确软件对可靠性的需求。

怎么做

从容错的观点出发,我们可以让软件架构存在内部冗余(双重冗余等)。也可以采用故障弱化的设计,在软件发生故障时缩减软件提供的功能,只保留关键功能,保证处理继续运行。

从健壮性的观点出发,我们可以采用故障安全的设计,在发生故障时剥离发生故障的部分。也可以采用故障保护的设计,保证软件在用户进行了错误操作的情况下也能安全运行,避免故障发生。

软件架构非功能需求——可靠性相关推荐

  1. 软件架构非功能需求——互操作性

    是什么 互操作性指软件与其他软件交互的能力,互操作性要求不同的软件之间使用同一交换方式来交换数据.读取相同格式的文件.使用相同的协议等,从而实现相互连接的状态. 为什么 软件并不是独立存在的,它是系统 ...

  2. 非功能需求的6种类型

    软件产品的需求可以分为功能性需求和非功能性需求,其中非功能性需求是常常被轻视,甚至被忽视的一个重要方面.其实,软件产品非功能性定义不仅决定产品的质量,还在很大程度上影响产品的功能需求定义.如果事先缺乏 ...

  3. 【软件工程】:非功能需求

    我相信有些筒子或者上班族找到这篇文章大都是搞不清楚什么是非功能需求,什么是功能需求,这样说吧,功能需求是必须的,然后非功能需求包括如下几个方面: 非功能性需求:用户对软件质量属性.运行环境.资源约束. ...

  4. 我们应当怎样做需求分析:非功能需求

    我曾经看过许多关于需求分析的书籍,老外写的,国人写的,都有.但我总体就是一个感觉:累.各种各样的分析.各种各样的视图,让人眼花缭乱.为什么会这样呢?不得不说,需求分析是一个太宽泛的概念了,不同的行业( ...

  5. 系统非功能需求(质量属性)

    系统非功能需求,即质量属性,指的是一个系统的可度量.可测试的属性,这 些属性会影响到系统的运行时行为.系统设计方式以及用户 的体验等.质量属性的优劣程度反映了设计是否成功以及软件系统的整体质量. (1 ...

  6. 业务需求、用户需求、功能需求、非功能需求

    软件需求包括3个不同的层次――业务需求.用户需求和功能需求.除此之外,每个系统还有各种非功能需求. 业务需求(Business requirement)表示组织或客户高层次的目标.业务需求通常来自项目 ...

  7. 软件架构关键需求checklist

    软件架构关键需求checklist 虽然在一些公司,软件架构师承担了需求分析的工作,但我个人认为需求分析并不必在软件架构师的工作范围内.软件架构师的工作可以从拿到需求分析结果时开始,根据需求分析的结果 ...

  8. 软件工程-非功能需求撰写参考案例

    本文转载自CSDN博主「麦哲思科技任甲林」 原文链接:https://blog.csdn.net/dylanren/article/details/79215402 非功能性需求是需求的一个重要组成部 ...

  9. 手机应用:非功能需求 Check List

    服务状态防止并发 网络保持:无线网络,GPRS 网络连接:https,手机助手代理 电量 屏幕保持防止休眠 下载重试机制 定时检查XML 限速下载,线程休眠 下载出错反馈机制 消息广播 状态栏通知 进 ...

最新文章

  1. 四川网络推广浅析新站要如何更快的获得好排名?
  2. 网络营销外包——网络营销外包专员是怎样提升网站收录概率的?
  3. 手机4k读写速度测试软件,4K扇区速度测试及读写IOPS_Intel 520_固态硬盘评测-中关村在线...
  4. 2017-2018:WebRTC标准演进与发展瓶颈
  5. python3支持中文_彻底颓了—— Vim Python 3 接口不支持中文 - Jacky Liu's Blog
  6. Enum、Stream
  7. vs 编译器的堆空间不足_原创|面试官:Java对象一定分配在堆上吗?
  8. Linux container_of用法
  9. 前端基础知识复习之html
  10. html点中弹出选择框,javascript点击弹出选择框
  11. 以后不该吃的不能吃了。。。
  12. 2020-05-28
  13. 用EasyBoot轻松做启动光盘
  14. 常用设计模式——装饰者模式
  15. 【902】大恒相机网络配置
  16. Head First设计模式笔记
  17. 基于QT5实现的心率变异与心率减速力分析软件
  18. 01【股票初级】-【找准入场时机】投资五大流派,好公司投资法,判断单只股票是否便宜?如何找准时机入场?
  19. Redis安装(Windows 最新版本redis 5.0.9,以及redis 4.0)
  20. 在计算机桌面上的回收站作用是,计算机桌面回收站的设置(回收站的概念及设置、使用说明)...

热门文章

  1. C++ 很难找工作了???
  2. 行内和块级元素区别?如何让行内元素设置宽高?
  3. 深富策略:罕见巨额成交量背后蕴含深意
  4. 实用网站推荐(3):菜鸟教程
  5. 2022.10.14每日刷题打卡
  6. 目前是大专学历如何快速提升到本科学历?学历提升有哪几种形式呢?
  7. c语言链表正序输出,建立正序链表,该怎么处理
  8. 1000元一根的Type C数据线
  9. WPF入门教程系列(4)
  10. 安卓(Android)手机如何安装APK?