- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软件失效原因 逻辑遗漏或执行错误 算法的编码错误 软硬件接口故障 数据操作错误 数据错误或丢失 具体失效原因—逻辑遗漏或执行错误 遗忘细节或步骤 逻辑重复 忽略极限条件 需求的错误表述 未进行条件测试 检查错误变量 循环错误 返回 具体失效原因—算法编码错误 等式不完整或不正确 丢失运算结果 操作数错误 操作错误 括号使用错误 精度损失 舍入和舍去错误 混合类型 标记习惯不正确 返回 具体失效原因—软硬件接口错误 I/O时序错误 时序错误导致数据丢失 子函数调用不当 子函数调用位置错误 调用不存在的子函数 子函数不一致 返回 具体失效原因—数据操作错误 数据初始化错误 数据存取错误 标志或索引设置不当 数据打包解包错误 变量参考错误数据 数据越界 变量缩放比率或单位不正确 变量维度不正确 变量类型错误 变量下标错误 数据范围不对 返回 具体失效原因—数据错误或丢失 传感器数据错误或丢失 操作数据错误或丢失 嵌入到表中的数据错误或丢失 外部数据错误或丢失 输出数据错误或丢失 输入数据错误或丢失 返回 4)软件失效影响分析 针对每个失效模式分析其造成的影响,一般可分为局部影响、上一层次影响和最终影响三级 ,并分析失效所造成影响的严重性。 避免潜在的死循环 在等待外部信号的程序段中,不允许无限制地等待。正确的做法应是,或采用循环等待次数控制,或使用定时器,使得规定时间内(无论成功或失败)必须保证退出等待外部信号的程序段。 不允许的设计方法 建议采用的设计方法 注意通过双口RAM进行握手 通过双口RAM进行信息交换是设计师经常采用的一种设计方案。的确双口RAM提供了信息交换双方的方便读写,但仅靠双口RAM要做到读写的时序要求就要格外小心。 如此的设计是要避免的:通过双口RAM交换信息,在双口RAM中设置了握手信号单元。读方检查到握手信号为01H,表明对方已准备好数据,再读数据,读完后将握手信号置为00H;写方检查到握手信号为00H,表明对方已取走数据,再写数据,写完数据后再将握手信号置为01H,表明自己已准备好数据。 这种设计不一定可靠,可能会出现写方要写握手信号时,读方正在读握手信号,则写方要写的值写不进去。可靠的设计应用硬件连线保证握手,而不要靠双口RAM中的握手信号。如果一定要靠双口RAM进行握手,则写握手信号单元数据时一定要写完后接着再读出,经验证确实写成功后再进行下面的操作,否则需继续写。 当然这必须与避免潜在的死循环的设计准则联合使用。 可靠的设计方法 握手标志置不上的可能 数据采集的多路冗余设计 关键数据的采集可采用多路冗余设计,即可以从多个通讯口对同一数据进行采集,通过表决进行有效数据的裁决。通常多采用奇数路的冗余设计,如3路、5路等。 (1)开关量的裁决可采用多数票的裁决,如3取2、5取3等。 (2)模拟量的裁决可采用中间数平均值的裁决,如3路数的中间值、5路数去掉最大最小值后的平均值等。 主动式错误检测 软件BIT 对ROM中的代码进行和检验(sum check); 检测RAM,以保证正确的操作用数码; 检测内存的正确性,以确保正确操作; 对关键及重要的函数功能及逻辑功能进行典型较核。 …… 据统计,将硬件看门狗定时器及软件BIT相结合,一般可检测出98%的故障。 主动式错误检测可作为周期性任务来安排,也可作为一个低优先级的任务来执行。 故障恢复措施 完全恢复(依靠冗余备份) 降级恢复(只提供重要的功能) 立即停止程序运行(安全停机) 记载错误 将发生错误时的状态记录在一个外部文件上,然后让系统恢复运行,再由维护人员对记录进行深入的分析研究。 软件改错设计 第7-10节 软件改错设计 改错设计是指在设计中,赋予程序自我改正错误、减少错误危害程度的能力的一种设计方法。 改正错误的前提是已经准确地找出软件错误的起因和部位(故障检测与故障定位合称故障诊断),程序又有能力修改、剔除有错误的语句。 现阶段仅限于减少软件错误造成的有害影响,或将有害影响限制在一个较小的范围。常采用故障隔离技术。 现阶段没有人的参与几乎不可能 故障隔离 权限最小化原则是实现故障隔离的主要思想。 为了限制故障的蔓延,要求对过程和数据加以严格的定义和限制。例如,针对操作系统的故障隔离方法: 不允许一个用户的应用程序引用或修改其它用户的应用程序或数据; 绝对不允许一个应用程序引用或修改操作系统的编码或操作系统内部的数据; 保护应用程序及其数据,使其不致由于操作系统的错误而引起程序和数据的偶然变更; 应用程序绝对不能终止系统工作、不能诱发操作系统去改变其它的应用程序或数据; …… 第7-11节 软件容错设计 软件容错设计是指在
文档评论(0)