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

上传人:hs****ma 文档编号:578110801 上传时间:2024-08-23 格式:PPT 页数:70 大小:1.50MB
返回 下载 相关 举报
第八讲软件可靠性设计ppt课件_第1页
第1页 / 共70页
第八讲软件可靠性设计ppt课件_第2页
第2页 / 共70页
第八讲软件可靠性设计ppt课件_第3页
第3页 / 共70页
第八讲软件可靠性设计ppt课件_第4页
第4页 / 共70页
第八讲软件可靠性设计ppt课件_第5页
第5页 / 共70页
点击查看更多>>
资源描述

《第八讲软件可靠性设计ppt课件》由会员分享,可在线阅读,更多相关《第八讲软件可靠性设计ppt课件(70页珍藏版)》请在金锄头文库上搜索。

1、上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院第第8讲讲 软件可靠性设计软件可靠性设计(20)上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院内容内容w软件可靠性件可靠性设计概述概述w避避错设计w查错和改和改错设计w容容错设计上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院1. 概述概述/1w实质:在常:在常规的的软件件设计中,中,应用必用必须的方法和的方法和技技术,使程序,使程序设计在兼在兼顾用用户的各种需求的各种需求时,全,全面面满足足软件的可靠性要求件的可靠性要求w可靠性可靠性设计的四种的四种类型:型:n避避错设计n查错设计n改改错设计n

2、容容错设计上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2. 避错设计避错设计w使使软件件产品在品在设计过程中,不程中,不发送送错误或少或少发生生错误的一种的一种设计方法方法w各种各种软件工程方法件工程方法有助于避有助于避错w可靠性可靠性设计的的Myers设计原原则n控制程序的复控制程序的复杂度度w使系使系统中的各个模中的各个模块具有最大的独立性具有最大的独立性w使程序具有合理的使程序具有合理的层次次结构构w当模当模块或或单元之元之间的相互作用无法避免的相互作用无法避免时,务必使其必使其联系尽系尽量量简单,以防止在模,以防止在模块和和单元之元之间产生未知的生未知的边际效效应,

3、使,使设计人人员陷入泥潭,无力自拔陷入泥潭,无力自拔n与用与用户保持保持紧密密联系系上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院设计原理设计原理w1.模模块化化n模模块:w模模块是由是由边界元素限定的相界元素限定的相邻的程序元素的程序元素(例如数据例如数据说明明,可可执行行语句句)的序列的序列,而且有一个而且有一个总体的体的标识符来代表它符来代表它w如如pascal和和Ada中的中的块结构中的构中的Beginend对,或者或者Java中中的的w因此因此,过程、函数、子程、函数、子过程、子函数、宏等都可以作程、子函数、宏等都可以作为模模块w面向面向对象中的象中的对象以及象以及

4、对象内的方法也是模象内的方法也是模块n就是把程序划分成若干个模就是把程序划分成若干个模块,每个模,每个模块完成完成一个子功能,把一个子功能,把这些模些模块集成起来集成起来组成一个整成一个整体,可以完成指定的功能,解决体,可以完成指定的功能,解决实际问题。2024/8/235上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院设计原理设计原理2024/8/236过程、函数VB上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院设计原理设计原理2024/8/237过程、函数C+类型型标识符符 函数名(形式参数表)函数名(形式参数表) 语句序列句序列对于于过程:程:类型型标识

5、符符为void上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院设计原理设计原理2024/8/238子过程、子函数、子程序主程序输入子程序计算子程序输出子程序上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院设计原理设计原理w面向面向对象中的象中的对象以及象以及对象内的方法也是模象内的方法也是模块2024/8/239订单DateRecieveisPrepaidPriceDispatch()Close()上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2310软件设计原理软件设计原理经验1:工作量:工作量E(P1+P2)E(P1)+E(P

6、2)经验2:成成本本成本成本 / / 模块模块最小成本区最小成本区接口成本接口成本软件总成本软件总成本模块数目模块数目上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w人人类在在认识复复杂现象的象的过程中使用的最程中使用的最强有力的思有力的思维工工具是抽象。人具是抽象。人们在在实践中践中认识到,在到,在现实世界中一定事世界中一定事物、状物、状态或或过程之程之间总存在着某些相似的方面存在着某些相似的方面(共性共性)。把把这些相似的方面集中和概括起来,些相似的方面集中和概括起来,暂时忽略它忽略它们之之间的差异,的差异,这就是抽象。就是抽象。或者或者说抽象就是抽出事物的本抽象就是抽出

7、事物的本质特性而特性而暂时不考不考虑它它们的的细节。2024/8/23112、抽象、抽象/逐步求精逐步求精 上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2312例:例:开发一个开发一个CAD软件,实现一个二维绘图系统的全部功软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。能,供低级计算机辅助设计使用。软件设计原理软件设计原理w在我在我们考考虑对任何任何问题的模的模块化解法化解法时,可以,可以抽象出很多抽象出很多层次。次。n在抽象的最高在抽象的最高层次使用次使用问题环境的境的语言,以概括方言,以概括方式叙述式叙述问题的解法的解法n在在较低的低的层

8、次采用更次采用更过程化的方法,把面向程化的方法,把面向问题的的术语和面向和面向实现的的术语结合起来叙述合起来叙述问题的解法的解法n最后,在最低的抽象最后,在最低的抽象层次可以直接次可以直接实现的方法来叙的方法来叙述述问题的解法的解法上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2313 抽象抽象层次次I I:用:用问题所所处环境的境的术语来描述来描述这个个软件。件。n该软件包括一个件包括一个计算机算机绘图界面,向界面,向绘图员显示示图形,以及一个数字化形,以及一个数字化仪界面,用以代替界面,用以代替绘图板和丁板和丁字尺。所有直字尺。所有直线、折、折线、矩形、矩形

9、、圆及曲及曲线的描画、的描画、所有的几何所有的几何计算、所有的剖面算、所有的剖面图和和辅助助视图都可以都可以用用这个个CADCAD软件件实现。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2314 抽象层次II:任务需求的描述。列出“What”而不是“How”。 CAD SOFTWARE TASKS: user interaction task; 2-D drawing creation task; graphics display task; drawing file management task; END软件设计原理软件设计原理上海理工大学计算机与电气工程

10、学院上海理工大学计算机与电气工程学院2024/8/2315 抽象层次III:程序过程表示。以2-D绘图生成任务为例: PROCEDURE 2-D drawing creation REPEAT UNTILE (drawing creation task terminates) DO WHILE (digitizer interaction occurs) Digitizer interface task; DETERMINE drawing request CASE Line: line drawing task; Rectangle: rectangle drawing task; Circ

11、le: circle drawing task; END; DO WHILE (keyboard interaction occurs) keyboard interaction task; PROCESS analysis/computation CASE View: auxiliary view task; Section: cross sectioning task; END; END REPETITION; END PROCEDURE. 软件设计原理软件设计原理上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/23163、信息信息隐蔽蔽(Informatio

12、n hiding)信息隐蔽使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。 在这个抽象层次上,给出了初步的过程表示,所用的在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作已经开始显露。术语都已面向软件,而且模块化的工作已经开始显露。软件设计原理软件设计原理上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2317f1 f2f3fifnSgi(X,S)S输输出出输输出出上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院4、模模块独立性独立性(Module independence)w每个模

13、每个模块完成一个相完成一个相对独立的特定子功能,并且和其他独立的特定子功能,并且和其他模模块之之间的接口很的接口很简单。w模模块的独立程度可以由两个定性的独立程度可以由两个定性标准来衡量,准来衡量,这两个两个标准分准分别称称为耦合性和内聚性。耦合性和内聚性。藕合衡量不同模藕合衡量不同模块彼此彼此间互相依互相依赖(连接)的接)的紧密程度;内聚衡量一个模密程度;内聚衡量一个模块内部内部各个元素彼此各个元素彼此间结合的合的紧密程度。密程度。w一般一般较较优秀的秀的软件件设计应尽量做到高内聚、低耦合,尽量做到高内聚、低耦合,即减弱模即减弱模块间的耦合性和提高模的耦合性和提高模块内的内聚性,有利于内的内

14、聚性,有利于提高模提高模块的独立性的独立性。2024/8/2318软件设计原理软件设计原理上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2319Great deal of dependenceIndependent Highly coupledLoosely coupledUncoupled 独立性的度量:耦合独立性的度量:耦合上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w耦合的七种耦合的七种类型型n完全独立完全独立n数据耦合数据耦合n特征耦合特征耦合n控制耦合控制耦合n外部耦合外部耦合n公共耦合公共耦合n内容耦合内容耦合2024/8/232

15、0上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院独立性的度量:耦合独立性的度量:耦合w完全独立完全独立n两个模两个模块之之间没有直接关系,它没有直接关系,它们之之间的的联系完全是通系完全是通过主模主模块的控制和的控制和调用来用来实现的的2024/8/2321上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院独立性的度量:耦合独立性的度量:耦合w数据耦合数据耦合n一个模一个模块访问另一个模另一个模块时,彼此之,彼此之间是通是通过简单数据参数数据参数 (不是控制参数、公不是控制参数、公共数据共数据结构或外部构或外部变量量) 来交来交换输入、入、输出信息的。出信息的。

16、2024/8/2322上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院独立性的度量:耦合独立性的度量:耦合w特征耦合特征耦合n一一组模模块通通过参数表参数表传递记录信息,就是特征信息,就是特征记耦合。耦合。这个个记录是某一数据是某一数据结构的子构的子结构,而不是构,而不是简单变量。量。2024/8/2323上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院独立性的度量:耦合独立性的度量:耦合w控制耦合控制耦合n如果一个模如果一个模块通通过传送开关、送开关、标志、名字等控制信息,明志、名字等控制信息,明显地地控制控制选择另一模另一模块的功能,就是控制耦合。的功能,就

17、是控制耦合。2024/8/2324ABFlagF2F1FnFlag上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2325独立性的度量:耦合独立性的度量:耦合上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w公共公共环境耦合境耦合n若一若一组模模块都都访问同一个公共数据同一个公共数据环境,境,则它它们之之间的耦合就称的耦合就称为公共耦合。公共的数据公共耦合。公共的数据环境可以是全局境可以是全局数据数据结构、共享的通信区、内存的公共覆盖区等。构、共享的通信区、内存的公共覆盖区等。2024/8/2326上海理工大学计算机与电气工程学院上海理工大学计算机

18、与电气工程学院2024/8/2327 公共耦合 Global : V1 V2A:A1=V1+V2B:V1=B1Global : V1 V2A:V1+B:V2=B1+V1问题:问题: 公共部分的改动将影响所有调用它的模块;公共部分的改动将影响所有调用它的模块; 公共部分的数据存取无法控制;公共部分的数据存取无法控制; 复杂程度随耦合模块的个数增加而增加。复杂程度随耦合模块的个数增加而增加。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2328 公共耦合 上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w内容耦合内容耦合,如果如果发生下列情形,两个模

19、生下列情形,两个模块之之间就就发生了内容耦合生了内容耦合n一个模一个模块直接直接访问另一个模另一个模块的内部数据的内部数据;n一个模一个模块不通不通过正常入口正常入口转到另一模到另一模块内部内部;n两个模两个模块有一部分程序代有一部分程序代码重迭重迭(只可能出只可能出现在在汇编语言中言中);n一个模一个模块有多个入口。有多个入口。2024/8/2329上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院独立性的度量:耦合独立性的度量:耦合2024/8/2330A访问C的内部数据 内容耦合内容耦合上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2331A

20、不通过正常入口而转入C的内部。ABCDA:goto C1C:C1: 内容耦合内容耦合独立性的度量:耦合独立性的度量:耦合上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院独立性的度量:耦合独立性的度量:耦合w应遵循以下原遵循以下原则:尽量使用数据耦合,少用控制:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共耦合和特征耦合,限制公共环境耦合的范境耦合的范围,完,完全不用内容耦合全不用内容耦合2024/8/2332上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2333独立性的度量:独立性的度量:内聚内聚w内聚内聚标志一个志一个模模块内内各个元素彼此

21、各个元素彼此紧密密结合的合的紧密程度。密程度。w七种内聚:七种内聚:n1.偶然内聚偶然内聚n2.逻辑内聚内聚n3.时间内聚内聚n4.过程内聚程内聚n5.通信内聚通信内聚n6.顺序内聚序内聚n7.功能内聚功能内聚上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w功能内聚功能内聚n一个模一个模块中各个部分都是中各个部分都是完成某一具体功能完成某一具体功能必不可少必不可少的的组成部分,或者成部分,或者说该模模块中所有部分都是中所有部分都是为了完成了完成一一项具体功能而具体功能而协同工作,同工作,紧密密联系,不可分割的。系,不可分割的。则称称该模模块为功能内聚模功能内聚模块。n功能内聚

22、是最功能内聚是最强也是最好的一种内聚。也是最好的一种内聚。n例子例子:Sin(),GetCustomerName()2024/8/2334上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w顺序内聚序内聚n顺序内聚是指模序内聚是指模块中各成分有中各成分有顺序关系,某一成分的序关系,某一成分的输出数据是另一成分的出数据是另一成分的输入数据。入数据。2024/8/2335上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w通信内聚通信内聚n如果模如果模块中所有元素都使用同一个中所有元素都使用同一个输入数据和(或)入数据和(或)产生同一个生同一个输出数据,出数据,则称称为

23、通信内聚通信内聚n或者或者说:如果一个模:如果一个模块的所有成分都操作同一个数据集或者生成的所有成分都操作同一个数据集或者生成同一数据集同一数据集n通常,通信内聚模通常,通信内聚模块是通是通过数据流数据流图来定来定义的。的。2024/8/2336上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w过程内聚程内聚n如果一个模如果一个模块内部的内部的处理成分是相关的理成分是相关的,而且而且这些些处理理必必须以特定的次序以特定的次序执行行,则称称为过程内聚程内聚n使用流程使用流程图做做为工具工具设计程序程序时,把流程,把流程图中的某一中的某一部分划出部分划出组成模成模块,就得到,就得到

24、过程内聚模程内聚模块。例如,把。例如,把流程流程图中的循中的循环部分、判定部分、部分、判定部分、计算部分分成三个算部分分成三个模模块,这三个模三个模块都是都是过程内聚模程内聚模块。n问题:请大家大家举个生活中必个生活中必须遵照特定次序的例子?遵照特定次序的例子? n答案:排答案:排队买饭(队列,要求先列,要求先进先出)。先出)。 2024/8/2337上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w时间内聚内聚n某个模某个模块包含的任包含的任务(操作)必(操作)必须在同一在同一时间内内执行行n如:模如:模块完成各种初始化工作完成各种初始化工作2024/8/2338上海理工大学

25、计算机与电气工程学院上海理工大学计算机与电气工程学院w逻辑内聚内聚n这种模种模块把几种相关的把几种相关的功能功能组合在一起,每次合在一起,每次被被 调用用时,由,由传送送给模模块的判定参数来确定的判定参数来确定该模模块 应执行哪一种功能。行哪一种功能。2024/8/2339A:Read inputsfrom diskfrom tapefrom 上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w偶然内聚偶然内聚n巧合内聚巧合内聚 (偶然内聚偶然内聚)。当模。当模块内各部分之内各部分之间没有没有联系,或者即系,或者即使有使有联系,系,这种种联系系也很松散,也很松散,则称称这种种模模

26、块为巧合内聚模巧合内聚模块,它是内聚程度它是内聚程度 最低最低的模的模块。2024/8/2340上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2341上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2342n设计内聚的原则设计内聚的原则w设计时应尽力争取做到高内聚设计时应尽力争取做到高内聚,并且能够辨识出低内聚的并且能够辨识出低内聚的模块模块,并采取措施进行修改并采取措施进行修改,以提高模块的内聚程度、降以提高模块的内聚程度、降低模块间的耦合程度,从而获得较高的模块独立性低模块间的耦合程度,从而获得较高的模块独立性上海理工大学计算机

27、与电气工程学院上海理工大学计算机与电气工程学院2024/8/23431.争取低耦合、高内聚(增加内聚争取低耦合、高内聚(增加内聚 减少耦合)减少耦合)如果在几个模块中发现共有的子功能,一般应该将该子如果在几个模块中发现共有的子功能,一般应该将该子功能独立出来作为一个模块,以提高模块的独立性功能独立出来作为一个模块,以提高模块的独立性合并那些具有较多的控制信息传递的模块以降低模块之合并那些具有较多的控制信息传递的模块以降低模块之间的耦合度间的耦合度启发性规则启发性规则上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/23442. 模模块规模适中:模适中:过大不易理解;

28、太小大不易理解;太小则接口开接口开销过大。注意分解后不大。注意分解后不应降低模降低模块的独立性。的独立性。3. 适当控制适当控制 深度、深度、宽度、扇出、扇入度、扇出、扇入 深度深度 = 分分层的的层数。数。宽度越大系度越大系统越复越复杂 宽度度 = 同一同一层上模上模块数的最大数的最大值。过大表示系大表示系统复复杂度大。度大。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2345启发性规则启发性规则w系系统结统结构构上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2346扇出扇出 = 一个模一个模块直接直接调用用控制的模控制的模块

29、数。数。 3 fan-out 9扇出越大意味着模扇出越大意味着模块过分分复复杂,应该适当增加中适当增加中间层扇出太小扇出太小则可以把下可以把下级模模块进一步分解成若干子模一步分解成若干子模块,或者把,或者把该模模块合并到合并到它的上它的上级模模块中中AA的扇出的扇出启发性规则启发性规则上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院启发性规则启发性规则2024/8/2347AA的扇入的扇入 扇入扇入 = 直接调用该模直接调用该模块的模块数块的模块数在不破坏独立性的前提在不破坏独立性的前提下,下,fan-in 大的比较好。大的比较好。w一个好的软件结构通常顶层扇出较高,中间层扇出

30、较低,一个好的软件结构通常顶层扇出较高,中间层扇出较低,底层又高扇入到公共模块中去底层又高扇入到公共模块中去上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/23484、作用域在控制域内、作用域在控制域内 控制域:包含控制域:包含该模模块和所有从和所有从属于属于该模模块的模的模块MACBM的控制域为的控制域为 M,A,B,C 作用域:模块中的一个判定所影响的模块。作用域:模块中的一个判定所影响的模块。启发性规则启发性规则上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2349TOP CD E FABTOP CD E FAB模块D的作用域

31、超出控制域D的作用域在控制域内上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/2350上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2024/8/23515、降低接口的复降低接口的复杂程度:接口复程度:接口复杂可能表明模可能表明模块的独立性的独立性差。差。6、设计单入入单出的模出的模块。当从。当从顶部部进入模入模块并且从底部退并且从底部退出出时,软件是比件是比较容易理解和容易理解和维护的的启发性规则启发性规则上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院启发性规则启发性规则w7、模、模块功能可功能可预测 相同相同输入必入必产生生

32、相同相同输出。反例:模出。反例:模块中使用全局中使用全局变量或量或静静态变量,量,则可能可能导致不可致不可预测。2024/8/2352上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院3. 查错和改错设计查错和改错设计w避避错设计不能完全避免不能完全避免错误w需要需要设计能能够具有自具有自动查错和改和改错功能的方法功能的方法w查错设计n被被动式式检测n主主动式式检测上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院3.1 被动式错误检测被动式错误检测/1w适用于适用于软件的各种件的各种结构构层次,用来次,用来检测从一个从一个单元、模元、模块向另一个向另一个单元、模元

33、、模块传递的的错误征兆和征兆和检测存在于存在于单元、模元、模块内部的内部的错误w原原则n相互相互怀疑原疑原则n立即立即检测原原则上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院3.1 被动式错误检测被动式错误检测/2w方法:取决于方法:取决于软件的用途、功能、件的用途、功能、结构和算法,构和算法,没有通用的模式,可没有通用的模式,可选择的方法的方法n检查每个每个输入数据的属性入数据的属性n按照已知的数据极限按照已知的数据极限检查输入数据入数据n检查所有的多所有的多值数据的有效性数据的有效性n如果如果输入数据存在明入数据存在明显的冗余成分,的冗余成分,应检查二者的一二者的一致性致

34、性n如果如果输入数据中不存在冗余,可以入数据中不存在冗余,可以对输入数据求和,入数据求和,比比较输入数据与内部数据的一致性入数据与内部数据的一致性上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院3.1 被动式错误检测被动式错误检测/3w发生生错误后后n立即停止程序运行,立即停止程序运行,检错n不停止程序,不停止程序,记录错误上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院3.2 主动式错误检测主动式错误检测/1w赋予程序特殊功能,主予程序特殊功能,主动搜索搜索错误,并,并进行指示行指示w由由检测监视器承担,器承担,对系系统的有关的数据主的有关的数据主动进行行扫描

35、,例如:描,例如:n合理运行合理运行时间的异常的异常过程程n系系统中中丢失的文件失的文件n长时间内未完成的内未完成的输入,入,输出操作出操作n主主动系系统诊断断w可以作可以作为周期性的任周期性的任务来安排来安排上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院3.2 主动式错误检测主动式错误检测/2w如操作系如操作系统统中的存中的存储储管理模管理模块块,具有向用具有向用户户程序程序和操作系和操作系统统的其它模的其它模块块出借存出借存储储区域的功能区域的功能,然然而用而用户户程序或其他模程序或其他模块块的的错误错误有有时时会造成借出去会造成借出去的存的存储储区域不能返回区域不能返回

36、给给存存储储管理模管理模块块.主主动动式式检检测测能及能及时发现这类问题时发现这类问题上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院3.3 改错设计改错设计w希望希望软件具有自件具有自动改正改正错误的功能的功能w需要需要“智能智能”,困,困难很大,所以目前采用的方法多半是很大,所以目前采用的方法多半是隔离隔离错误.实现用用户隔离就是防止一个用隔离就是防止一个用户程序的失效程序的失效,影影响其它用响其它用户程序及整个系程序及整个系统正常运行的关正常运行的关键措施措施w例如例如贝尔实验室室TSPS系系统,电话换接系接系统,可靠性要求,可靠性要求为40年内停止工作年内停止工作时间不

37、超不超过两小两小时,整机停机是极,整机停机是极为严重的任重的任务,而常,而常见的故障,例如某个的故障,例如某个电话线连接中断,接中断,则是可以允是可以允许的失的失误。TSPS系系统使用被使用被动和主和主动查错及及改改错技技术来减少系来减少系统失效,策略是尽快失效,策略是尽快检测出某些特殊出某些特殊类型的型的错误,并控制其,并控制其扩散散.即使即使损失某些数据也在所不失某些数据也在所不惜惜上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院4. 容错设计容错设计w容容错计算系算系统能能够在出在出现一定限度的失效的情况下,依一定限度的失效的情况下,依旧能旧能够提供所需要的服提供所需要的

38、服务. . w这些失效的些失效的发生是由于系生是由于系统的的组件或者系件或者系统设计中存在中存在缺陷所缺陷所导致的致的. . w构造大型的构造大型的计算系算系统是一个复是一个复杂的任的任务; ; 要使系要使系统具有具有容容错能力就更复能力就更复杂,除非采用合适的系,除非采用合适的系统构造概念构造概念. .w传统的硬件系的硬件系统的容的容错方法建立在方法建立在对物理物理组件失效模式件失效模式的影响的深入了解的基的影响的深入了解的基础上上. . w传统的硬件容的硬件容错方法一般不足以方法一般不足以处理理设计上的缺陷上的缺陷. . w因此,因此,绝大多数硬件的容大多数硬件的容错方法不能运用到方法不能

39、运用到软件上,因件上,因为软件中件中绝大多数的缺陷都是大多数的缺陷都是设计缺陷缺陷上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w两种方法两种方法nN文本法文本法w静静态冗余冗余n恢复恢复块法法w动态冗余冗余w增加了增加了资源消耗,容源消耗,容错技技术不宜普遍采用不宜普遍采用上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院4.1 N文本法文本法w相相对于一个于一个给定的功能,定的功能,由由N(N2)个不同的个不同的设计组独立独立编制出制出N个不同的个不同的程序,然后同程序,然后同时在在N个机个机器上运行并比器上运行并比较运行的运行的结果果n如果如果结果一致,果

40、一致,认为结果果正确正确n如果如果结果不尽相同,按多果不尽相同,按多数表决或其它数表决或其它预先制定的先制定的策略,判定策略,判定结果的正确性果的正确性优点:没有服务中断上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院4.2 恢复块机制恢复块机制w某一恢复某一恢复块结构的句法构的句法:ensureby P0 else-by P1 else failw 软件系件系统带有有3个部分,两个程序个部分,两个程序P0 (主要的主要的) 和和P1 (可可选的的), 和接受性和接受性测试(acceptance test). w系系统的的设计就是按照句法所指的控制就是按照句法所指的控制结构构.

41、w执行行P0,如果如果满足接受性足接受性测试,正常返回,如果不符合,正常返回,如果不符合测试条件,或者超条件,或者超过了了规定定时间,发出出调用替用替补过程程P1的指令,如果再次失的指令,如果再次失败或再次超或再次超时,则出出错w只要一台只要一台计算机算机上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院案例案例案例案例: :阿丽亚娜阿丽亚娜阿丽亚娜阿丽亚娜5 5型火箭软件设计的反思型火箭软件设计的反思型火箭软件设计的反思型火箭软件设计的反思w1996年年6月月,欧洲航天局研制的欧洲航天局研制的”阿阿丽亚丽亚娜娜5型火型火箭箭”在法国圭在法国圭亚亚那那库鲁库鲁航天中心首次航天中心

42、首次发发射射,这这次次发发射因空中云射因空中云层过层过厚而被推厚而被推迟迟了了1小小时时.随后高随后高51.4米米,通体通体银银白的火箭离开白的火箭离开发发射台升空射台升空约约30秒秒,距地距地面面约约4000米米时时,半空穿来两声巨大的爆炸声半空穿来两声巨大的爆炸声.70亿亿美元的研制美元的研制费费用用,上万人上万人10余年的心血余年的心血,瞬息瞬息间间付之一炬付之一炬.w外外电报电报称称:这这是自是自1986年美国年美国”挑挑战战者者”航天航天飞飞机机爆炸后爆炸后,世界航天史上的又一大悲世界航天史上的又一大悲剧剧.上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w事件事件发

43、发生后生后,欧洲航天局成立的欧洲航天局成立的专门专门的的调查调查委委员员会会,经过经过6周的周的调查调查,确确认认失失败败的原因的原因为为:阿阿丽亚丽亚娜娜5型火箭在主型火箭在主发动发动机点火机点火顺顺序开始序开始37秒后秒后,制制导导和姿和姿势势信息完全信息完全遗遗失造成的失造成的,信息信息遗遗失是由于失是由于惯惯性制性制导导系系统统的的软软件出件出现规现规格和格和设计错误设计错误.上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w原因一原因一:在需求分析和在需求分析和设计中中,没有没有对惯性制性制导系系统中中”重用重用”软件的合理性件的合理性,进行可行性分析和行可行性分析和

44、认证n采用了阿采用了阿丽亚娜娜4型火箭的型火箭的惯性制性制导系系统.但但5型的功型的功率和率和飞行速度都行速度都远大于大于4型型,惯性制性制导系系统把把64位的浮位的浮点数点数转换为一个一个带符合的整数符合的整数时,由于数量太大而超限由于数量太大而超限上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w原因二原因二:查错设计的失的失误n对于于这种非常重要的操作数的种非常重要的操作数的转换,本来本来应该在在设计时加以防范加以防范,设计人人员也考也考虑到了到了这一点一点,他他们发现7个个变量可能引起操作数有差量可能引起操作数有差错,但是由于但是由于计算机的最大工作算机的最大工作负荷已

45、达荷已达80%,于是它于是它们只只对其中其中4个个变量量进行了保行了保护上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w原因三原因三:改改错设计的失的失误n在在许多安全关多安全关键系系统中,如果中,如果发现关关键失效失效发生生,通常通常采用采用紧急停机的措施急停机的措施.上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w原因四原因四:容容错方法的失方法的失误n阿阿丽亚娜娜5型的型的设计师们非常重非常重视可靠性技可靠性技术中的冗中的冗余余设计技技术.火箭的火箭的惯性制性制导系系统采用双采用双备冗余冗余.火箭火箭上的主上的主计算机也是双算机也是双备冗余冗余,飞行控制系行控制系统的的许多多单元元也是双也是双备冗余冗余.但是他但是他们忽忽视了了软件容件容错的特殊性的特殊性,在在硬件的硬件的热备份系份系统中使用了完全相同的中使用了完全相同的软件版本件版本,只做只做到了硬件容到了硬件容错上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院小结小结w软件可靠性件可靠性设计与硬件有差与硬件有差别w避避错设计w查错和改和改错设计w容容错设计

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号