其他分享
首页 > 其他分享> > 2021-10-08

2021-10-08

作者:互联网

系统可靠性设计

1.可靠性相关的概念
可靠性相关的概念主要有:可靠度,可用度,可维度,平均无故障时间,平均故障修复时间,平均故障间隔时间。
1)可靠度
是指系统在正常的状况下,系统在时间区间内能正常运行的概率。
2)可用度
系统在时刻t可运行的概率。
3)可维度
是指系统失效后,在时间间隔内被修复的概率。
4)平均无故障时间MTTF
从t=0时到故障发生时系统的持续运行时间的期望值。
5)平均故障修复时间
6)平均故障间隔时间
MFBF=MTTR+MTTF;

2.故障或错误的表现形式
1)永久性
持续稳定的失效,故障或错误。在硬件中表现为不可恢复的物理改变。
2)间歇性
由于不稳定的硬件或者变化着的硬件或软件状态所引起的,仅仅是偶然出现的a故障或错误。
3)瞬时性
描述那些因暂时的环境条件而引起的故障或错误。

3.失效率的概念和三个特征
失效率又称风险函数,也可以称为条件失效强度,是指运行至此刻系统未出现失效的情况下,单位时间系统出现失效的概率。
软件失效率三个特征:
1)软件失效之前很少会有警告。
2)如果不使用该软件,永远不会发生失效。
3)不考虑软件演化的情况下,失效率在统计上是非增的

4.动态冗余的概念
动态冗余又称为主动冗余,它是通过故障检测、故障定位及故障恢复等手段达到容错的目的。
其主要方式是多重模块待机储备,当系统检测到某工作模块出现错误时,就用一个备用的模块来替代它并重新运行。
各备用模块在其待机时,可与主模块一样工作,也可以不工作。前者叫热备份系统(双重系统),后者叫冷备份系统(双工系统、双份系统)

5.N版本程序设计的概念
容错设计技术的一种。
N版本程序设计是一种静态的故障屏蔽技术,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。其中N个版本的程序必须由不同的人独立设计,使用不同的方法、设计语言、开发环境和工具来实现,目的是减少N个版本的程序在表决点上相关错误的概率。

6.恢复块设计的概念
选择一组软件操作作为容错设计单元,把普通的程序块变成恢复块。一个恢复块包含有若干个功能相同、设计差异的程序块文本,一个运行文本,多个备份文本,构成“动态冗余”,一旦运行文本出现故障,则用备份文本替换。软件容错的恢复块方法就是使软件包含有一系列恢复块

  1. 常见的可靠性设计技术
    被认可的且具有应用前景的软件可靠性设计技术主要有容错设计、检错设计和降低复杂度设计等技术。
    有容错设计、检错设计、降低复杂度设计等技术。
    而在容错技术中有N版本程序设计,冗余技术,恢复块方法三种。
    1)容错设计
    对于软件失效后果特别严重的场合,如飞机的飞行控制系统、空中交通管制系统等,采用容错设计技术。常见的容错设计技术有三种:恢复块设计、N版本程序设计和冗余设计。
    冗余设计:
    在一套完整的软件系统之外,设计一种不同路径、不同算法或不同实现方法的模块或系统作为备份,在出现故障时可以使用冗余的部分进行替换,从而维持软件系统的正常运行。缺点是费用和资源的消耗会有所增加
    2)检错技术
    在软件系统中,无需在线容错的地方,或不能采用冗余设计技术的部分,如果对可靠性要求较高,故障有可能导致严重的后果时,一般采用检错技术,在软件出现故障后能及时发现并报警,其缺点是不能自动解决故障。
    3)降低复杂度设计
    软件复杂性与软件可靠性有着密切的关系,是产生软件缺陷的重要根源。在设计时考虑降低软件的复杂性,是提高软件可靠性的有效方法。降低复杂度设计的思想是在保证实现软件功能的基础上,简化软件结构,缩短程序代码,优化软件数据流向,降低软件复杂度,从而提高软件可靠性。

8.可靠性设计需要遵循的原则
1)软件可靠性设计是软件设计的部分,必须在软件的总体设计框架中使用,并且不能与其他设计原则相冲突。
2)软件可靠性设计在满足提高软件质量要求的前提下,以提高和保障软件可靠性为最终目标。
3)软件可靠性设计应确定软件的可靠性,不能无限扩大,并且排在功能、用户需求、开发费用之后考虑。

  1. 影响软件可靠性的主要因素
    运行环境(软件可靠性的定义是相对于运行环境的)
    软件规模;
    软件内部结构(内部结构越复杂,包含的缺陷数就可能越多)
    软件的开发方法和开发环境
    软件的可靠性投入等。

10.软件可靠性的定义和四个子特征
可靠性定义:系统在规定的时间内及规定的环境条件下,完成规定功能的能力,就是系统无故障运行的概率。
可靠度就是系统在规定的条件下、规定的时间内不发生失效的概率。
系统可靠性包括:成熟性、容错性、易恢复性和可靠性的依从性4个子特性。
提高可靠性的技术:容错技术(N版本程序设计,恢复块方法),冗余技术(双机热备,双机互备,集群系统),检错技术(防卫式程序设计)

11.检错技术的优点与缺点
检错技术实现的代价一般低于容错技术和冗余技术,但有一个明显的缺点,就是不能自动解决故障,出现故障后如果不进行人工干预,将最终导致软件系统不能正常运行。
检错技术常见的实现方式:最直接的一种实现方式是判断返回结果,如果返回结果超出正常范围,则进行异常处理;计算运行时间也是一种常用技术,如果某个模块或函数运行时间超过预期时间,可以判断出现故障;还有置状态标志位等多种方法,自检的实现方式需要根据实际情况来选用。
检错技术的处理方式,大多数都采用“査出故障-停止软件运行-报警”的处理方式。 但根据故障的不同情况,也有采用不停止或部分停止软件系统运行的情况,这一般由故障是否需要实时处理来决定

  1. 区分软件的错误(Error)、缺陷(Defect)、故障(Fault)和失效(Failure)概念
    1)软件错误
    是指在软件的生存期内的不希望或者是不可接受的人为错误,其结果是导致软件缺陷的产生
    软件错误由开发人员在开发过程中产生。
    2)软件缺陷
    存在于软件(文档,数据,程序)之中的那些不希望或者不可接受的偏差
    缺陷存在于软件产品中。
    3)软件故障
    是指软件运行过程中产生的一种不希望或不可接受的内部状态
    在运行时会引起故障。
    4)软件失效
    是指在软件运行过程中产生的一种不期望或不可接受的外部行为结果
    在运行时由用户经历或发现。

标签:10,08,软件可靠性,容错,故障,2021,设计,软件,检错
来源: https://blog.csdn.net/Last_Impression/article/details/120651184