第十章面向对象分析(案例讲座)_第1页
第十章面向对象分析(案例讲座)_第2页
第十章面向对象分析(案例讲座)_第3页
第十章面向对象分析(案例讲座)_第4页
第十章面向对象分析(案例讲座)_第5页
已阅读5页,还剩57页未读 继续免费阅读

下载本文档

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

文档简介

1、Yibinu UniversitySchool of Computer & Information Engineering1软件工程第章第章 面向对象分析面向对象分析Yibinu UniversitySchool of Computer & Information Engineering2面向对象的分析面向对象分析的面向对象分析的目的目的是对是对客观世界的系客观世界的系统进行建模统进行建模。以前面介绍的模型概念为基础,。以前面介绍的模型概念为基础,结合结合“银行网络系统银行网络系统ATM”的具体实例来构造的具体实例来构造客观世界问题的准确、严密的分析模型。客观世界问题的准确、严

2、密的分析模型。 分析模型有三种用途:分析模型有三种用途:l用来明确问题需求;用来明确问题需求;l为用户和开发人员提供明确需求;为用户和开发人员提供明确需求;l为用户和开发人员提供一个协商的基础,为用户和开发人员提供一个协商的基础,作为后继的设计和实现的框架。作为后继的设计和实现的框架。Yibinu UniversitySchool of Computer & Information Engineering3Yibinu UniversitySchool of Computer & Information Engineering4系统分析的第一步是:陈述需求 分析者必须同用户一块

3、工作来提炼需求,分析者必须同用户一块工作来提炼需求,因为这样才表示了用户的真实意图,其中涉因为这样才表示了用户的真实意图,其中涉及对需求的分析及查找丢失的信息。及对需求的分析及查找丢失的信息。下面以下面以“银行网络系统银行网络系统”为例,用面向为例,用面向对象方法进行开发。对象方法进行开发。Yibinu UniversitySchool of Computer & Information Engineering5银行网络系统问题陈述:设计支持银行网络的软件,银行网络包括设计支持银行网络的软件,银行网络包括人工人工出纳站出纳站和分行共享的和分行共享的自动出纳机自动出纳机。每个分理处用分理

4、处计算机来保存各自的帐户,每个分理处用分理处计算机来保存各自的帐户,处理各自的事务;各自分理处的出纳站与分理处计处理各自的事务;各自分理处的出纳站与分理处计算机通信,出纳站录入帐户和事务数据;算机通信,出纳站录入帐户和事务数据;自动出纳机与分行计算机通信,分行计算机与自动出纳机与分行计算机通信,分行计算机与拨款分理处结帐,自动出纳机与用户接口接受现金拨款分理处结帐,自动出纳机与用户接口接受现金卡,与分行计算机通信完成事务,发放现金,打印卡,与分行计算机通信完成事务,发放现金,打印收据;收据;系统需要系统需要记录保管记录保管和安全措施;系统必须正确和安全措施;系统必须正确处理同一帐户的并发访问;

5、每个分处理为自己的计处理同一帐户的并发访问;每个分处理为自己的计算机准备软件,银行网络费用根据顾客和现金卡的算机准备软件,银行网络费用根据顾客和现金卡的数目分摊给各分理处。数目分摊给各分理处。Yibinu UniversitySchool of Computer & Information Engineering6Yibinu UniversitySchool of Computer & Information Engineering7系统分析的第二步是:建立对象模型l首先首先标识和关联标识和关联,因为它们影响了整体,因为它们影响了整体结构和解决问题的方法,结构和解决问题的方法

6、,l其次是增加其次是增加属性属性,进一步描述类和关联,进一步描述类和关联的基本网络,使用继承的基本网络,使用继承合并和组织合并和组织类,类,l最后最后操作操作增加到类中去作为构造动态模增加到类中去作为构造动态模型和功能模型的副产品。型和功能模型的副产品。Yibinu UniversitySchool of Computer & Information Engineering81.确定类构造对象模型的第一步是构造对象模型的第一步是标出来自问题标出来自问题域的相关的对象类域的相关的对象类,对象包括物理实体和概,对象包括物理实体和概念。念。常用的识别类的方法有:名词识别法、常用的识别类的方法

7、有:名词识别法、系统实体识别法、使用重用、从用例中识别系统实体识别法、使用重用、从用例中识别类等。类等。所有类在应用中都必须有意义,在问题所有类在应用中都必须有意义,在问题陈述中,并非所有类都是明显给出的。有些陈述中,并非所有类都是明显给出的。有些是隐含在问题域或一般知识中的。是隐含在问题域或一般知识中的。Yibinu UniversitySchool of Computer & Information Engineering9按图所示的过程确定类和对象按图所示的过程确定类和对象Yibinu UniversitySchool of Computer & Information

8、Engineering10(1)找出候选的类与对象查找问题陈述中的所有名词,产生如下查找问题陈述中的所有名词,产生如下的的候选类与对象候选类与对象。 软件软件 银行网络银行网络 出纳员出纳员 自动出纳机自动出纳机 分行分行 分处理分处理 分处理计算机分处理计算机 帐户帐户 事务事务 出纳站出纳站 事务数据事务数据 分行计算机分行计算机 现金卡现金卡 用户用户 现金现金 收据收据 系统系统 顾客顾客 费用费用 帐户帐户数据数据 访问访问 安全措施安全措施 记录保管记录保管 Yibinu UniversitySchool of Computer & Information Engineer

9、ing11(2)筛选出正确的类与对象 根据下列标准,根据下列标准,筛选出正确的类与对象筛选出正确的类与对象,去掉,去掉不必要的类和不正确的类。不必要的类和不正确的类。(1) 冗余类:冗余类:若两个类表述了同一个信息若两个类表述了同一个信息 ,保留,保留最富有描述能力的类。如最富有描述能力的类。如“用户用户”和和“顾客顾客”就是就是重复的描述,因为重复的描述,因为“顾客顾客”最富有描述性,因此保最富有描述性,因此保留它。留它。 (2) 无关类无关类:除掉与问题没有关系或根本无关的:除掉与问题没有关系或根本无关的类。例如,摊派费用超出了银行网络的范围。类。例如,摊派费用超出了银行网络的范围。 (3

10、) 笼统(模糊)类笼统(模糊)类:类必须是确定的,有些暂:类必须是确定的,有些暂定类边界定义模糊或范围太广,如定类边界定义模糊或范围太广,如“记录保管记录保管”就就模糊类,它是模糊类,它是“事务事务”中的一部分。中的一部分。在银行网络系统中,模糊类还有在银行网络系统中,模糊类还有“系统系统”、“安全安全措施措施”、“银行网络银行网络”等。等。Yibinu UniversitySchool of Computer & Information Engineering12(4) 属性属性:某些名词描述的是其他对象的:某些名词描述的是其他对象的属性,则从暂定类中删除。如果某一性质的属性,则从暂

11、定类中删除。如果某一性质的独立性很重要,就应该把他归属到类,而不独立性很重要,就应该把他归属到类,而不把它作为属性。把它作为属性。“现金现金 ”“”“卡号卡号”“”“密码密码”等,应该作为属性对待。等,应该作为属性对待。 属于属于属性属性的有:的有:“帐户数据帐户数据”、“收收据据”、“现金现金”、“事务数据事务数据”。 Yibinu UniversitySchool of Computer & Information Engineering13(5) 操作操作:如果问题陈述中的名词有:如果问题陈述中的名词有动作含动作含义义,则描述的操作就不是类。但是具有自身性质而,则描述的操作就不是

12、类。但是具有自身性质而且需要独立存在的操作应该描述成类。如我们只构且需要独立存在的操作应该描述成类。如我们只构造电话模型,造电话模型,拨号拨号就是动态模型的一部分而不是就是动态模型的一部分而不是类,但在电话拨号系统中,类,但在电话拨号系统中,拨号拨号是一个重要的类,是一个重要的类,它日期、时间、受话地点等属性。它日期、时间、受话地点等属性。属于属于实现实现的如:的如:“访问访问”、“软件软件”等。这些等。这些均应除去。在分析阶段不应该过早考虑系统的实现,均应除去。在分析阶段不应该过早考虑系统的实现,因此,应该去掉和实现有关的候选类。因此,应该去掉和实现有关的候选类。Yibinu Univers

13、itySchool of Computer & Information Engineering14最终确定的类为:分行计算机分行计算机 分行分行 出纳站出纳站 出纳员出纳员 分理处分理处 中央计算机中央计算机 自动出纳机自动出纳机 账户账户 现金卡现金卡 事务事务 顾客顾客Yibinu UniversitySchool of Computer & Information Engineering152.准备数据字典 为所有建模实体准备一个数据字典。准为所有建模实体准备一个数据字典。准确描述各个类的精确含义,描述当前问题中确描述各个类的精确含义,描述当前问题中的类的范围,包括对类的

14、成员、用法方面的的类的范围,包括对类的成员、用法方面的假设或限制。假设或限制。Yibinu UniversitySchool of Computer & Information Engineering163.确定关联两个或多个类之间的两个或多个类之间的相互依赖、相互作用相互依赖、相互作用的关的关系就是关联。系就是关联。可用各种方式来实现关联,但在分析模型中应可用各种方式来实现关联,但在分析模型中应删除实现的考虑,以便设计时更为灵活。删除实现的考虑,以便设计时更为灵活。关联常用关联常用描述性动词或动词词组描述性动词或动词词组来表示,其中来表示,其中有物理位置的表示、传导的动作、通信、所有

15、者关有物理位置的表示、传导的动作、通信、所有者关系、条件的满足等。系、条件的满足等。从问题陈述中抽取所有可能的关联表述,把它从问题陈述中抽取所有可能的关联表述,把它们记下来,但不要过早去细化这些表述。们记下来,但不要过早去细化这些表述。Yibinu UniversitySchool of Computer & Information Engineering17下面是银行网络系统中所有可能的关联,下面是银行网络系统中所有可能的关联,大多数是直接抽取问题中的动词词组而得到大多数是直接抽取问题中的动词词组而得到的。的。在陈述中,有些动词词组表述的关联是在陈述中,有些动词词组表述的关联是不明显

16、的。不明显的。最后,还有一些关联与客观世界或人的最后,还有一些关联与客观世界或人的假设有关假设有关,必须同用户一起核实这种关联,必须同用户一起核实这种关联,因为这种关联在问题陈述中找不到。因为这种关联在问题陈述中找不到。Yibinu UniversitySchool of Computer & Information Engineering18(1)初步确定关联银行网络问题陈述中的关联:银行网络问题陈述中的关联: 银行网络银行网络包括包括出纳站和自动出纳机;出纳站和自动出纳机; 分行分行共享共享自动出纳机;自动出纳机; 分理处分理处提供提供分理处计算机;分理处计算机; 分理处计算机分理

17、处计算机保存保存帐户;帐户; 分理处计算机分理处计算机处理处理帐户支付事务;帐户支付事务; 分理处分理处拥有拥有出纳站;出纳站; 出纳站与分理处计算机出纳站与分理处计算机通信通信; 出纳员为帐户出纳员为帐户录入录入事务;事务;Yibinu UniversitySchool of Computer & Information Engineering19 自动出纳机自动出纳机接受接受现金卡;现金卡; 自动出纳机与用户接口;自动出纳机与用户接口; 自动出纳机自动出纳机发放发放现金;现金; 自动出纳机自动出纳机打印打印收据;收据; 系统处理系统处理并发访问并发访问; 分理处分理处提供提供软件;

18、软件; 费用费用分摊分摊给分理处。给分理处。Yibinu UniversitySchool of Computer & Information Engineering20隐含的动词词组:隐含的动词词组: 分行由分理处分行由分理处组成组成; 分理处分理处拥有拥有帐户;帐户; 分行分行拥有拥有分行计算机;分行计算机; 系统系统提供提供记录保管;记录保管; 系统系统提供提供安全;安全; 顾客顾客有有现金卡。现金卡。Yibinu UniversitySchool of Computer & Information Engineering21基于问题域知识的关联:基于问题域知识的关联:

19、分理处分理处雇佣雇佣出纳员;出纳员; 现金卡现金卡访问访问帐户。帐户。Yibinu UniversitySchool of Computer & Information Engineering22(2)筛选使用下列标准去掉不必要和不正确的关使用下列标准去掉不必要和不正确的关联:联: (1) 若若某个类已被删除某个类已被删除,那么与它有关的,那么与它有关的关联也必须删除或者用其它类来重新表述。关联也必须删除或者用其它类来重新表述。在例中,我们删除了在例中,我们删除了“银行网络银行网络”,相关的,相关的关联也要删除。关联也要删除。 (2) 与问题不相干的关联或实现阶段的关与问题不相干的关联

20、或实现阶段的关联联:删除所有问题域之外的关联或涉及实现:删除所有问题域之外的关联或涉及实现结构中的关联。如结构中的关联。如系统处理并发访问系统处理并发访问就是就是一种实现的概念。一种实现的概念。Yibinu UniversitySchool of Computer & Information Engineering23(3)瞬时事件)瞬时事件(动作动作):关联应该描述应用域:关联应该描述应用域的结构性质而不是瞬时事件,因此应删除的结构性质而不是瞬时事件,因此应删除“自动出纳机接受现金卡自动出纳机接受现金卡”,“自动出纳机自动出纳机与用户接口与用户接口”等。等。 (4) 派生关联:省略那

21、些可以用其他关联派生关联:省略那些可以用其他关联来定义的关联。因为这种关联是冗余的。来定义的关联。因为这种关联是冗余的。 银行网络系统的初步对象图如图所示。其银行网络系统的初步对象图如图所示。其中含有关联。中含有关联。Yibinu UniversitySchool of Computer & Information Engineering24Yibinu UniversitySchool of Computer & Information Engineering25系统分析的第三步是:确定类属性属性是对象的属性是对象的性质性质,属性通常用属性通常用修饰性的修饰性的名词词组名词词

22、组来表示来表示.只考虑与具体应用直接相关的属性,不只考虑与具体应用直接相关的属性,不要考虑那些超出问题范围的属性;要考虑那些超出问题范围的属性;找出重要属性,避免那些只用于实现的找出重要属性,避免那些只用于实现的属性要为各个属性取有意义的名字。属性要为各个属性取有意义的名字。Yibinu UniversitySchool of Computer & Information Engineering26按下列标准删除不必要的和不正确的属性:(1) 误把对象当作属性误把对象当作属性:若实体的独立存在:若实体的独立存在比它的值重要,那么这个实体不是属性而是对象。比它的值重要,那么这个实体不是属

23、性而是对象。如在邮政目录中,如在邮政目录中,“城市城市”是一个属性,然而在人是一个属性,然而在人口普查中,口普查中,“城市城市”则被看作是对象。在具体应用则被看作是对象。在具体应用中,具有自身性质的实体一定是对象。中,具有自身性质的实体一定是对象。 (2) 把限定误码当成属性把限定误码当成属性:若属性值取决于:若属性值取决于某种具体上下文,则可考虑把该属性重新表述为一某种具体上下文,则可考虑把该属性重新表述为一个限定词。如个限定词。如“账号账号”“”“分行代码分行代码”(3) 名称名称:名称常常作为限定词而不是对象:名称常常作为限定词而不是对象的属性,当名称不依赖于上下文关系时,名称即为的属性

24、,当名称不依赖于上下文关系时,名称即为一个对象属性,尤其是它不惟一时。一个对象属性,尤其是它不惟一时。 Yibinu UniversitySchool of Computer & Information Engineering27(4) 标识符:在考虑对象模糊性时,引标识符:在考虑对象模糊性时,引入对象标识符表示,在对象模型中不列出这入对象标识符表示,在对象模型中不列出这些对象标识符,它是隐含在对象模型中,只些对象标识符,它是隐含在对象模型中,只列出存在于应用域的属性。列出存在于应用域的属性。 (5) 误把内部状态当成属性:若属性描述误把内部状态当成属性:若属性描述了对外不透明的对象的

25、内部状态,则应从对了对外不透明的对象的内部状态,则应从对象模型中删除该属性。象模型中删除该属性。 (6) 过于细化:忽略那些不可能对大多数过于细化:忽略那些不可能对大多数操作有影响的属性。操作有影响的属性。Yibinu UniversitySchool of Computer & Information Engineering28Yibinu UniversitySchool of Computer & Information Engineering29系统分析的第四步是:使用继承来细化类1 、自底而上自底而上将现有类的共性一般化为父类。找出具将现有类的共性一般化为父类。找出具

26、有相同属性、关联、操作的类,来发现继承。有相同属性、关联、操作的类,来发现继承。例如:例如:“出纳事务出纳事务”和和“远程事务远程事务”,可以,可以将它们的共性一般化,得到父类将它们的共性一般化,得到父类“事务事务”。 Yibinu UniversitySchool of Computer & Information Engineering30Yibinu UniversitySchool of Computer & Information Engineering312 、自顶而下自顶而下将现有类细化为更具体的子类。将现有类细化为更具体的子类。如:例如:菜单,可以有固定菜单,顶

27、如:例如:菜单,可以有固定菜单,顶部菜单,弹出菜单,下拉菜单等,这就可以部菜单,弹出菜单,下拉菜单等,这就可以把菜单类具体细化为各种具体菜单的子类。把菜单类具体细化为各种具体菜单的子类。当同一关联名出现多次且意义也相同时,应当同一关联名出现多次且意义也相同时,应尽量具体化为相关联的类,尽量具体化为相关联的类,例如例如事务事务从从出纳站出纳站和和自动出纳机自动出纳机进进入,则入,则录入站录入站就是就是出纳站出纳站和和自动出纳站自动出纳站的一般化。的一般化。 Yibinu UniversitySchool of Computer & Information Engineering32系统分

28、析的第五步是: 完善对象模型对象建模不可能一次就能保证模型是完对象建模不可能一次就能保证模型是完全正确的,软件开发的整个过程就是一个不全正确的,软件开发的整个过程就是一个不断完善的过程。断完善的过程。模型的不同组成部分多半是在不同的阶模型的不同组成部分多半是在不同的阶段完成的,如果发现模型的缺陷,就必须返段完成的,如果发现模型的缺陷,就必须返回到前期阶段去修改,有些细化工作是在动回到前期阶段去修改,有些细化工作是在动态模型和功能模型完成之后才开始进行的。态模型和功能模型完成之后才开始进行的。Yibinu UniversitySchool of Computer & Informatio

29、n Engineering33(1) 几种可能丢失对象的情况及解决办几种可能丢失对象的情况及解决办法:法: 同一类中存在毫无关系的属性和操作,则同一类中存在毫无关系的属性和操作,则分解这个类,使各部分相互关联;分解这个类,使各部分相互关联; 一般化体系不清楚,则可能分离扮演两种一般化体系不清楚,则可能分离扮演两种角色的类角色的类 存在无目标类的操作,则找出并加上失去存在无目标类的操作,则找出并加上失去目标的类;目标的类; 存在名称及目的相同的冗余关联,则通过存在名称及目的相同的冗余关联,则通过一般化创建丢失的父类,把关联组织在一起。一般化创建丢失的父类,把关联组织在一起。 Yibinu Uni

30、versitySchool of Computer & Information Engineering34(2) 查找多余的类。查找多余的类。 类中缺少属性,操作和关联,则可删除这个类中缺少属性,操作和关联,则可删除这个类。类。 (3)查找丢失的关联。)查找丢失的关联。丢失了操作的访问路径,则加入新的关联以丢失了操作的访问路径,则加入新的关联以回答查询。回答查询。Yibinu UniversitySchool of Computer & Information Engineering35Yibinu UniversitySchool of Computer & Info

31、rmation Engineering36(4) 网络系统的具体情况作如下的修改:网络系统的具体情况作如下的修改: 现金卡有多个独立的特性。把它分解为两个现金卡有多个独立的特性。把它分解为两个对象:对象:卡片权限卡片权限和和现金卡现金卡。 a.卡片权限:它是银行用来鉴别用户访问权限卡片权限:它是银行用来鉴别用户访问权限的卡片,表示一个或多个用户帐户的访问权限;各的卡片,表示一个或多个用户帐户的访问权限;各个卡片权限对象中可能具有好几个现金卡,每张都个卡片权限对象中可能具有好几个现金卡,每张都带有安全码,卡片码,它们附在现金卡上,表现银带有安全码,卡片码,它们附在现金卡上,表现银行的卡片权限。行

32、的卡片权限。b.现金卡:它是自动出纳机得到表示码的数据现金卡:它是自动出纳机得到表示码的数据卡片,它也是银行代码和现金卡代码的数据载体。卡片,它也是银行代码和现金卡代码的数据载体。Yibinu UniversitySchool of Computer & Information Engineering37Yibinu UniversitySchool of Computer & Information Engineering38事务事务不能体现对帐户之间的传输描述不能体现对帐户之间的传输描述的一般性,因它只涉及一个帐户,一般来说,的一般性,因它只涉及一个帐户,一般来说,在每个帐

33、户中,一个在每个帐户中,一个事务事务包括一个或多个包括一个或多个更新更新,一个,一个更新更新是对帐户的一个动作,它是对帐户的一个动作,它们是取款,存款,查询之一。一个们是取款,存款,查询之一。一个更新更新中中所有所有更新更新应该是一个原子操作。应该是一个原子操作。 分行分行和和分行处理机分行处理机之间的区别似乎并之间的区别似乎并不影响分析,计算机的通信处理实际上是实不影响分析,计算机的通信处理实际上是实现的概念,将现的概念,将“中央计算机中央计算机”并入并入“总行总行”。同理,将同理,将“分行计算机分行计算机”并入并入“分行分行”。Yibinu UniversitySchool of Comp

34、uter & Information Engineering39Yibinu UniversitySchool of Computer & Information Engineering40系统分析的第六步是:建立动态模型通常动态模型有:事件跟踪表、状态图。通常动态模型有:事件跟踪表、状态图。建立动态模型的步骤分为建立动态模型的步骤分为 4 步:步: 1 、准备典型的对话脚本、准备典型的对话脚本动态分析从寻找事件开始,然后确定各对动态分析从寻找事件开始,然后确定各对象的可能事件顺序。在分析阶段不考虑算法的象的可能事件顺序。在分析阶段不考虑算法的执行,算法是实现模型的一部分。执行

35、,算法是实现模型的一部分。Yibinu UniversitySchool of Computer & Information Engineering41自动出纳机与用户交互的正常情况脚本:自动出纳机与用户交互的正常情况脚本:( 1 )自动出纳机请求用户插入卡片;用户插入)自动出纳机请求用户插入卡片;用户插入现金卡。现金卡。 ( 2 )自动出纳机接受卡片并读出它的卡号。)自动出纳机接受卡片并读出它的卡号。 (3) 自动出纳机要求密码,用户键入密码自动出纳机要求密码,用户键入密码“ 4011 ”。( 4 )自动出纳机与总行确认卡号和密码;分理)自动出纳机与总行确认卡号和密码;分理处检查它并

36、通知承兑的自动出纳机。处检查它并通知承兑的自动出纳机。 ( 5 )自动出纳机要求选择事务类型(取款、)自动出纳机要求选择事务类型(取款、存款、转户及查询),用户选择取款。存款、转户及查询),用户选择取款。 Yibinu UniversitySchool of Computer & Information Engineering42( 6 )自动出纳机要求现金数量;用户输入¥)自动出纳机要求现金数量;用户输入¥ 100 。 ( 7 )自动出纳机要求分行处理事务;分行把要)自动出纳机要求分行处理事务;分行把要求转给分理处,确认事务成功。求转给分理处,确认事务成功。 ( 8 )自动出纳机分发

37、现金并且要求用户取现)自动出纳机分发现金并且要求用户取现金;用户取现金。金;用户取现金。( 9 )自动出纳机提示用户是否想继续;用户指)自动出纳机提示用户是否想继续;用户指出不继续。出不继续。 ( l0 )自动出纳机打印收据,退出卡,并请求)自动出纳机打印收据,退出卡,并请求用户取出它们;用户拿走收据和卡。用户取出它们;用户拿走收据和卡。 ( ll )自动出纳机请求用户插入。)自动出纳机请求用户插入。Yibinu UniversitySchool of Computer & Information Engineering43自动出纳机与用户交互的异常情况脚本:( 1 )自动出纳机请求用

38、户插入卡;用户插入现)自动出纳机请求用户插入卡;用户插入现金卡。金卡。 ( 2 )自动出纳机接受卡并读它的卡号。)自动出纳机接受卡并读它的卡号。 ( 3 )自动出纳机要求密码;用户键入:)自动出纳机要求密码;用户键入: 9999 :。:。 ( 4 )自动出纳机与分行确认卡号和密码,在)自动出纳机与分行确认卡号和密码,在咨询分理处后拒绝它。咨询分理处后拒绝它。 ( 5 )自动出纳机指示密码错并要求重新键入;)自动出纳机指示密码错并要求重新键入;用户键入:用户键入: 4011 : ,分行确认成功。,分行确认成功。 Yibinu UniversitySchool of Computer &

39、Information Engineering44( 6 )自动出纳机请求用户选择事务类型;)自动出纳机请求用户选择事务类型;用户选择取款。用户选择取款。 ( 7 )自动出纳机请求键入现金数量;用)自动出纳机请求键入现金数量;用户改变选择并键入户改变选择并键入 “ CANCEL , , (取消)。(取消)。 ( 8 )自动出纳机退出卡并且请求用户拿)自动出纳机退出卡并且请求用户拿走卡;用户取出卡。走卡;用户取出卡。 ( 9 )自动出纳机请求用户插入卡。)自动出纳机请求用户插入卡。Yibinu UniversitySchool of Computer & Information Engi

40、neering452.确定事件确定事件 确定所有外部事件。事件包括所有来自或确定所有外部事件。事件包括所有来自或发往用户的信息、外部设备的信号、输入、发往用户的信息、外部设备的信号、输入、转换和动作,可以发现正常事件,但不能转换和动作,可以发现正常事件,但不能遗遗漏条件和异常事件漏条件和异常事件。Yibinu UniversitySchool of Computer & Information Engineering463 、画出事件跟踪图、画出事件跟踪图把脚本表示成一个事件跟踪图,即把脚本表示成一个事件跟踪图,即不同不同对象之间的事件排序表对象之间的事件排序表,对象为图中的列,对象为

41、图中的列,给每个对象分配一个独立的列。图给每个对象分配一个独立的列。图 6 给出了给出了银行网络系统的事件跟踪图。银行网络系统的事件跟踪图。Yibinu UniversitySchool of Computer & Information Engineering47图图 6Yibinu UniversitySchool of Computer & Information Engineering48图图 7 给出了给出了事件流图事件流图,它给出类之间的,它给出类之间的所有事件。事件流图是对象图的一个所有事件。事件流图是对象图的一个动态对动态对照照,对象图中路径反映了可能的信息流,

42、而,对象图中路径反映了可能的信息流,而事件流图反映了可能的控制流。事件流图反映了可能的控制流。Yibinu UniversitySchool of Computer & Information Engineering49Yibinu UniversitySchool of Computer & Information Engineering50 4.构造状态图构造状态图 对各对象类建立状态图,反映对象接收和对各对象类建立状态图,反映对象接收和发送的事件,每个事件跟踪都对应于状态图发送的事件,每个事件跟踪都对应于状态图中一条路径。中一条路径。Yibinu UniversitySc

43、hool of Computer & Information Engineering51在银行网络系统示例中,自动出纳机、出纳站、在银行网络系统示例中,自动出纳机、出纳站、分行和分理处对象都是分行和分理处对象都是动作对象动作对象。用来互换事件,。用来互换事件,而现金卡、事务和账户都是而现金卡、事务和账户都是被动对象被动对象,不交换事件。,不交换事件。顾客和出纳员都是动作对象,它们同录入站的顾客和出纳员都是动作对象,它们同录入站的交互作用已经表示出来了。但顾客和出纳员对象都交互作用已经表示出来了。但顾客和出纳员对象都是系统外部的因素,不在系统内部实现。是系统外部的因素,不在系统内部实现。

44、图图8给出了自动出纳机的状态图,图给出了自动出纳机的状态图,图 9 给出了给出了“分行分行”类的状态图,图类的状态图,图10给出了给出了“分理处分理处”类的类的状态图。状态图。Yibinu UniversitySchool of Computer & Information Engineering52Yibinu UniversitySchool of Computer & Information Engineering53Yibinu UniversitySchool of Computer & Information Engineering54Yibinu UniversitySchool of Computer & Information Engineering55系统分析的第七步是:建立功能模型功能模型用来说明功能模型用来说明数据是如何计算的数据是如何计算的,表明了系统中数据之间的依赖关系及有关的表明了系统中数据之间的依赖关系及有关的数据处理功能。数据处理功能。数据流图有助于表示功能依赖关系,其数据流图有助于表示功能依赖关系,其中的中的处理处理应于状态图的应于状态图的活动和动作活动和动作,其中的,其中的数据流数据流对应于对象图中的对应于对象图中的对象或属性对象或属性。 Y

温馨提示

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

评论

0/150

提交评论