当前位置: 首页 > news >正文

软件可靠性基础知识

1. 软件可靠性基础概念

     可靠性定义:软件系统在应用或系统错误面前,在意外或错误的使用情况下维持软件系统的功能特性的基本能力

    可用性定义:系统能够正常运行的时间比例

    软件可靠性 不等于 硬件可靠性,有如下几点区别:

 

软件硬件
复杂性高(大部分失效来源于软件失效)
物理退化不存在存在
唯一性唯一(每个COPY版本都一样)两个硬件不可能完全一样
版本更新周期

2. 软件可靠性建模

      影响软件可靠性的因素:软件的开发方法和开发环境、运行环境、软件规模、软件内部结构、软件的可靠性投入

     可靠性模型:

            组成:模型假设、性能度量、参数估计方法、数据要求

            特征:基于可靠的假设、简单、计算一些有用的量、给出未来失效行为好的映射、可广泛应用

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

3. 软件可靠性管理

4. 软件可靠性分析

平均无故障时间(MTTF): MTTF= 1/λ, λ为失效率

    平均故障修复时间(MTTR):MTTR=1/μ, μ为修复率

    平均故障间隔时间(MTBF): MTBF= MTTF + MTTR (实际应用中,一般MTTR很小,通常认为MTBF  MTTF)

     系统可用性:MTTF/MTBF * 100%

     串联系统:

           可靠性:R= R1*R2*……*Rn

          失效率近似公式:λ = λ1+λ2+……+λn

     并联系统:

           可靠性:R= 1-(1-R1)*(1-R2)*……*(1-Rn)

5. 软件可靠性设计

     1) 容错设计技术

        N版本程序设计(静态冗余)通过设计多个模块或不同版本,对相同初始条件和相同输入的操作结果, 实行多数表决,防止其中某一软件模块/版本的故障提供错误的服务。

        增加了3个新阶段:相异成分规范评审、相异性确认、背对背测试

        N版本程序同步、N版本程序之间通信、表决算法(全等表决、非精确表决、Cosmetie表决)、一致比较问题、相异性问题

        恢复块设计(动态冗余):选择一组操作作为容错设计单元,把普通的程序块变成恢复块

         应保证实现主块和后备块之间的独立性,避免相关错误的产生,使主块和备用块共性错误降到最低程度

         必须保证验证测试程序的正确性

        

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

       防卫式程序设计:对应程序中存在的错误和不一致性,通过在程序中包含错误检测代码和错误恢复代码,错误发生能撤销错误状态,恢复到已知的一个正确状态

       策略:错误检测、破坏估计、错误恢复

       冗余:结构冗余(硬/软件冗余)、信息冗余(校验码)、时间冗余(重复多次进行相同的计算)

     2)检错技术

          出错后报警,人工处理,成本较低

    3)降低复杂度设计

   

    4)系统配置技术

          双机热备技术:

                采用“心跳”方法保持主机与备用之间的联系

               双机热备模式(一个主机,一个备用)

               双机互备模式(同时提供不同的服务,不心跳则接管)

               双机双工模式(同时提供相同的服务,集群的一种)

         服务集群技术:

6. 软件可靠性测试

7. 软件可靠性评价

相关文章:

  • 机器学习 - 贪心算法、前向搜索、后向搜索
  • NPDP学习笔记 -产品经理(第二版)-第七章 产品创新管理
  • openGauss 3.0 数据库在线实训课程12: 学习逻辑结构:模式管理
  • 架构设计系列(二):CI/CD
  • 五、AIGC大模型_02大模型学习重点
  • 基于若依开发的工程项目管系统开源免费,用于工程项目投标、进度及成本管理的OA 办公开源系统,非常出色!
  • 基于 PyTorch 的树叶分类任务:从数据准备到模型训练与测试
  • Linux 内核 IPoIB 驱动中 sysfs 属性冲突问题的分析与解决
  • 全面了解HTTP(一)
  • 数据结构之二叉树
  • mysql数据被误删的恢复方案
  • vs2022支持.netframework4.0
  • C++之线程
  • phpipam1.7安装部署
  • 语义源的速率-失真特征(Rate-Distortion Characteristics of Semantic Sources)在语义通信中的理论分析
  • vue3搭建实战项目笔记二
  • 【开源免费】基于SpringBoot+Vue.JS教师工作量管理系统(JAVA毕业设计)
  • arm linux下的中断处理过程。
  • Uniapp中使用Vue3开发微信小程序的全局状态管理实践
  • 【一文读懂】WebRTC协议
  • 4月一二线城市新房价格环比上涨,沪杭涨幅居百城前列
  • 购车补贴、“谷子”消费、特色产品,这些活动亮相五五购物节
  • 三家“券商系”公募同日变更掌门人,新董事长均为公司股东方老将
  • 深交所修订创业板指数编制方案,引入ESG负面剔除机制
  • 阿斯利康中国区一季度收入增5%,或面临最高800万美元新罚单
  • 体重管理门诊来了,瘦不下来的我们有救了?|健康有方FM