第八讲_软件可靠性设计_第1页
第八讲_软件可靠性设计_第2页
第八讲_软件可靠性设计_第3页
第八讲_软件可靠性设计_第4页
第八讲_软件可靠性设计_第5页
已阅读5页,还剩65页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

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

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

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

4、子函数、宏等都可以作为模块过程、函数、子过程、子函数、宏等都可以作为模块w面向对象中的对象以及对象内的方法也是模块面向对象中的对象以及对象内的方法也是模块n就是把程序划分成若干个模块,每个模块完就是把程序划分成若干个模块,每个模块完成一个子功能,把这些模块集成起来组成一成一个子功能,把这些模块集成起来组成一个整体,可以完成指定的功能,解决实际问个整体,可以完成指定的功能,解决实际问题。题。2022-5-165上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-166过程、函数VB上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-167过程、

5、函数C+类型标识符类型标识符 函数名(形式参数表)函数名(形式参数表) 语句序列语句序列对于过程:类型标识符为对于过程:类型标识符为void上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-168子过程、子函数、子程序主程序输入子程序计算子程序输出子程序上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w面向对象中的对象以及对象内的方法也是模块面向对象中的对象以及对象内的方法也是模块2022-5-169订单DateRecieveisPrepaidPriceDispatch()Close()上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院

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

7、之间把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。的差异,这就是抽象。或者说抽象就是抽出事物的本质或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。特性而暂时不考虑它们的细节。2022-5-16112、抽象、抽象/逐步求精逐步求精 上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1612例:例:开发一个开发一个CAD软件,实现一个二维绘图系统的全部功软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。能,供低级计算机辅助设计使用。w在我们考虑对任何问题的模块化解法时,可以在我们考虑对任何问题的模块化解法时,可以抽象出很多层次

8、。抽象出很多层次。n在抽象的最高层次使用问题环境的语言,以概括方在抽象的最高层次使用问题环境的语言,以概括方式叙述问题的解法式叙述问题的解法n在较低的层次采用更过程化的方法,把面向问题的在较低的层次采用更过程化的方法,把面向问题的术语和面向实现的术语结合起来叙述问题的解法术语和面向实现的术语结合起来叙述问题的解法n最后,在最低的抽象层次可以直接实现的方法来叙最后,在最低的抽象层次可以直接实现的方法来叙述问题的解法述问题的解法上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1613 抽象层次抽象层次I I:用问题所处环境的术语来描述这个:用问题所处环境的术语来描述这

9、个软件。软件。n该软件包括一个计算机绘图界面,向绘图员显示图该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘图板和丁形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以所有的几何计算、所有的剖面图和辅助视图都可以用这个用这个CADCAD软件实现软件实现。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1614 抽象层次II:任务需求的描述。列出“What”而不是“How”。 CAD SOFTWARE TASKS

10、: user interaction task; 2-D drawing creation task; graphics display task; drawing file management task; END上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1615 抽象层次III:程序过程表示。以2-D绘图生成任务为例: PROCEDURE 2-D drawing creation REPEAT UNTILE (drawing creation task terminates) DO WHILE (digitizer interaction occurs)

11、 Digitizer interface task; DETERMINE drawing request CASE Line: line drawing task; Rectangle: rectangle drawing task; Circle: circle drawing task; END; DO WHILE (keyboard interaction occurs) keyboard interaction task; PROCESS analysis/computation CASE View: auxiliary view task; Section: cross sectio

12、ning task; END; END REPETITION; END PROCEDURE. 上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-16163、信息隐蔽信息隐蔽(Information hiding)信息隐蔽使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。 在这个抽象层次上,给出了初步的过程表示,所用的在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作已经开始显露。术语都已面向软件,而且模块化的工作已经开始显露。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1

13、617f1 f2f3fifnSgi(X,S)S输输出出输输出出上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院4、模块独立性模块独立性(Module independence)w每个模块完成一个相对独立的特定子功能,并且和其他每个模块完成一个相对独立的特定子功能,并且和其他模块之间的接口很简单。模块之间的接口很简单。w模块的独立程度可以由两个定性标准来衡量,这两个标模块的独立程度可以由两个定性标准来衡量,这两个标准分别称为耦合性和内聚性。准分别称为耦合性和内聚性。藕合衡量不同模块彼此间藕合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部互相依赖(连接)的紧密程

14、度;内聚衡量一个模块内部各个元素彼此间结合的紧密程度。各个元素彼此间结合的紧密程度。w一般较较优秀的软件设计应尽量做到高内聚、低耦合,一般较较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块间的耦合性和提高模块内的内聚性,有利于即减弱模块间的耦合性和提高模块内的内聚性,有利于提高模块的独立性提高模块的独立性。2022-5-1618上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1619Great deal of dependenceIndependent Highly coupledLoosely coupledUncoupled Goal: as loose

15、as possible = as independent as possible上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w耦合的七种类型耦合的七种类型n完全独立完全独立n数据耦合数据耦合n特征耦合特征耦合n控制耦合控制耦合n外部耦合外部耦合n公共耦合公共耦合n内容耦合内容耦合2022-5-1620上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w完全独立完全独立n两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的来实现的2022-5-1621上海理工大学计算机与

16、电气工程学院上海理工大学计算机与电气工程学院w数据耦合数据耦合n一个模块访问另一个模块时,彼此之间是通过简单数据参数一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公不是控制参数、公共数据结构或外部变量共数据结构或外部变量) 来交换输入、输出信息的。来交换输入、输出信息的。2022-5-1622上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w特征耦合特征耦合n一组模块通过参数表传递记录信息,就是特征记耦合一组模块通过参数表传递记录信息,就是特征记耦合。这个记录是某一数据结构的子结构,而不是简单变。这个记录是某一数据结构的子结构,而不是简单变量。量。202

17、2-5-1623上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w控制耦合控制耦合n如果一个模块通过传送开关、标志、名字等控制信息,明显地如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。控制选择另一模块的功能,就是控制耦合。2022-5-1624ABFlagF2F1FnFlag上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1625上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w公共环境耦合公共环境耦合n若一组模块都访问同一个公共数据环境,则它们之间若一组模块都访问同一个公共数据环境,则

18、它们之间的耦合就称为公共耦合。公共的数据环境可以是全局的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。数据结构、共享的通信区、内存的公共覆盖区等。2022-5-1626上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1627 公共耦合 Global : V1 V2A:A1=V1+V2B:V1=B1Global : V1 V2A:V1+B:V2=B1+V1问题:问题: 公共部分的改动将影响所有调用它的模块;公共部分的改动将影响所有调用它的模块; 公共部分的数据存取无法控制;公共部分的数据存取无法控制; 复杂程度随耦合模块的个

19、数增加而增加。复杂程度随耦合模块的个数增加而增加。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1628 公共耦合 上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w内容耦合内容耦合,如果发生下列情形,两个模块之间就如果发生下列情形,两个模块之间就发生了内容耦合发生了内容耦合n一个模块直接访问另一个模块的内部数据一个模块直接访问另一个模块的内部数据;n一个模块不通过正常入口转到另一模块内部一个模块不通过正常入口转到另一模块内部;n两个模块有一部分程序代码重迭两个模块有一部分程序代码重迭(只可能出现在汇编只可能出现在汇编语言中语言中);n一个模块有

20、多个入口。一个模块有多个入口。2022-5-1629上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1630A访问C的内部数据 内容耦合内容耦合上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1631A不通过正常入口而转入C的内部。ABCDA:goto C1C:C1: 内容耦合内容耦合上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w应遵循以下原则:尽量使用数据耦合,少用控制应遵循以下原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合全不用

21、内容耦合2022-5-1632上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1633w内聚标志一个内聚标志一个模块内模块内各个元素彼此紧密结合的紧密程度。各个元素彼此紧密结合的紧密程度。w七种内聚:七种内聚:n1.偶然内聚偶然内聚n2.逻辑内聚逻辑内聚n3.时间内聚时间内聚n4.过程内聚过程内聚n5.通信内聚通信内聚n6.顺序内聚顺序内聚n7.功能内聚功能内聚上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w功能内聚功能内聚n一个模块中各个部分都是一个模块中各个部分都是完成某一具体功能完成某一具体功能必不可少必不可少的组成部分,或者说该模块中所有

22、部分都是为了完成的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。则称该模块为功能内聚模块。n功能内聚是最强也是最好的一种内聚。功能内聚是最强也是最好的一种内聚。n例子例子:Sin(),GetCustomerName()2022-5-1634上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w顺序内聚顺序内聚n顺序内聚是指模块中各成分有顺序关系,某一成分的顺序内聚是指模块中各成分有顺序关系,某一成分的输出数据是另一成分的输入数据。输出数据是另一成分的输入数据。2022

23、-5-1635上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w通信内聚通信内聚n如果模块中所有元素都使用同一个输入数据和(或)产生同一如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚个输出数据,则称为通信内聚n或者说:如果一个模块的所有成分都操作同一个数据集或者生或者说:如果一个模块的所有成分都操作同一个数据集或者生成同一数据集成同一数据集n通常,通信内聚模块是通过数据流图来定义的。通常,通信内聚模块是通过数据流图来定义的。2022-5-1636上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w过程内聚过程内聚n如果一个模块内部

24、的处理成分是相关的如果一个模块内部的处理成分是相关的,而且这些处而且这些处理必须以特定的次序执行理必须以特定的次序执行,则称为过程内聚则称为过程内聚n使用流程图做为工具设计程序时,把流程图中的某一使用流程图做为工具设计程序时,把流程图中的某一部分划出组成模块,就得到过程内聚模块。例如,把部分划出组成模块,就得到过程内聚模块。例如,把流程图中的循环部分、判定部分、计算部分分成三个流程图中的循环部分、判定部分、计算部分分成三个模块,这三个模块都是过程内聚模块。模块,这三个模块都是过程内聚模块。n问题:请大家举个生活中必须遵照特定次序的例子?问题:请大家举个生活中必须遵照特定次序的例子? n答案:排

25、队买饭(队列,要求先进先出)。答案:排队买饭(队列,要求先进先出)。 2022-5-1637上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w时间内聚时间内聚n某个模块包含的任务(操作)必须在同一时间内执行某个模块包含的任务(操作)必须在同一时间内执行n如:模块完成各种初始化工作如:模块完成各种初始化工作2022-5-1638上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w逻辑内聚逻辑内聚n这种模块把几种相关的这种模块把几种相关的功能组合在一起,每次功能组合在一起,每次被被 调用时,由传送给模块调用时,由传送给模块的判定参数来确定该模的判定参数来确定该模块块

26、应执行哪一种功能。应执行哪一种功能。2022-5-1639A:Read inputsfrom diskfrom tapefrom 上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w偶然内聚偶然内聚n巧合内聚巧合内聚 (偶然内聚偶然内聚)。当模块内各部分之。当模块内各部分之间没有联系,或者即间没有联系,或者即使有联系,这种联系使有联系,这种联系也很松散,则称这种也很松散,则称这种模块为巧合内聚模块模块为巧合内聚模块,它是内聚程度,它是内聚程度 最最低的模块。低的模块。2022-5-1640上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1641上海理

27、工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1642n设计内聚的原则设计内聚的原则w设计时应尽力争取做到高内聚设计时应尽力争取做到高内聚,并且能够辨识出低内聚并且能够辨识出低内聚的模块的模块,并采取措施进行修改并采取措施进行修改,以提高模块的内聚程度、以提高模块的内聚程度、降低模块间的耦合程度,从而获得较高的模块独立性降低模块间的耦合程度,从而获得较高的模块独立性上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-16431. 争取低耦合、高内聚(增加内聚争取低耦合、高内聚(增加内聚 减少耦合)减少耦合)如果在几个模块中发现共有的子功能,一

28、般应该将该子如果在几个模块中发现共有的子功能,一般应该将该子功能独立出来作为一个模块,以提高模块的独立性功能独立出来作为一个模块,以提高模块的独立性合并那些具有较多的控制信息传递的模块以降低模块之合并那些具有较多的控制信息传递的模块以降低模块之间的耦合度间的耦合度上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-16442. 模块规模适中:过大不易理解;太小则接口开模块规模适中:过大不易理解;太小则接口开销过大。注意分解后不应降低模块的独立性。销过大。注意分解后不应降低模块的独立性。3. 适当控制适当控制 深度、宽度、扇出、扇入深度、宽度、扇出、扇入 深度深度 =

29、分层的层数。宽度越大系统越复杂分层的层数。宽度越大系统越复杂 宽度宽度 = 同一层上模块数的最大值。过大表示系同一层上模块数的最大值。过大表示系统复杂度大。统复杂度大。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1645w系统结构系统结构上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1646扇出扇出 = 一个模块直接一个模块直接调用调用控制的模块数。控制的模块数。 3 fan-out 9扇出越大意味着模块过分扇出越大意味着模块过分复杂,应该适当增加中间复杂,应该适当增加中间层层扇出太小则可以把下级模扇出太小则可以把下级模块进一步

30、分解成若干子模块进一步分解成若干子模块,或者把该模块合并到块,或者把该模块合并到它的上级模块中它的上级模块中AA的扇出的扇出上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1647AA的扇入的扇入 扇入扇入 = 直接调用该模直接调用该模块的模块数块的模块数在不破坏独立性的前提在不破坏独立性的前提下,下,fan-in 大的比较好。大的比较好。w一个好的软件结构通常顶层扇出较高,中间层扇出较低一个好的软件结构通常顶层扇出较高,中间层扇出较低,底层又高扇入到公共模块中去,底层又高扇入到公共模块中去上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-

31、5-16484、作用域在控制域内、作用域在控制域内 控制域:包含该模块和所有从控制域:包含该模块和所有从属于该模块的模块属于该模块的模块MACBM的控制域为的控制域为 M,A,B,C 作用域:模块中的一个判定所影响的模块。作用域:模块中的一个判定所影响的模块。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1649TOP CD E FABTOP CD E FAB模块D的作用域超出控制域D的作用域在控制域内上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5-1650上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-5

32、-16515、降低接口的复杂程度:接口复杂可能表明模块的独立性降低接口的复杂程度:接口复杂可能表明模块的独立性差。差。6、设计单入单出的模块。当从顶部进入模块并且从底部退、设计单入单出的模块。当从顶部进入模块并且从底部退出时,软件是比较容易理解和维护的出时,软件是比较容易理解和维护的上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w7、模块功能可预测、模块功能可预测 相同输入必产生相同输入必产生相同输出。反例:模相同输出。反例:模块中使用全局变量或块中使用全局变量或静态变量,则可能导静态变量,则可能导致不可预测。致不可预测。2022-5-1652上海理工大学计算机与电气工程学院

33、上海理工大学计算机与电气工程学院w避错设计不能完全避免错误避错设计不能完全避免错误w需要设计能够具有自动查错和改错功能的方法需要设计能够具有自动查错和改错功能的方法w查错设计查错设计n被动式检测被动式检测n主动式检测主动式检测上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w适用于软件的各种结构层次,用来检测从一个单适用于软件的各种结构层次,用来检测从一个单元、模块向另一个单元、模块传递的错误征兆和元、模块向另一个单元、模块传递的错误征兆和检测存在于单元、模块内部的错误检测存在于单元、模块内部的错误w原则原则n相互怀疑原则相互怀疑原则n立即检测原则立即检测原则上海理工大学计算机

34、与电气工程学院上海理工大学计算机与电气工程学院w方法:取决于软件的用途、功能、结构和算法,方法:取决于软件的用途、功能、结构和算法,没有通用的模式,可选择的方法没有通用的模式,可选择的方法n检查每个输入数据的属性检查每个输入数据的属性n按照已知的数据极限检查输入数据按照已知的数据极限检查输入数据n检查所有的多值数据的有效性检查所有的多值数据的有效性n如果输入数据存在明显的冗余成分,应检查二者的一如果输入数据存在明显的冗余成分,应检查二者的一致性致性n如果输入数据中不存在冗余,可以对输入数据求和,如果输入数据中不存在冗余,可以对输入数据求和,比较输入数据与内部数据的一致性比较输入数据与内部数据的

35、一致性上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w发生错误后发生错误后n立即停止程序运行,检错立即停止程序运行,检错n不停止程序,记录错误不停止程序,记录错误上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w赋予程序特殊功能,主动搜索错误,并进行指示赋予程序特殊功能,主动搜索错误,并进行指示w由检测监视器承担,对系统的有关的数据主动进由检测监视器承担,对系统的有关的数据主动进行扫描,例如:行扫描,例如:n合理运行时间的异常过程合理运行时间的异常过程n系统中丢失的文件系统中丢失的文件n长时间内未完成的输入,输出操作长时间内未完成的输入,输出操作n主动系统诊断

36、主动系统诊断w可以作为周期性的任务来安排可以作为周期性的任务来安排上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w如操作系统中的存储管理模块如操作系统中的存储管理模块,具有向用户程序具有向用户程序和操作系统的其它模块出借存储区域的功能和操作系统的其它模块出借存储区域的功能,然然而用户程序或其他模块的错误有时会造成借出去而用户程序或其他模块的错误有时会造成借出去的存储区域不能返回给存储管理模块的存储区域不能返回给存储管理模块.主动式检主动式检测能及时发现这类问题测能及时发现这类问题上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w希望软件具有自动改正错误的功能希

37、望软件具有自动改正错误的功能w需要需要“智能智能”,困难很大,所以目前采用的方法多半是,困难很大,所以目前采用的方法多半是隔离错误隔离错误.实现用户隔离就是防止一个用户程序的失效实现用户隔离就是防止一个用户程序的失效,影响其它用户程序及整个系统正常运行的关键措施影响其它用户程序及整个系统正常运行的关键措施w例如贝尔实验室例如贝尔实验室TSPS系统,电话换接系统,可靠性要求系统,电话换接系统,可靠性要求为为40年内停止工作时间不超过两小时,整机停机是极为年内停止工作时间不超过两小时,整机停机是极为严重的任务,而常见的故障,例如某个电话线连接中断,严重的任务,而常见的故障,例如某个电话线连接中断,

38、则是可以允许的失误。则是可以允许的失误。TSPS系统使用被动和主动查错及系统使用被动和主动查错及改错技术来减少系统失效,策略是尽快检测出某些特殊改错技术来减少系统失效,策略是尽快检测出某些特殊类型的错误,并控制其扩散类型的错误,并控制其扩散.即使损失某些数据也在所不即使损失某些数据也在所不惜惜上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w容错计算系统能够在出现一定限度的失效的情况下,依容错计算系统能够在出现一定限度的失效的情况下,依旧能够提供所需要的服务旧能够提供所需要的服务. . w这些失效的发生是由于系统的组件或者系统设计中存在这些失效的发生是由于系统的组件或者系统设计

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

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

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

42、行P0,如果满足接受性测试,正常返回,如果不符合如果满足接受性测试,正常返回,如果不符合测试条件,或者超过了规定时间,发出调用替补过程测试条件,或者超过了规定时间,发出调用替补过程P1的指令,如果再次失败或再次超时,则出错的指令,如果再次失败或再次超时,则出错w只要一台计算机只要一台计算机上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w1996年年6月月,欧洲航天局研制的欧洲航天局研制的”阿丽亚娜阿丽亚娜5型火型火箭箭”在法国圭亚那库鲁航天中心首次发射在法国圭亚那库鲁航天中心首次发射,这次发这次发射因空中云层过厚而被推迟了射因空中云层过厚而被推迟了1小时小时.随后高随后高51.4米米,通体银白的火箭离开发射台升空约通体银白的火箭离开发射台升空约30秒秒,距地面约距

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论