第八讲-软件可靠性设计ppt课件.ppt
《第八讲-软件可靠性设计ppt课件.ppt》由会员分享,可在线阅读,更多相关《第八讲-软件可靠性设计ppt课件.ppt(70页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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-7-315上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-316过程、函数VB上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-317过程、
5、函数C+类型标识符类型标识符 函数名(形式参数表)函数名(形式参数表) 语句序列语句序列对于过程:类型标识符为对于过程:类型标识符为void上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-318子过程、子函数、子程序主程序输入子程序计算子程序输出子程序上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w面向对象中的对象以及对象内的方法也是模块面向对象中的对象以及对象内的方法也是模块2022-7-319订单DateRecieveisPrepaidPriceDispatch()Close()上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院
6、2022-7-3110经验经验1:工作量:工作量E(P1+P2)E(P1)+E(P2)经验经验2:成本成本成本成本 / / 模块模块最小成本区最小成本区接口成本接口成本软件总成本软件总成本模块数目模块数目上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w人类在认识复杂现象的过程中使用的最强有力的思维工人类在认识复杂现象的过程中使用的最强有力的思维工具是抽象。人们在实践中认识到,在现实世界中一定事具是抽象。人们在实践中认识到,在现实世界中一定事物、状态或过程之间总存在着某些相似的方面物、状态或过程之间总存在着某些相似的方面(共性共性)。把这些相似的方面集中和概括起来,暂时忽略它们
7、之间把这些相似的方面集中和概括起来,暂时忽略它们之间的差异,这就是抽象。的差异,这就是抽象。或者说抽象就是抽出事物的本质或者说抽象就是抽出事物的本质特性而暂时不考虑它们的细节。特性而暂时不考虑它们的细节。2022-7-31112、抽象、抽象/逐步求精逐步求精 上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3112例:例:开发一个开发一个CAD软件,实现一个二维绘图系统的全部功软件,实现一个二维绘图系统的全部功能,供低级计算机辅助设计使用。能,供低级计算机辅助设计使用。w在我们考虑对任何问题的模块化解法时,可以在我们考虑对任何问题的模块化解法时,可以抽象出很多层次
8、。抽象出很多层次。n在抽象的最高层次使用问题环境的语言,以概括方在抽象的最高层次使用问题环境的语言,以概括方式叙述问题的解法式叙述问题的解法n在较低的层次采用更过程化的方法,把面向问题的在较低的层次采用更过程化的方法,把面向问题的术语和面向实现的术语结合起来叙述问题的解法术语和面向实现的术语结合起来叙述问题的解法n最后,在最低的抽象层次可以直接实现的方法来叙最后,在最低的抽象层次可以直接实现的方法来叙述问题的解法述问题的解法上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3113 抽象层次抽象层次I I:用问题所处环境的术语来描述这个:用问题所处环境的术语来描述这
9、个软件。软件。n该软件包括一个计算机绘图界面,向绘图员显示图该软件包括一个计算机绘图界面,向绘图员显示图形,以及一个数字化仪界面,用以代替绘图板和丁形,以及一个数字化仪界面,用以代替绘图板和丁字尺。所有直线、折线、矩形、圆及曲线的描画、字尺。所有直线、折线、矩形、圆及曲线的描画、所有的几何计算、所有的剖面图和辅助视图都可以所有的几何计算、所有的剖面图和辅助视图都可以用这个用这个CADCAD软件实现软件实现。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3114 抽象层次II:任务需求的描述。列出“What”而不是“How”。 CAD SOFTWARE TASKS
10、: user interaction task; 2-D drawing creation task; graphics display task; drawing file management task; END上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3115 抽象层次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-7-31163、信息隐蔽信息隐蔽(Information hiding)信息隐蔽使得一个模块内包含的信息(过程和数据)对于不需要这些信息的模块来说,是不能访问的。 在这个抽象层次上,给出了初步的过程表示,所用的在这个抽象层次上,给出了初步的过程表示,所用的术语都已面向软件,而且模块化的工作已经开始显露。术语都已面向软件,而且模块化的工作已经开始显露。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3
13、117f1 f2f3fifnSgi(X,S)S输输出出输输出出上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院4、模块独立性模块独立性(Module independence)w每个模块完成一个相对独立的特定子功能,并且和其他每个模块完成一个相对独立的特定子功能,并且和其他模块之间的接口很简单。模块之间的接口很简单。w模块的独立程度可以由两个定性标准来衡量,这两个标模块的独立程度可以由两个定性标准来衡量,这两个标准分别称为耦合性和内聚性。准分别称为耦合性和内聚性。藕合衡量不同模块彼此间藕合衡量不同模块彼此间互相依赖(连接)的紧密程度;内聚衡量一个模块内部互相依赖(连接)的紧密程
14、度;内聚衡量一个模块内部各个元素彼此间结合的紧密程度。各个元素彼此间结合的紧密程度。w一般较较优秀的软件设计应尽量做到高内聚、低耦合,一般较较优秀的软件设计应尽量做到高内聚、低耦合,即减弱模块间的耦合性和提高模块内的内聚性,有利于即减弱模块间的耦合性和提高模块内的内聚性,有利于提高模块的独立性提高模块的独立性。2022-7-3118上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3119Great 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-7-3120上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w完全独立完全独立n两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用两个模块之间没有直接关系,它们之间的联系完全是通过主模块的控制和调用来实现的来实现的2022-7-3121上海理工大学计算机与
16、电气工程学院上海理工大学计算机与电气工程学院w数据耦合数据耦合n一个模块访问另一个模块时,彼此之间是通过简单数据参数一个模块访问另一个模块时,彼此之间是通过简单数据参数 (不是控制参数、公不是控制参数、公共数据结构或外部变量共数据结构或外部变量) 来交换输入、输出信息的。来交换输入、输出信息的。2022-7-3122上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w特征耦合特征耦合n一组模块通过参数表传递记录信息,就是特征记耦合一组模块通过参数表传递记录信息,就是特征记耦合。这个记录是某一数据结构的子结构,而不是简单变。这个记录是某一数据结构的子结构,而不是简单变量。量。202
17、2-7-3123上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w控制耦合控制耦合n如果一个模块通过传送开关、标志、名字等控制信息,明显地如果一个模块通过传送开关、标志、名字等控制信息,明显地控制选择另一模块的功能,就是控制耦合。控制选择另一模块的功能,就是控制耦合。2022-7-3124ABFlagF2F1FnFlag上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3125上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w公共环境耦合公共环境耦合n若一组模块都访问同一个公共数据环境,则它们之间若一组模块都访问同一个公共数据环境,则
18、它们之间的耦合就称为公共耦合。公共的数据环境可以是全局的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。数据结构、共享的通信区、内存的公共覆盖区等。2022-7-3126上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3127 公共耦合 Global : V1 V2A:A1=V1+V2B:V1=B1Global : V1 V2A:V1+B:V2=B1+V1问题:问题: 公共部分的改动将影响所有调用它的模块;公共部分的改动将影响所有调用它的模块; 公共部分的数据存取无法控制;公共部分的数据存取无法控制; 复杂程度随耦合模块的个
19、数增加而增加。复杂程度随耦合模块的个数增加而增加。上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3128 公共耦合 上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w内容耦合内容耦合,如果发生下列情形,两个模块之间就如果发生下列情形,两个模块之间就发生了内容耦合发生了内容耦合n一个模块直接访问另一个模块的内部数据一个模块直接访问另一个模块的内部数据;n一个模块不通过正常入口转到另一模块内部一个模块不通过正常入口转到另一模块内部;n两个模块有一部分程序代码重迭两个模块有一部分程序代码重迭(只可能出现在汇编只可能出现在汇编语言中语言中);n一个模块有
20、多个入口。一个模块有多个入口。2022-7-3129上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3130A访问C的内部数据 内容耦合内容耦合上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3131A不通过正常入口而转入C的内部。ABCDA:goto C1C:C1: 内容耦合内容耦合上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w应遵循以下原则:尽量使用数据耦合,少用控制应遵循以下原则:尽量使用数据耦合,少用控制耦合和特征耦合,限制公共环境耦合的范围,完耦合和特征耦合,限制公共环境耦合的范围,完全不用内容耦合全不用
21、内容耦合2022-7-3132上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院2022-7-3133w内聚标志一个内聚标志一个模块内模块内各个元素彼此紧密结合的紧密程度。各个元素彼此紧密结合的紧密程度。w七种内聚:七种内聚:n1.偶然内聚偶然内聚n2.逻辑内聚逻辑内聚n3.时间内聚时间内聚n4.过程内聚过程内聚n5.通信内聚通信内聚n6.顺序内聚顺序内聚n7.功能内聚功能内聚上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w功能内聚功能内聚n一个模块中各个部分都是一个模块中各个部分都是完成某一具体功能完成某一具体功能必不可少必不可少的组成部分,或者说该模块中所有
22、部分都是为了完成的组成部分,或者说该模块中所有部分都是为了完成一项具体功能而协同工作,紧密联系,不可分割的。一项具体功能而协同工作,紧密联系,不可分割的。则称该模块为功能内聚模块。则称该模块为功能内聚模块。n功能内聚是最强也是最好的一种内聚。功能内聚是最强也是最好的一种内聚。n例子例子:Sin(),GetCustomerName()2022-7-3134上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w顺序内聚顺序内聚n顺序内聚是指模块中各成分有顺序关系,某一成分的顺序内聚是指模块中各成分有顺序关系,某一成分的输出数据是另一成分的输入数据。输出数据是另一成分的输入数据。2022
23、-7-3135上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w通信内聚通信内聚n如果模块中所有元素都使用同一个输入数据和(或)产生同一如果模块中所有元素都使用同一个输入数据和(或)产生同一个输出数据,则称为通信内聚个输出数据,则称为通信内聚n或者说:如果一个模块的所有成分都操作同一个数据集或者生或者说:如果一个模块的所有成分都操作同一个数据集或者生成同一数据集成同一数据集n通常,通信内聚模块是通过数据流图来定义的。通常,通信内聚模块是通过数据流图来定义的。2022-7-3136上海理工大学计算机与电气工程学院上海理工大学计算机与电气工程学院w过程内聚过程内聚n如果一个模块内部
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 第八 软件 可靠性 设计 ppt 课件
限制150内