第八讲 软件可靠性设计.ppt

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
4.1 N文本法 相对于一个给定的功能,由N(N2)个不同的设计组独立编制出N个不同的程序,然后同时在N个机器上运行并比较运行的结果 如果结果一致,认为结果正确 如果结果不尽相同,按多数表决或其它预先制定的策略,判定结果的正确性 优点:没有服务中断 4.2 恢复块机制 某一恢复块结构的句法: ensureacceptance testby P0 else-by P1 else fail 软件系统带有3个部分,两个程序P0 (主要的) 和P1 (可选的), 和接受性测试(acceptance test). 系统的设计就是按照句法所指的控制结构. 执行P0,如果满足接受性测试,正常返回,如果不符合测试条件,或者超过了规定时间,发出调用替补过程P1的指令,如果再次失败或再次超时,则出错 只要一台计算机 案例:阿丽亚娜5型火箭软件设计的反思 1996年6月,欧洲航天局研制的”阿丽亚娜5型火箭”在法国圭亚那库鲁航天中心首次发射,这次发射因空中云层过厚而被推迟了1小时.随后高51.4米,通体银白的火箭离开发射台升空约30秒,距地面约4000米时,半空穿来两声巨大的爆炸声.70亿美元的研制费用,上万人10余年的心血,瞬息间付之一炬. 外电报称:这是自1986年美国”挑战者”航天飞机爆炸后,世界航天史上的又一大悲剧. 事件发生后,欧洲航天局成立的专门的调查委员会,经过6周的调查,确认失败的原因为:阿丽亚娜5型火箭在主发动机点火顺序开始37秒后,制导和姿势信息完全遗失造成的,信息遗失是由于惯性制导系统的软件出现规格和设计错误. 原因一:在需求分析和设计中,没有对惯性制导系统中”重用”软件的合理性,进行可行性分析和认证 采用了阿丽亚娜4型火箭的惯性制导系统.但5型的功率和飞行速度都远大于4型,惯性制导系统把64位的浮点数转换为一个带符合的整数时,由于数量太大而超限 原因二:查错设计的失误 对于这种非常重要的操作数的转换,本来应该在设计时加以防范,设计人员也考虑到了这一点,他们发现7个变量可能引起操作数有差错,但是由于计算机的最大工作负荷已达80%,于是它们只对其中4个变量进行了保护 原因三:改错设计的失误 在许多安全关键系统中,如果发现关键失效发生,通常采用紧急停机的措施. 原因四:容错方法的失误 阿丽亚娜5型的设计师们非常重视可靠性技术中的冗余设计技术.火箭的惯性制导系统采用双备冗余.火箭上的主计算机也是双备冗余,飞行控制系统的许多单元也是双备冗余.但是他们忽视了软件容错的特殊性,在硬件的热备份系统中使用了完全相同的软件版本,只做到了硬件容错 小结 软件可靠性设计与硬件有差别 避错设计 查错和改错设计 容错设计 独立性的度量:耦合 * * A访问C的内部数据 ? 内容耦合 * * A不 通过 正常 入口 而转 入C 的内 部。 …… A B C D A: ………… ………… goto C1 ………… ………… C: ………… ………… C1: …… …… ? 内容耦合 独立性的度量:耦合 独立性的度量:耦合 应遵循以下原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合 * * * * 独立性的度量:内聚 内聚标志一个模块内各个元素彼此紧密结合的紧密程度。 七种内聚: 1.偶然内聚 2.逻辑内聚 3.时间内聚 4.过程内聚 5.通信内聚 6.顺序内聚 7.功能内聚 功能内聚 一个模块中各个部分都是完成某一具体功能必不可少的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。 功能内聚是最强也是最好的一种内聚。 例子:Sin(),GetCustomerName() * * 顺序内聚 顺序内聚是指模块中各成分有顺序关系,某一成分的输出数据是另一成分的输入数据。 * * 通信内聚 如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚 或者说:如果一个模块的所有成分都操作同一个数据集或者生成同一数据集 通常,通信内聚模块是通过数据流图来定义的。 * * 过程内聚 如果一个模块内部的处理成分是相关的,而且这些处理必须以特定的次序执行,则称为过程内聚 使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。 问题:请大家举个生活中必须遵照特定次序的例子? 答案:排队买饭(队列,要求先进先出)。 * * 时间内聚 某个模块包含的任务(操作)必须在同一时间内执行 如:模块完成各种初始化工作 * * 逻辑内聚 这种模块把几种相关的功能组合在一起,每次被 调用

文档评论(0)

chqs52 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档