第3章系统健壮性分析_第1页
第3章系统健壮性分析_第2页
第3章系统健壮性分析_第3页
第3章系统健壮性分析_第4页
第3章系统健壮性分析_第5页
已阅读5页,还剩29页未读 继续免费阅读

下载本文档

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

文档简介

1、第第3 3章章 系统健壮性分析系统健壮性分析3.1 3.1 什么是健壮性分析什么是健壮性分析 3.1.1 3.1.1 健壮性分析的作用健壮性分析的作用 3.1.2 3.1.2 健壮性分析的对象健壮性分析的对象3.2 3.2 开始健壮性分析开始健壮性分析 3.2.1 3.2.1 通过事件流寻找边界对象通过事件流寻找边界对象 3.2.2 3.2.2 从概念模型及用例描述中寻找实体对象从概念模型及用例描述中寻找实体对象3.3 3.3 完善概念模型完善概念模型1第第3 3章章 系统健壮性分析系统健壮性分析通过前面两章的工作,我们已经建立起一静(概念模型)通过前面两章的工作,我们已经建立起一静(概念模型

2、)一动(用例模型)两个模型,从静态和动态两个方面描一动(用例模型)两个模型,从静态和动态两个方面描述了系统的概貌。接下来,我们该做哪些事情呢?述了系统的概貌。接下来,我们该做哪些事情呢?绝大多数软件工程教科书都告诉我们,面向对象方法比绝大多数软件工程教科书都告诉我们,面向对象方法比结构化方法先进,前者用直接的手段反映现实世界,而结构化方法先进,前者用直接的手段反映现实世界,而后者是用间接的手段来反映现实世界。后者的致命弱点后者是用间接的手段来反映现实世界。后者的致命弱点就是在分析阶段以数据流图作为表达工具,而在设计阶就是在分析阶段以数据流图作为表达工具,而在设计阶段用系统结构图等作为表达手段,

3、从而使得分析和设计段用系统结构图等作为表达手段,从而使得分析和设计两个阶段存在着难以跨越的鸿沟,导致了设计和分析的两个阶段存在着难以跨越的鸿沟,导致了设计和分析的脱节。而在面向对象方法中,由于表达工具的一致性,脱节。而在面向对象方法中,由于表达工具的一致性,加上通常采用的是迭代的软件过程,使分析和设计没有加上通常采用的是迭代的软件过程,使分析和设计没有明显的界限,从而不会导致分析结果在设计中的变形。明显的界限,从而不会导致分析结果在设计中的变形。2那么,面向对象方法分析和设计中的各步骤工作是否就那么,面向对象方法分析和设计中的各步骤工作是否就真的能无缝的集成在一起,是否不存在任何障碍和鸿沟。真

4、的能无缝的集成在一起,是否不存在任何障碍和鸿沟。实际上,当我们对问题域完成了用例建模之后,接下来实际上,当我们对问题域完成了用例建模之后,接下来的工作就是绘制系统顺序图或时序图,并进而把它们演的工作就是绘制系统顺序图或时序图,并进而把它们演化成设计类图,在这个过程中,我们依然会感到无从下化成设计类图,在这个过程中,我们依然会感到无从下手。也就是说,当我们完成了传统意义上的分析工作手。也就是说,当我们完成了传统意义上的分析工作建立概念模型和用例模型建立概念模型和用例模型之后,从分析阶段向设之后,从分析阶段向设计阶段转换中,依然存在着一定程度的鸿沟,只不过没计阶段转换中,依然存在着一定程度的鸿沟,

5、只不过没有结构化方法那么明显而已。有结构化方法那么明显而已。第第3 3章章 系统健壮性分析系统健壮性分析3第第3 3章章 系统健壮性分析系统健壮性分析3.1 什么是健壮性分析什么是健壮性分析健壮性分析通常也叫鲁棒分析。鲁棒是健壮性分析通常也叫鲁棒分析。鲁棒是RobustRobust的音译,也的音译,也就是健壮和强壮的意思。就是健壮和强壮的意思。鲁棒性(鲁棒性(robustnessrobustness)就是系统的健壮性。它是在异常和)就是系统的健壮性。它是在异常和危险情况下系统生存的关键。比如说,计算机软件在输入危险情况下系统生存的关键。比如说,计算机软件在输入错误、磁盘故障、网络过载或恶意攻击

6、情况下,能否不死错误、磁盘故障、网络过载或恶意攻击情况下,能否不死机、不崩溃,就是该软件的鲁棒性。所谓机、不崩溃,就是该软件的鲁棒性。所谓“鲁棒性鲁棒性”,是,是指控制系统在一定(结构,大小)的参数摄动下,维持某指控制系统在一定(结构,大小)的参数摄动下,维持某些性能的特性。根据对性能的不同定义,可分为稳定鲁棒些性能的特性。根据对性能的不同定义,可分为稳定鲁棒性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到性和性能鲁棒性。以闭环系统的鲁棒性作为目标设计得到的固定控制器称为鲁棒控制器。的固定控制器称为鲁棒控制器。19911991年,年,Ivar Jacobson Ivar Jacobson 把

7、鲁棒分析引进了面向对象领域。为了适合我们的理解习把鲁棒分析引进了面向对象领域。为了适合我们的理解习惯,以下一律叫健壮性分析。惯,以下一律叫健壮性分析。 4健壮性分析尽管也有分析两字,但它的工作有很健壮性分析尽管也有分析两字,但它的工作有很多与设计类似,而从严格的意义上来说,它又不多与设计类似,而从严格的意义上来说,它又不是真正的设计,即是一种介乎于分析与设计中间是真正的设计,即是一种介乎于分析与设计中间地带的东西。因此,用它来填补上面所提到的鸿地带的东西。因此,用它来填补上面所提到的鸿沟,却是非常合适的。现在大多数面向对象的书沟,却是非常合适的。现在大多数面向对象的书籍中,都没有提到健壮性分析

8、,我们在这里对它籍中,都没有提到健壮性分析,我们在这里对它进行介绍,也算是一家之言吧。进行介绍,也算是一家之言吧。第第3 3章章 系统健壮性分析系统健壮性分析5第第3 3章章 系统健壮性分析系统健壮性分析在面向对象的分析与设计中,健壮性分析可以完成以下的在面向对象的分析与设计中,健壮性分析可以完成以下的任务:任务:1) 正确性检查:健壮性分析将通过比顺序图更简单、更有正确性检查:健壮性分析将通过比顺序图更简单、更有效的图形来描述用例中的传递过程,从而确保用例是正确效的图形来描述用例中的传递过程,从而确保用例是正确的,同时没有指定对于特定对象来说不合理、不可能的系的,同时没有指定对于特定对象来说

9、不合理、不可能的系统行为。如果熟练掌握了健壮性分析,还可以在编写用例统行为。如果熟练掌握了健壮性分析,还可以在编写用例描述时,多了一种有效的对比和检验方法。描述时,多了一种有效的对比和检验方法。2) 完整性检查:通过健壮性分析,你可以很容易的找到用完整性检查:通过健壮性分析,你可以很容易的找到用例描述中所有必须的扩展路径。例描述中所有必须的扩展路径。3.1.1 健壮性分析的作用健壮性分析的作用64) 初步设计:健壮性分析将类分成了实体类、控制类、边初步设计:健壮性分析将类分成了实体类、控制类、边界类三种,组装观点正好与界类三种,组装观点正好与MVC体系结构不谋而合,这可体系结构不谋而合,这可以

10、保证设计出更加稳健的应用系统。以保证设计出更加稳健的应用系统。3) 持续发现及确认类:在做健壮性分析时,你将会关注持续发现及确认类:在做健壮性分析时,你将会关注具体的细节问题,从而很容易发现在问题域建模时漏掉的具体的细节问题,从而很容易发现在问题域建模时漏掉的类。这些漏掉的类让你在绘制顺序图时感觉到好像缺少了类。这些漏掉的类让你在绘制顺序图时感觉到好像缺少了一些什么,但又不容易被重新找到。同时,你也可以通过一些什么,但又不容易被重新找到。同时,你也可以通过健壮性分析来确认先前所确定的类中哪些是不正确的,从健壮性分析来确认先前所确定的类中哪些是不正确的,从而修改或删除不正确的类。而修改或删除不正

11、确的类。第第3 3章章 系统健壮性分析系统健壮性分析7第第3 3章章 系统健壮性分析系统健壮性分析附:附:MVC简介简介MVCMVC是是Model-View-ControllerModel-View-Controller的缩写,的缩写,是一种常用的设是一种常用的设计模式。计模式。模型模型- -视图视图- -控制结构是交互式应用程序广泛使控制结构是交互式应用程序广泛使用的一种体系结构。它有效地在存储和展示数据的对象用的一种体系结构。它有效地在存储和展示数据的对象中区分功能模块以降低它们之间的连接度,这种体系结中区分功能模块以降低它们之间的连接度,这种体系结构将传统的输入、处理和输出模型转化为图形

12、显示的用构将传统的输入、处理和输出模型转化为图形显示的用户交互模型,或者换一种说法,是多层次的户交互模型,或者换一种说法,是多层次的WebWeb商业应商业应用;用;MVCMVC体系结构具有三个层面:模型体系结构具有三个层面:模型 (ModelModel)、视)、视图图(View)(View)和控制和控制(Controller)(Controller),每个层面有其各自的功,每个层面有其各自的功能作用,能作用,MVCMVC体系结构如下:体系结构如下:8图图3.1 MVC模型结构模型结构模型层负责表达和访问商业数据,执行商业逻辑和操作。模型层负责表达和访问商业数据,执行商业逻辑和操作。也就是说,这

13、一层就是现实生活中功能的软件模拟;在模也就是说,这一层就是现实生活中功能的软件模拟;在模型层变化的时候,它将通知视图层并提供后者访问自身状型层变化的时候,它将通知视图层并提供后者访问自身状态的能力,同时控制层也可以访问其功能函数以完成相关态的能力,同时控制层也可以访问其功能函数以完成相关的任务。的任务。 第第3 3章章 系统健壮性分析系统健壮性分析9第第3 3章章 系统健壮性分析系统健壮性分析视图层负责显示模型层的内容。它从模型层取得数据并指视图层负责显示模型层的内容。它从模型层取得数据并指定这些数据如何被显示出来。在模型层变化的时候,它将定这些数据如何被显示出来。在模型层变化的时候,它将自动

14、更新。另外视图层也会将用户的输入传送给控制层。自动更新。另外视图层也会将用户的输入传送给控制层。控制层负责定义应用程序的行为。它可以分派用户的请求控制层负责定义应用程序的行为。它可以分派用户的请求并选择恰当的视图以用于显示,同时它也可以解释用户的并选择恰当的视图以用于显示,同时它也可以解释用户的输入并将它们映射为模型层可执行的操作;在一个图形界输入并将它们映射为模型层可执行的操作;在一个图形界面中,常见的用户输入包括点击按钮和菜单选择。控制层面中,常见的用户输入包括点击按钮和菜单选择。控制层可以基于用户的交互和模型层的操作结果来选择下一个可可以基于用户的交互和模型层的操作结果来选择下一个可以显

15、示的视图,一个应用程序通常会基于一组相关功能设以显示的视图,一个应用程序通常会基于一组相关功能设定一个控制层的模块,甚至一些应用程序会根据不同的用定一个控制层的模块,甚至一些应用程序会根据不同的用户类型具有不同的控制层设定,这主要是由于不同用户的户类型具有不同的控制层设定,这主要是由于不同用户的视图交互和选择也是不同的。视图交互和选择也是不同的。 10第第3 3章章 系统健壮性分析系统健壮性分析在模型层、视图层和控制层之间划分责任可以减少代码的在模型层、视图层和控制层之间划分责任可以减少代码的重复度,并使应用程序维护起来更简单。同时由于数据和重复度,并使应用程序维护起来更简单。同时由于数据和商

16、务逻辑的分开,在新的数据源加入和数据显示变化的时商务逻辑的分开,在新的数据源加入和数据显示变化的时候,数据处理也会变得更简单。候,数据处理也会变得更简单。 MVC是现有的编程语言中制作图形用户界面的一种通用的思是现有的编程语言中制作图形用户界面的一种通用的思想,它把数据的内容本身和显示方式分离开,这样就使得数想,它把数据的内容本身和显示方式分离开,这样就使得数据的显示更加灵活。比如,某年级各个班级的学生人数是数据的显示更加灵活。比如,某年级各个班级的学生人数是数据,则显示方式是多种多样的,可以采用柱状图显示,也可据,则显示方式是多种多样的,可以采用柱状图显示,也可以采用饼图显示,也可以采用直接

17、的数据输出。因此在设计以采用饼图显示,也可以采用直接的数据输出。因此在设计的时候,就考虑把数据和显示方式分开,对于实现多种多样的时候,就考虑把数据和显示方式分开,对于实现多种多样的显示是非常有帮助的。的显示是非常有帮助的。11第第3 3章章 系统健壮性分析系统健壮性分析3.1.2 健壮性分析的对象健壮性分析的对象健壮性分析的健壮性分析的图形表示法如图图形表示法如图3.23.2所示:所示:实体类实体类控制类控制类边界类边界类图图3.2 3.2 健壮性分析图形表示法健壮性分析图形表示法1) 边界类边界类:用于建立系统与其参与者(即用户和外部系:用于建立系统与其参与者(即用户和外部系统)之间交互的模

18、型。这种交互通常包括接收来自用户统)之间交互的模型。这种交互通常包括接收来自用户和外部系统的信息与请求以及将信息与请求提交到用户和外部系统的信息与请求以及将信息与请求提交到用户和外部系统。和外部系统。边界类对系统中依赖于参与者的部分建模,也就是说,边界类对系统中依赖于参与者的部分建模,也就是说,边界类用于阐明和收集系统的边界需求。这样,通常就边界类用于阐明和收集系统的边界需求。这样,通常就把用户界面或通信接口的变化隔离在一个或多个边界类把用户界面或通信接口的变化隔离在一个或多个边界类中,从而不会影响系统的数据和系统的控制逻辑。中,从而不会影响系统的数据和系统的控制逻辑。12边界类通常代表对对话

19、框、菜单、接口等的抽象。在我边界类通常代表对对话框、菜单、接口等的抽象。在我们工作的这个阶段,只要边界类能够说明通过交互(即们工作的这个阶段,只要边界类能够说明通过交互(即在系统与参与者之间来回传递的信息与请求)所实现的在系统与参与者之间来回传递的信息与请求)所实现的目标就足够了,而不必描述如何具体实现这种交互,因目标就足够了,而不必描述如何具体实现这种交互,因为这是在后续的设计与实现活动中所要考虑的问题。为这是在后续的设计与实现活动中所要考虑的问题。每个边界类至少应该与一个参与者有关,反之亦然。每个边界类至少应该与一个参与者有关,反之亦然。2)2)实体类实体类:实体类通常用于对持久的信息建模

20、,即主要:实体类通常用于对持久的信息建模,即主要对诸如个体、实际对象或实际事件的某些现象或概念的对诸如个体、实际对象或实际事件的某些现象或概念的信息及相关行为建模。大多数情况下,实体类来自现实信息及相关行为建模。大多数情况下,实体类来自现实世界,也就是来自先前所建立的问题域模型,用来描述世界,也就是来自先前所建立的问题域模型,用来描述具体的实体,并经常表示为一种逻辑数据结构,一般映具体的实体,并经常表示为一种逻辑数据结构,一般映射到数据库表格与文件中。射到数据库表格与文件中。第第3 3章章 系统健壮性分析系统健壮性分析13第第3 3章章 系统健壮性分析系统健壮性分析3)3) 控制类控制类:代表

21、协调、排序、事务处理以及对其他对象的:代表协调、排序、事务处理以及对其他对象的控制,经常用于封装与某个具体用例有关的控制。控制类控制,经常用于封装与某个具体用例有关的控制。控制类还可用来表示复杂的派生与演算,如业务逻辑,它们与系还可用来表示复杂的派生与演算,如业务逻辑,它们与系统存储的任何具体的持久信息(即某个具体的实体类)都统存储的任何具体的持久信息(即某个具体的实体类)都没有关系。没有关系。系统的动态特征通过控制类来建模,因为控制类处理和协系统的动态特征通过控制类来建模,因为控制类处理和协调主要的动作和控制流,并将任务委派给其他对象(即边调主要的动作和控制流,并将任务委派给其他对象(即边界

22、对象和实体对象)。界对象和实体对象)。控制类并不封装与参与者交互有关的问题,也不封装与系控制类并不封装与参与者交互有关的问题,也不封装与系统处理的持久信息有关的问题,这些问题分别是由边界类统处理的持久信息有关的问题,这些问题分别是由边界类和实体类封装的。而控制类对控制、协调、排序、事务处和实体类封装的。而控制类对控制、协调、排序、事务处理、复杂业务逻辑(涉及其他多个对象)进行封装,因而理、复杂业务逻辑(涉及其他多个对象)进行封装,因而能将它们与变化隔离开来,即可以使得应用系统的变化不能将它们与变化隔离开来,即可以使得应用系统的变化不影响用户界面和数据库中的表。影响用户界面和数据库中的表。14第

23、第3 3章章 系统健壮性分析系统健壮性分析除了以上的图形表示之外,健壮性分析也制定了一些绘制分除了以上的图形表示之外,健壮性分析也制定了一些绘制分析图的规则。通过这些规则,使我们能够更好地理解健壮性析图的规则。通过这些规则,使我们能够更好地理解健壮性分析的本质特征。这些规则为:分析的本质特征。这些规则为: 参与者只能通过边界类与系统交互;参与者只能通过边界类与系统交互; 边界类只能与控制类或参与者交互;边界类只能与控制类或参与者交互; 实体类也只能与控制类交互;实体类也只能与控制类交互; 控制类可以与边界类、控制类、实体类交互,但不能与参控制类可以与边界类、控制类、实体类交互,但不能与参与者交

24、互。与者交互。这些规则如图这些规则如图3.3所示。所示。15第第3 3章章 系统健壮性分析系统健壮性分析允许允许不允许不允许图图3.3 健壮性分析图规则健壮性分析图规则16第第3 3章章 系统健壮性分析系统健壮性分析3.2 开始健壮性分析开始健壮性分析通过上面的介绍,我们已经了解了什么是健壮性分析,也通过上面的介绍,我们已经了解了什么是健壮性分析,也了解了健壮性分析在面向对象分析和设计中所起的桥梁作了解了健壮性分析在面向对象分析和设计中所起的桥梁作用,以及绘制健壮性分析图所应遵循的一些简单规则。用,以及绘制健壮性分析图所应遵循的一些简单规则。3.2.1 通过事件流寻找边界类通过事件流寻找边界类

25、健壮性分析是针对某个具体用例的,其分析的基础是具体健壮性分析是针对某个具体用例的,其分析的基础是具体用例描述中关于事件流的部分,同时综合考虑基本路径和用例描述中关于事件流的部分,同时综合考虑基本路径和扩展路径两方面。在第扩展路径两方面。在第2章中,我们曾以章中,我们曾以“新增书籍信息新增书籍信息”(用例(用例UC01)为例说明了如何编写用例描述,并得到了如)为例说明了如何编写用例描述,并得到了如表表3.1的事件流描述。的事件流描述。17第第3 3章章 系统健壮性分析系统健壮性分析3.3.事件流事件流 3.1 3.1 基本事件流基本事件流 1)1)图书管理员向系统发出图书管理员向系统发出”新增书

26、籍信息新增书籍信息“请求;请求; 2)2)系统要求图书管理员选择要新增的书籍是计算机类还系统要求图书管理员选择要新增的书籍是计算机类还是非计算机类;是非计算机类; 3)3)图书管理员做出选择后,显示相应界面,让图书管理图书管理员做出选择后,显示相应界面,让图书管理员输入信息,并自动根据书号规则生成书号;员输入信息,并自动根据书号规则生成书号; 4)4)图书管理员输入书籍的相关信息,包括:书名、作者、图书管理员输入书籍的相关信息,包括:书名、作者、出版社、出版社、ISBNISBN号、开本、页数、定价、是否有光盘等;号、开本、页数、定价、是否有光盘等; 5)5)系统确认输入的信息中书名没有重名;系

27、统确认输入的信息中书名没有重名; 6)6)系统将所输入的信息存储建档;系统将所输入的信息存储建档; 表表3.1 ”新增书籍信息新增书籍信息“用例事件流用例事件流183.2 3.2 扩展事件流扩展事件流 5a)5a)如果输入的书名有重名现象,则显示出重名的书如果输入的书名有重名现象,则显示出重名的书籍,并要求图书管理员选择修改书名或取消输入;籍,并要求图书管理员选择修改书名或取消输入; 5a1)5a1)图书管理员选择取消输入,则结束用例,不做存图书管理员选择取消输入,则结束用例,不做存储建档工作;储建档工作; 5a2)5a2)图书管理员选择修改书名后,转到图书管理员选择修改书名后,转到5)5);

28、在我们讨论的这个用例中,不存在外部系统,而且参与者在我们讨论的这个用例中,不存在外部系统,而且参与者也只有一个也只有一个“图书管理员图书管理员”,因此寻找边界类比较简单,因此寻找边界类比较简单,即从即从“图书管理员图书管理员”这个参与者出发,认真分析用例描述这个参与者出发,认真分析用例描述的每一句话,从中进行选择:的每一句话,从中进行选择:第第3 3章章 系统健壮性分析系统健壮性分析19第第3 3章章 系统健壮性分析系统健壮性分析1) 图书管理员向系统发出图书管理员向系统发出“新增书籍信息新增书籍信息”请求请求图书图书管理员在什么地方向系统发出管理员在什么地方向系统发出“新增书籍信息新增书籍信

29、息”的请求呢?的请求呢?一般情况下我们会设计一个主窗口,并在上面摆放一些按一般情况下我们会设计一个主窗口,并在上面摆放一些按钮来实现,所以我们通过该描述可以发现两个边界类:主钮来实现,所以我们通过该描述可以发现两个边界类:主窗口、窗口、“新增书籍信息新增书籍信息”按钮。按钮。2) 系统要求图书管理员选择要新增的书籍是计算机类还系统要求图书管理员选择要新增的书籍是计算机类还是非计算机类,从该描述中我们可以发现一个新的边界类:是非计算机类,从该描述中我们可以发现一个新的边界类:书籍类别列表框。书籍类别列表框。3) 图书管理员做出选择后,显示相应界面,让图书管理图书管理员做出选择后,显示相应界面,让

30、图书管理员输入信息,并根据书号生成规则自动生成书号,从该描员输入信息,并根据书号生成规则自动生成书号,从该描述中,我们可以发现很关键的一个边界类:述中,我们可以发现很关键的一个边界类:“新书录入信新书录入信息息”窗口以及辅助的窗口以及辅助的“提交提交”按钮。按钮。除此之外,我们还应该发现新增书籍信息按钮是主窗口的除此之外,我们还应该发现新增书籍信息按钮是主窗口的一个组成部分,而书籍类别列表框、提交按钮则是新书信一个组成部分,而书籍类别列表框、提交按钮则是新书信息录入窗口的必要组成部分。息录入窗口的必要组成部分。20第第3 3章章 系统健壮性分析系统健壮性分析3.2.2 从概念模型及用例描述中寻

31、找实体类从概念模型及用例描述中寻找实体类在第在第1章中,我们已经找到了与问题域相关的各个类,并建章中,我们已经找到了与问题域相关的各个类,并建立了问题域概念模型如图立了问题域概念模型如图3.4所示。所示。书籍列表书籍列表借阅记录列表借阅记录列表书籍书籍借阅记录借阅记录非计算机类书籍非计算机类书籍计算机类书籍计算机类书籍图图3.4 最初的概念模型最初的概念模型21图图3.4中的类,就是系统中的实体类。当然,并中的类,就是系统中的实体类。当然,并不是概念模型中所有的类都是我们要找的实体类,不是概念模型中所有的类都是我们要找的实体类,而是在用例描述中涉及到概念模型中的类才是我而是在用例描述中涉及到概

32、念模型中的类才是我们要找的实体类。因此,结合概念模型和用例描们要找的实体类。因此,结合概念模型和用例描述,我们就能够很容易地找到四个实体类:书籍、述,我们就能够很容易地找到四个实体类:书籍、计算机书籍、非计算机书籍以及书籍列表。计算机书籍、非计算机书籍以及书籍列表。第第3 3章章 系统健壮性分析系统健壮性分析22第第3 3章章 系统健壮性分析系统健壮性分析3.2.3 绘制健壮性分析图绘制健壮性分析图当我们找出了边界类和实体类之后,就可以从边界类出当我们找出了边界类和实体类之后,就可以从边界类出发,根据用例描述逐步找到控制类。一般对于每个用例发,根据用例描述逐步找到控制类。一般对于每个用例而言,

33、合适的控制类的数量大约是而言,合适的控制类的数量大约是25个之间。同时,个之间。同时,在绘制健壮性分析图时要注意:在绘制健壮性分析图时要注意:1) 图中的箭头与顺序图不一样,并不代表信息传递,而图中的箭头与顺序图不一样,并不代表信息传递,而是代表逻辑流。因此,你所要做的事情是理清楚对象之是代表逻辑流。因此,你所要做的事情是理清楚对象之间的逻辑关系,而不是产生一个定义严密的设计方案。间的逻辑关系,而不是产生一个定义严密的设计方案。2) 图中出现的控制类并不一定就是一个未来的设计类,图中出现的控制类并不一定就是一个未来的设计类,也许仅仅是类中的一个方法。因此没有必要花太多时间也许仅仅是类中的一个方

34、法。因此没有必要花太多时间去考虑它是否是一个类。去考虑它是否是一个类。23第第3 3章章 系统健壮性分析系统健壮性分析1 绘制边界类绘制边界类我们可以先绘制参与者与边界类,如图我们可以先绘制参与者与边界类,如图3.5所示。所示。图书管理员图书管理员主窗口主窗口“新增图书信息新增图书信息”按钮按钮“新书录入新书录入”窗窗口口“书籍类别书籍类别”列表框列表框“提交提交”按钮按钮图图3.5 健壮性分析图之一健壮性分析图之一24第第3 3章章 系统健壮性分析系统健壮性分析在前面关于健壮性分析图的绘制规则中,我们曾规定边界在前面关于健壮性分析图的绘制规则中,我们曾规定边界类与边界类之间是不能进行交互的,

35、而图类与边界类之间是不能进行交互的,而图3.5中连接中连接“新增新增图书信息图书信息”按钮和按钮和“新书录入新书录入”窗口两个边界类之间的虚窗口两个边界类之间的虚箭头,表示的是箭头,表示的是“新书录入新书录入”窗口是按下窗口是按下“新增图书信息新增图书信息”按钮时才显示出来的,并不是表示两个边界类之间的交互。按钮时才显示出来的,并不是表示两个边界类之间的交互。也就是说,这样画并没有违反规则。也就是说,这样画并没有违反规则。2 引入控制类及实体类引入控制类及实体类根据表根据表3.1中事件流步骤中事件流步骤5以及扩展路径的描述,我们就可以以及扩展路径的描述,我们就可以在图在图3.5中添加相应的控制

36、类,得到包括控制类在内的进一中添加相应的控制类,得到包括控制类在内的进一步的健壮性分析图如图步的健壮性分析图如图3.6所示。所示。再考虑表再考虑表3.1中事件流步骤中事件流步骤2、步骤、步骤3的内容,即根据所选的的内容,即根据所选的书籍类别,自动按规则生成书号,并把书号作为创建书籍的书籍类别,自动按规则生成书号,并把书号作为创建书籍的相关信息,把这些信息添加进图相关信息,把这些信息添加进图3.6中,就得到了最后的健中,就得到了最后的健壮性分析图如图壮性分析图如图3.7所示。所示。25第第3 3章章 系统健壮性分析系统健壮性分析图书管理员图书管理员主窗口主窗口“新增图书信息新增图书信息”按钮按钮

37、“新书录入新书录入”窗口窗口“书籍类别书籍类别”列表框列表框“提交提交”按钮按钮书名重复性检查书名重复性检查书籍列表书籍列表加入书籍列表加入书籍列表创建书籍创建书籍书籍书籍图图3.6 加入控制类和实体类的初步健壮性分析图加入控制类和实体类的初步健壮性分析图在图在图3.6中,我们所表达中,我们所表达的是:当按下的是:当按下“提交提交”按钮后,就将进行书名按钮后,就将进行书名的重复性检查,检查的的重复性检查,检查的依据是书籍列表,如果依据是书籍列表,如果重名则回到重名则回到“新书录入新书录入”窗口重新输入,如果不窗口重新输入,如果不重名就创建新的书籍,重名就创建新的书籍,并加入书籍列表。并加入书籍

38、列表。26第第3 3章章 系统健壮性分析系统健壮性分析图书管理员图书管理员主窗口主窗口“新增图书信息新增图书信息”按钮按钮“新书录入新书录入”窗口窗口“书籍类别书籍类别”列表框列表框“提交提交”按钮按钮书名重复性检查书名重复性检查书籍列表书籍列表加入书籍列表加入书籍列表创建书籍创建书籍书籍书籍获得类别获得类别生成书号生成书号书号规则书号规则图图3.7 最后的健壮性分析图最后的健壮性分析图27第第3 3章章 系统健壮性分析系统健壮性分析通过仔细分析,并把分析结果绘制成健壮性分析图,将有通过仔细分析,并把分析结果绘制成健壮性分析图,将有助于开发人员更加深入的了解系统细节。与此同时找到了助于开发人员

39、更加深入的了解系统细节。与此同时找到了边界类(系统的各种界面信息)和控制类(系统的关键业边界类(系统的各种界面信息)和控制类(系统的关键业务逻辑)。务逻辑)。健壮性分析也不一定是一个独立的分析阶段,我们可以在健壮性分析也不一定是一个独立的分析阶段,我们可以在编写用例描述的同时,结合健壮性分析来启发思路,完善编写用例描述的同时,结合健壮性分析来启发思路,完善细节。细节。3.3 完善概念模型完善概念模型健壮性分析图的绘制过程,是对用例描述的正确性和完整性健壮性分析图的绘制过程,是对用例描述的正确性和完整性进行检查的过程,也是不断发现新的类或修正先前发现的类进行检查的过程,也是不断发现新的类或修正先

40、前发现的类的过程。因此,它在细化用例描述的同时,也包含了对我们的过程。因此,它在细化用例描述的同时,也包含了对我们在前面的工作中已经完成的静态模型(问题域概念模型)的在前面的工作中已经完成的静态模型(问题域概念模型)的不断细化(设计完成后的类模型也属于静态模型的范畴)。不断细化(设计完成后的类模型也属于静态模型的范畴)。28因此,在绘制完健壮性分析图之后,我们还必须回头修改因此,在绘制完健壮性分析图之后,我们还必须回头修改问题域概念模型,把新发现的类、属性等加进去。在图问题域概念模型,把新发现的类、属性等加进去。在图3.7中的书号规则就是一个新的实体类,是我们在问题域建模中的书号规则就是一个新的实体类,是我们在问题域建模中所遗漏的类,必须把它加进问题域概念模型中。中所遗漏的类,必须把它加进问题域概念模型中。另外,我们通过仔细分析用例描述,还发现了另一个细节:另外,我们通过仔细分析用例描述,还发现了另一个细节:书

温馨提示

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

评论

0/150

提交评论