软件可靠性设计与分析Word文档格式.docx

上传人:b****5 文档编号:21235719 上传时间:2023-01-28 格式:DOCX 页数:18 大小:337.84KB
下载 相关 举报
软件可靠性设计与分析Word文档格式.docx_第1页
第1页 / 共18页
软件可靠性设计与分析Word文档格式.docx_第2页
第2页 / 共18页
软件可靠性设计与分析Word文档格式.docx_第3页
第3页 / 共18页
软件可靠性设计与分析Word文档格式.docx_第4页
第4页 / 共18页
软件可靠性设计与分析Word文档格式.docx_第5页
第5页 / 共18页
点击查看更多>>
下载资源
资源描述

软件可靠性设计与分析Word文档格式.docx

《软件可靠性设计与分析Word文档格式.docx》由会员分享,可在线阅读,更多相关《软件可靠性设计与分析Word文档格式.docx(18页珍藏版)》请在冰豆网上搜索。

软件可靠性设计与分析Word文档格式.docx

包括分析、设计、实现

•面向对象的方法:

•基于部件的开发方法(COMPONENTBASED

•快速原型法

软件避错设计准则

•(1模块化与模块独立

–假设函数C(X定义了问题X的复杂性,函数E(X定义了求解问题X需要花费的工作量(按时间计,对于问题P1和问题P2,如果C(P1>

C(P2,则有E(P1>

E(P2。

–人类求解问题的实践同时又揭示了另一个有趣的性质:

(P1+P2>

C(P1+C(P2

–由上面三个式子可得:

E(P1+P2>

E(P1+E(P2•这个结论导致所谓的“分治法”----将一个复杂问题分割成若干个可管理的小问题后更易于求解,模块化正是以此为据。

•模块的独立程序可以由两个定性标准度量,这两个标准分别称为内聚和耦合。

耦合衡量不同模块彼此间互相依赖的紧密程度。

内聚衡量一个模块内部各个元素彼此结合的紧密程度。

•(2抽象和逐步求精

–抽象是抽出事物的本质特性而暂时不考虑它们的细节

•举例

–抽象Ⅰ该CAD软件系统配有能与绘图员进行可视化通信的图形界面,能用鼠标代替绘图工具画各种直线和曲线;

能完成所有几何计算以及所有截面视图和辅助视图的设计。

–抽象ⅡCAD软件任务;

–用户界面子任务;

–创建二维图形子任务;

–管理图形文件子任务;

–ENDCAD

–抽象III………………

•软件工程过程的每一步都是对软件解法的抽象层次的一次精化

•(3信息隐蔽和局部化

–信息隐藏原理指出:

应该这样设计和确定模块,使得一个模块内包含的信息对于不需要这些信息的模块来说,是不能访问的。

“只有需要才能知道”–

–如果绝大多数数据和过程对于软件的其他部分而言是隐蔽的,那么在修改期间由于疏忽而引入的错误就很少可能传播到软件的其它部分

–局部化是指把一些关系密切的软件元素物理地放得彼此靠近

•局部变量

启发规则•改进软件结构提高模块独立性•模块规模应该适中

•深度、宽度、扇出和扇入都应适当–深度表示软件结构中控制的层数,它

往往能粗略地标志一个系统的大小和复杂程度。

–宽度是软件结构内同一层次上的模块总数的最大值。

–扇入是指有多少个上级模块直接调用它,扇入越大则共享该模块的上级模块数目越多,这是有好处的。

–扇出是一个模块直接调用的模块数目,扇出过大意味着模块过分复杂,需要控制和协调过多的下级模块。

其中E函数扇入数为2,扇出数为3。

圈复杂度115的控制流图

圈复杂度10的控制流图

启发规则

•模块的作用域应该在控制域之内

•力争降低模块接口的复杂程度

–QUAD-ROOT(TBL,X=>

QUAD-ROOT(A,B,C,ROOT1,ROOT2•设计单入口单出口的模块

•模块功能应该可以预测

•慎重使用容易引入缺陷的结构和技术–浮点数

–指针

–动态内存分配

–并行

–递归

–中断

–继承

–别名

–默认输入的处理

GJB/Z102-97软件可靠性和安全性设计准则

序设计

软件查错设计

•软件查错设计是指在设计中赋予程序某些特殊的功能,使程序在运行中自动查找存在错误的一种设计方法。

•被动式错误检测

–在程序的若干部位设置检测点,等待错误征兆的出现

•主动式错误检测

–对程序状态主动进行检查

被动式错误检测

•检测原则

–相互怀疑原则:

在设计任何一个单元、模块时,假设其它单元、模块存在着错误;

–立即检测原则:

当错误征兆出现后,要尽快查明,以限制错误的损害并降低排错的难度。

•负效应

–所设置的“接收判据”不可能与预期的正确结果完全吻合,导致错判或漏判;

–软件增加了冗余可能降低可靠性

被动式错误检测的实施方法•看门狗定时器

–当出现潜在不安全的系统状态或有可能转移到这种状态时,将系统转移到规定的安全状态。

•循环等待次数控制

•配合硬件进行处理的设计

–如:

电源失效、电磁干扰、系统不稳定、接口故障、干扰信号,以及错误操作等。

•按照已知的数据极限检查数据;

•按照变量间恒定关系检验;

•检查所有多值数据的有效性;

•对冗余的输入数据进行一致性检验;

……

看门狗的设计

看门狗技术是控制运行时间的一种有效方法。

看门狗实际上是一种计时装置,当计时启动后看门狗在累计时间,当累计时间到了规定值时触发到时中断(即狗叫,看门狗在不需要时可以关闭。

看门狗的设计要首先明确其目的性。

如:

(1要防某段程序可能的死循环,则在此段程序前启动狗,在此段程序后关闭狗,在狗叫中断中进行超时异常处理。

(2要防外来的信息长时间不来,则在开始等外来信息时启动狗,在接收到外来信息时关闭狗,在狗叫中断中进行超时异常处理。

(3要防计算超时,则在开始计算时启动狗,在计算完毕后关闭狗,在狗叫中断中进行超时异常处理。

显然,不可能要求一个狗可以看管好所有的超时情况。

避免潜在的死循环

在等待外部信号的程序段中,不允许无限制地等待。

正确的做法应是,或采用循环等待次数控制,或使用定时器,使得规定时间内(无论成功或失败必须保证退出等待外部信号的程序段

不允许的设计方法建议采用的设计方法

注意通过双口RAM进行握手

通过双口RAM进行信息交换是设计师经常采用的一种设计方案。

的确双口RAM提供了信息交换双方的方便读写,但仅靠双口RAM要做到读写的时序要求就要格外小心。

如此的设计是要避免的:

通过双口RAM交换信息,在双口RAM中设置了握手信号单元。

读方检查到握手信号为01H,表明对方已准备好数据,再读数据,读完后将握手信号置为00H;

写方检查到握手信号为00H,表明对方已取走数据,再写数据,写完数据后再将握手信号置为01H,表明自己已准备好数据。

这种设计不一定可靠,可能会出现写方要写握手信号时,读方正在读握手信号,则写方要写的值写不进去。

可靠的设计应用硬件连线保证握手,而不要靠双口RAM中的握手信号。

如果一定要靠双口RAM进行握手,则写握手信号单元数据时一定要写完后接着再读出,经验证确实写成功后再进行下面的操作,否则需继续写。

当然这必须与避免潜在的死循环的设计准则联合使用。

可靠的设计方法

握手标志置不上的可能

数据采集的多路冗余设计

关键数据的采集可采用多路冗余设计,即可以从多个通讯口对同一数据进行采集,通过表决进行有效数据的裁决。

通常多采用奇数路的冗余设计,如3路、5路等。

(1开关量的裁决可采用多数票的裁决,如3取2、5取3等。

(2模拟量的裁决可采用中间数平均值的裁决,如3路数的中间值、5路数去掉最大最小值后的平均值等。

主动式错误检测

•软件BIT

–对ROM中的代码进行和检验(sumcheck;

–检测RAM,以保证正确的操作用数码;

–检测内存的正确性,以确保正确操作;

–对关键及重要的函数功能及逻辑功能进行典型较核。

–……

据统计,将硬件看门狗定时器及软件BIT相结合,一般可检测出98%的故障。

•主动式错误检测可作为周期性任务来安排,也可作为一个低优先级的任务来执行。

故障恢复措施

•完全恢复(依靠冗余备份

•降级恢复(只提供重要的功能•立即停止程序运行(安全停机•记载错误

–将发生错误时的状态记录在一个外部文件上,然后让系统恢复运行,再由维护人员对记录进行深入的分析研究。

软件改错设计

•改错设计是指在设计中,赋予程序自我改正错误、减少错误危害程度的能力的一种设计方法。

•改正错误的前提是已经准确地找出软件错误的起因和部位(故障检测与故障定位合称故障诊断,程序又有能力修改、剔除有错误的语句。

•现阶段仅限于减少软件错误造成的有害影响,或将有害影响限制在一个较小的范围。

常采用故障隔离技术。

•现阶段没有人的参与几乎不可能

故障隔离

•权限最小化原则是实现故障隔离的主要思想。

•为了限制故障的蔓延,要求对过程和数据加以严格的定义和限制。

例如,针对操作系统的故障隔离方法:

–不允许一个用户的应用程序引用或修改其它用户的应用程序或数据;

–绝对不允许一个应用程序引用或修改操作系统的编码或操作系统内部的数据;

–保护应用程序及其数据,使其不致由于操作系统的错误而引起程序和数据的偶然变更;

–应用程序绝对不能终止系统工作、不能诱发操作系统去改变其它的应用程序或数据;

–……

软件容错设计

•软件容错设计是指在设计中赋予程序某种特殊的功能,使程序在错误已被触发的情况下,系统仍然具有正常运行能力的一种设计方法。

–时间容错

–结构容错

–信息容错

时间容错

•所谓“时间容错”就是不惜以牺牲时间为代价来换取软件系统高可靠性的一种手段,它包括指令的重复执行和程序(一个模块或一个子程序重复执行,两种常被采用而行之有效的方法

–指令重复执行是当应用软件系统检查出正在执行的指令出错误后,让当前指令重复执行n次(n>

=3,若故障是瞬时性的干扰,在指令重复执行时间内,故障有可能不再复现,这时程序就可以继续往前执行下去。

这时指令执行时间比正常时大n倍

–程序(一个模块或一个子程序重复执行是当应用软件系统检查出正在执行的程序出错误后,中断当前正在运行的软件,反复调用n次(n>

=3运行出错的程序(一个模块或一个子程序。

在反复调用过程中若故障不再复现,这时程序继续从中断的地址往F执行。

这时所需的运行时间比重复执行n条指令的时间要大得多

•对于复执不成功的情况,通常的处理办法是发出中断,转入错误处理程序,或对程序进行复算,或重新组合系统,或放弃程序处理。

For(i=0,i<

3,i++

{

x[i]=ReadData(…;

//读入数据…

}

2From3(x;

//三取二方法函数

结构容错

•结构容错的基本思想来源于硬件可靠性中的冗余技术。

静态冗余N版本程序设计法(NVP

动态冗余恢复块法(RBQ:

使用多个完全相同的软件能够实现

容错吗

软件N版本程序设计

•美加州大学Avizienis和L.Chen提出•基本思想

–对相同的要求进行多个不同版本的设计–对相同的初始条件和相同的输入的操作结果实行表决(多数决定、一致决定

•针对的错误来源:

设计人员对需求说明理解不正确、不完全导致的缺陷

•要求需求说明完全、精确

NVP的基本结构

表决器

冗余软件的设计原则

•相异性是指对实现同一功能的多版本产品,在制作时为防止出现共因故障而有意识地使之产生某种差异的性质;

•冗余版本之间相互屏蔽故障不能完全依靠背靠背编程(随机相异;

•应有意识地实行相异化编程(强制相异:

–相互独立的不同人员

–不同的算法

–不同的编程语言

–不同的编译程序

–不同的设计工具、测试方法

恢复块法

M1

A2

M2

A3

M3

接收测试失效

基本块替换块

N告警输入

接收测试1

“正确”输出“正确”输出

•恢复块法适合只有一台计算机的情况;

•允许只对较为复杂、容易出故障的程序段进行冗余;

•基本块与替换块的设计应尽可能相异;

•接收测试的作用非常重要,应能检测程序执行结果与预期结果的偏离,或检测和防止能触发安全事故的输出:

–需求检查法

–帐目检查法

–合理性检查法

–计算机运行时检查法

信息容错(检错及纠错

•一般非关键信息可以使用奇偶校验码。

•关键、重要信息与其它信息之间应保持一定的Hamming距离,不会因一位或两位差错而引起系统故障。

–例如不能用01表示一级点火,10表示二级点火,11表示三级点火。

•如安全关键信息有差错,应能检测出来,并返回到规定的状态(例如安全状态。

–如循环码

•安全关键信息的决策判断不得依赖于全“1”或全“0”的输入(尤其是从外部传感器传来的信息。

软件可靠性分析

软件可靠性分析的作用

•发现设计缺陷

•指导软件设计

•指导软件测试

软件可靠性分析方法

•软件失效模式和影响分析(SFMEA•软件故障树分析(SFTA

•软件Petri网分析法

•软件潜藏分析法(SSCA

SFMEA概述

•软件失效模式和影响分析(SFMEA是在软件开发阶段的早期,通过识别软件失效模式,分析造成的后果,研究分析各种失效模式产生的原因,寻找消除和减少其有害后果的方法,以尽早发现潜在的问题,并采取相应的措施,从而提高软件的可靠性和安全性。

SFMEA的优缺点

•优点:

–突出需要更改的部分

–分析底层故障如何在整个系统中逐级向上传播–分析应在何处采取容错、故障检测和运行监控等设计手段

–识别将导致系统崩溃的单点故障

–可以按照对设备和人员影响的严重程度对软件失效严重性进行分级

•局限性:

–不能识别人为错误造成的潜在失效

–作为一个工具尚未广泛的应用于对软件错误的评估–用于分析路径十分复杂或相互交联的软件时,SFMEA是一项繁琐、劳动强度高的工作

SFMEA的基本概念

•软件失效就是泛指程序在运行中丧失了全部或部分功能、出现偏离预期的正常状态的事件。

软件失效是由软件的缺陷引起的。

•软件失效模式指软件失效的表现形式,即软件失效发生的方式,有时也被描述为对设备运行产生的影响。

中给出了软件失效模式的分类,在进行SFMEA分析时可作为参考。

•软件失效影响是指软件失效模式对软件系统的运行、功能或状态等造成的后果。

IEEE软件异常分类

软件异常类型具体软件异常操作系统失败——

程序挂起——

程序失败程序不能启动

程序运行不能终止

程序不能退出

输出问题错误的格式

不正确的结果、数据

不完全或遗漏

拼写问题、语法问题

美化问题

未达到性能要求不能满足用户对运行时间的要求不能满足用户对数据处理量的要求多用户系统不能满足用户数的要求整个产品失效——

系统错误信息——

其它程序运行改变了系统配置参数程序运行改变了其它程序的数据

•软件错误(error:

在软件生存期内的不希望或不可接

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工作范文 > 行政公文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1