软件工程第7章面向对象_第1页
软件工程第7章面向对象_第2页
软件工程第7章面向对象_第3页
软件工程第7章面向对象_第4页
软件工程第7章面向对象_第5页
已阅读5页,还剩46页未读 继续免费阅读

下载本文档

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

文档简介

1、 第第7 7章章 面向对象分析面向对象分析 7.1 7.1 面向对象分析概述面向对象分析概述 7.2 7.2 建立对象模型建立对象模型 7.3 7.3 建立动态模型建立动态模型 7.4 7.4 建立功能模型建立功能模型 7.5 7.5 定义服务(操作)定义服务(操作)面向对象的分析面向对象的分析(Object-oriented analysis, OOA)OOA的基本任务的基本任务: 运用面向对象方法,对运用面向对象方法,对问题域问题域(被开发系统的应用领域)(被开发系统的应用领域)和和系统责任系统责任(所开发系统应具备的职能)进行分析和理解,对(所开发系统应具备的职能)进行分析和理解,对其中

2、的事物和它们之间的关系产生正确的认识,找出描述问题其中的事物和它们之间的关系产生正确的认识,找出描述问题域和系统责任所需的域和系统责任所需的类和对象类和对象,定义这些,定义这些类和对象的属性和操类和对象的属性和操 作作,以及,以及它们之间所形成的各种关系它们之间所形成的各种关系。最终目的是产生一个符。最终目的是产生一个符合用户需求,并能够直接反映问题域和系统责任的合用户需求,并能够直接反映问题域和系统责任的OOA模型及模型及其规约其规约。1需求分析的三项内容需求分析的三项内容(1)理解:)理解: 从需求文档从需求文档(陈述陈述)、与用户的讨论中,提取系统的、与用户的讨论中,提取系统的 需求(解

3、决需求(解决系统系统 “做什么做什么”的问题)的问题)(2)表达(需求建模):)表达(需求建模): 用用OOA模型模型(对象模型、动态模型和功能模型对象模型、动态模型和功能模型)准确准确 地表示系统需求。地表示系统需求。(3)完成需求规格说明并进行评审(验证)完成需求规格说明并进行评审(验证) 2 2面向对象分析方法面向对象分析方法 (1 1)分析系统的三要素:)分析系统的三要素: 静态结构静态结构( (对象模型对象模型) ) 交互次序交互次序( (动态模型动态模型) ) 数据变换数据变换( (功能模型功能模型) ) 动态模型和功能模型中都包含了对象模型中的动态模型和功能模型中都包含了对象模型

4、中的 操作操作( (即服务,或方法即服务,或方法) )。 (2 2)对象模型的五个层次)对象模型的五个层次 (3 3)面向对象分析过程:)面向对象分析过程: 确定类与对象;识别结构;识别主题;确定类与对象;识别结构;识别主题; 定义属性;建立动态模型;建立功能模型;定义属性;建立动态模型;建立功能模型; 定义服务。定义服务。 分析不可能严格地按照预定顺序进行,大型、复杂系统的分析不可能严格地按照预定顺序进行,大型、复杂系统的 模型需要反复构造多遍才能建成。通常,先构造出模型的模型需要反复构造多遍才能建成。通常,先构造出模型的 子集,然后再逐渐扩充,直到完全、充分地理解了整个问子集,然后再逐渐扩

5、充,直到完全、充分地理解了整个问 题,最终把模型建立起来。题,最终把模型建立起来。 3 3需求陈述包括的内容:需求陈述包括的内容: 问题范围,功能需求,性能需求,应用环境及假设问题范围,功能需求,性能需求,应用环境及假设 条件等。条件等。 需求陈述应该阐明需求陈述应该阐明“做什么做什么”而不是而不是“怎样做怎样做”。它它 应该描述用户的需求而不是提出解决问题的方法。应该描述用户的需求而不是提出解决问题的方法。 例:自动取款机(例:自动取款机(ATMATM)系统的需求陈述)系统的需求陈述 图图7.27.2 1) 1) 问题综述问题综述 某银行拟开发一个自动取款机系统,它是一个由某银行拟开发一个自

6、动取款机系统,它是一个由自动取自动取款机款机、中央计算机中央计算机、分行计算机分行计算机及及营业终端营业终端组成的网络系统。组成的网络系统。ATMATM和中央计算机由总行投资购买。总行拥有多台和中央计算机由总行投资购买。总行拥有多台ATMATM,分别,分别设在全市各主要街道上。分行负责提供分行计算机和营业终设在全市各主要街道上。分行负责提供分行计算机和营业终端。营业终端设在分行下属的各个储蓄所内。该系统的软件端。营业终端设在分行下属的各个储蓄所内。该系统的软件开发成本由各个分行共同承担。开发成本由各个分行共同承担。 2) 2) 实施陈述实施陈述 银行银行营业员营业员使用使用营业终端营业终端处理

7、处理储户储户提交的储蓄提交的储蓄事务事务。储户可以用现金或支票向自己拥有的某个储户可以用现金或支票向自己拥有的某个账户账户内存款或开新内存款或开新账户,储户也可以从自己的账户中取款。通常,一个储户可账户,储户也可以从自己的账户中取款。通常,一个储户可能拥有多个账户。营业员负责把储户提交的存款或取款事务能拥有多个账户。营业员负责把储户提交的存款或取款事务输进营业终端,接收储户交来的现金或支票,或者付给储户输进营业终端,接收储户交来的现金或支票,或者付给储户现金。营业终端与相应的现金。营业终端与相应的分行计算机分行计算机通信,分行计算机具体通信,分行计算机具体处理针对某个账户的事务并且维护账户。处

8、理针对某个账户的事务并且维护账户。 拥有银行账户的储户有权申请领取拥有银行账户的储户有权申请领取现金兑换卡现金兑换卡。使用兑。使用兑换卡可以通过换卡可以通过ATMATM访问自己的账户。目前,仅限于用现金兑访问自己的账户。目前,仅限于用现金兑换卡在换卡在ATMATM上提取现金上提取现金( (即取款即取款) ),或查询有关自己账户的信,或查询有关自己账户的信息息( (例如,某个指定账户上的余额例如,某个指定账户上的余额) )。将来可能还要求使用。将来可能还要求使用ATMATM办理转账、存款等事务。办理转账、存款等事务。 所谓所谓现金兑换卡现金兑换卡,就是一张特制的,就是一张特制的磁卡磁卡,上面有分

9、行代码,上面有分行代码和卡号。分行代码惟一标识总行下属的一个分行,卡号确定了和卡号。分行代码惟一标识总行下属的一个分行,卡号确定了这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干这张卡可以访问哪些账户。通常,一张卡可以访问储户的若干个账户,但是不一定能访问这个储户的全部账户。每张现金兑个账户,但是不一定能访问这个储户的全部账户。每张现金兑换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,换卡仅属于一个储户所有,但是,同一张卡可能有多个副本,因此,必须考虑同时在若干台因此,必须考虑同时在若干台ATMATM上使用同样的现金兑换卡的上使用同样的现金兑换卡的可能性。也就是说,系统应该能够处理

10、并发的访问。可能性。也就是说,系统应该能够处理并发的访问。 当用户把当用户把现金兑换卡现金兑换卡插入插入ATMATM之后,之后,ATMATM就与用户交互,就与用户交互,以获取有关这次以获取有关这次事务事务的信息,并与的信息,并与中央计算机中央计算机交换关于事务交换关于事务的信息。首先,的信息。首先,ATMATM要求用户输入密码,接下来,要求用户输入密码,接下来,ATMATM把从这把从这张卡上读到的信息以及用户输入的密码传给中央计算机,请张卡上读到的信息以及用户输入的密码传给中央计算机,请求中央计算机核对这些信息并处理这次事务。中央计算机根求中央计算机核对这些信息并处理这次事务。中央计算机根据卡

11、上的分行代码确定这次事务与分行的对应关系,并且委据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。如果用户输入的密码是托相应的分行计算机验证用户密码。如果用户输入的密码是正确的,正确的,ATMATM就要求用户选择事务类型就要求用户选择事务类型( (取款、查询等取款、查询等) )。当。当用户选择取款时,用户选择取款时,ATMATM请求用户输入取款额。最后,请求用户输入取款额。最后,ATMATM从现从现金出口输出现金,并且打印出账单交给用户。金出口输出现金,并且打印出账单交给用户。 l l对象模型对象模型描述了现实世界中的描述了现实世界中的“类与对象类与对象”以及

12、它们之间的以及它们之间的 关系,表示了目标系统的静态数据结构。关系,表示了目标系统的静态数据结构。l l建立对象模型的信息来源:建立对象模型的信息来源: 需求陈述、应用领域知识及常识需求陈述、应用领域知识及常识l建立对象模型步骤:建立对象模型步骤: (1)(1)确定类确定类& &对象:识别候选者、筛选对象:识别候选者、筛选 (2)(2)确定关联确定关联 (3)(3)划分主题划分主题 (4)(4)确定属性确定属性 (5)(5)识别继承关系识别继承关系l l对象是问题域中有意义的事物的抽象,它们既可能是物理实对象是问题域中有意义的事物的抽象,它们既可能是物理实 体,也可能是抽象概念。大多数客观事物

13、可分为下述五类:体,也可能是抽象概念。大多数客观事物可分为下述五类: (1 1)可感知的物理实体可感知的物理实体。例如:飞机、书、房屋等。例如:飞机、书、房屋等 (2 2)人或组织的角色人或组织的角色。例如:医生、教师、计算机系等。例如:医生、教师、计算机系等。 (3 3)应该记忆的事件应该记忆的事件。例如:飞行、演出、访问等。例如:飞行、演出、访问等。 (4 4)两个或多个对象的相互作用两个或多个对象的相互作用,通常具有交易或接触的,通常具有交易或接触的 性质。例如:购买、纳税等。性质。例如:购买、纳税等。 (5 5)需要说明的概念需要说明的概念。例如:政策、法规、版权等。例如:政策、法规、

14、版权等。 l l另一种更简单的分析方法,称为非正式分析。这种分析方法另一种更简单的分析方法,称为非正式分析。这种分析方法 以用自然语言书写的需求陈述为依据,其中:以用自然语言书写的需求陈述为依据,其中: 名名 词:词:作为类作为类-&-&-对象的候选者。对象的候选者。 形容词:形容词:作为确定属性的线索。作为确定属性的线索。 动动 词:词:作为服务(操作)的候选者。作为服务(操作)的候选者。 用这种简单方法确定的候选者是非常不准确的,往往包含用这种简单方法确定的候选者是非常不准确的,往往包含 大量不正确的或不必要的事物,还必须经过更进一步严格大量不正确的或不必要的事物,还必须经过更进一步严格

15、筛选。筛选。例:建立自动取款机(例:建立自动取款机(ATMATM)系统的对象模型:)系统的对象模型: 1 1、确定类、确定类& &对象对象 (1 1)找出候选的类)找出候选的类& &对象:对象: 需求陈述中的需求陈述中的名词名词作为候选对象:作为候选对象: 银行、自动取款机银行、自动取款机(ATM)(ATM)、系统、中央计算机、分行计算机、系统、中央计算机、分行计算机、 营业终端、网络、总行、分行、软件、成本、市、街道、营业终端、网络、总行、分行、软件、成本、市、街道、 营业厅、储蓄所。营业员、储户、现金、支票、账户、营业厅、储蓄所。营业员、储户、现金、支票、账户、 事务、现金兑换卡、余额、磁

16、卡、分行代码、卡号、用户、事务、现金兑换卡、余额、磁卡、分行代码、卡号、用户、 副本、信息、密码、类型、取款额、账单以及访问副本、信息、密码、类型、取款额、账单以及访问 根据根据领域知识和常识领域知识和常识步提取出隐含的类步提取出隐含的类-&-&-对象:对象: 通信链路、事务日志通信链路、事务日志(2 2)筛选出正确的类)筛选出正确的类-&-&-对象:对象:l删除不正确或不必要的类删除不正确或不必要的类& &对象对象 去掉冗余;去掉冗余; 去掉与系统无关者;去掉与系统无关者; 去掉笼统的类去掉笼统的类-&-&-对象;对象; 去掉属性;去掉属性; 去掉操作;去掉操作; 去掉仅和实现有关者去掉仅和

17、实现有关者ATMATM系统中的类系统中的类-&-&-对象如下:对象如下: P P171171 ATM ATM、中央计算机、分行计算机、中央计算机、分行计算机、 柜员终端、总行、分行、柜员终端、总行、分行、 柜员、储户、柜员、储户、 帐户、事务、现金兑换卡、帐户、事务、现金兑换卡、2 2、确定关联、确定关联( (包括聚集包括聚集) )(1 1)初步确定关联:)初步确定关联: 需求陈述中的需求陈述中的描述性动词描述性动词或或动词词组动词词组通常表示关联通常表示关联 根据根据领域知识领域知识进一步补充关联进一步补充关联 l lATMATM系统中的候选关联系统中的候选关联 P /p>

18、2 直接提取动词短语得出关联直接提取动词短语得出关联 需求陈述中隐含的关联需求陈述中隐含的关联 根据问题域知识得出的关联根据问题域知识得出的关联 识别聚集的策略识别聚集的策略(2 2)筛选:删除不正确或不必要的候选关联)筛选:删除不正确或不必要的候选关联 已删除的对象之间的关联已删除的对象之间的关联 以以ATMATM系统为例系统为例:由于已经删去了:由于已经删去了“系统系统”、“网络网络”、 “市市”、“街道街道”、“成本成本”、“软件软件”、“事务日志事务日志”、“现金现金”、 “营业厅营业厅”、“储蓄所储蓄所”、“账单账单”等候选类,等候选类, 因此,与这些类有关的八个关联也应该删去。因此

19、,与这些类有关的八个关联也应该删去。 与问题无关或应在实现阶段考虑的关联与问题无关或应在实现阶段考虑的关联 瞬时关联瞬时关联 分解多元关联分解多元关联 派生关联派生关联(3 3)完善关联:)完善关联: 正名(重命名)正名(重命名) 分解类分解类& &对象(以适用于不同的关联)对象(以适用于不同的关联) 补充(遗漏的关联、分解类补充(遗漏的关联、分解类- - -对象之后需要的新关联)对象之后需要的新关联) 标明重数标明重数 类类-&-&-对象之间的关联:对象之间的关联: 分行分行拥有拥有分行计算机;分行分行计算机;分行拥有拥有柜员终端;储户柜员终端;储户拥有拥有帐户;帐户; 柜员终端与分行计算机

20、柜员终端与分行计算机通信通信;分行;分行雇佣雇佣柜员;柜员柜员;柜员输入输入柜员事务;柜员事务; 柜员事务柜员事务输进输进柜员终端;柜员事务柜员终端;柜员事务修改修改帐户;帐户; ATM ATM与中央计算机与中央计算机通信通信;中央计算机与分行计算机;中央计算机与分行计算机通信通信; 总行总行拥有拥有中央计算机;总行由各个分行中央计算机;总行由各个分行组成组成;分行;分行保管保管帐户;帐户; 储户储户拥有拥有现金兑换卡;现金兑换卡可以现金兑换卡;现金兑换卡可以访问访问帐户;帐户; 在在ATMATM上上输入输入远程事务;远程事务由现金兑换卡远程事务;远程事务由现金兑换卡授权授权; 远程事务可以远

21、程事务可以修改修改帐户帐户。 l lATMATM系统的初始对象模型系统的初始对象模型 图图7.37.3 3 3、划分主题:、划分主题: l l主题主题是一种指导开发者或用户研究大型复杂模型的机制。是一种指导开发者或用户研究大型复杂模型的机制。 主题是一种手段,有助于分解大型项目以便分组承担任主题是一种手段,有助于分解大型项目以便分组承担任 务。此外,主题还可以给出面向对象分析和设计模型的务。此外,主题还可以给出面向对象分析和设计模型的 总体概貌。总体概貌。l l按照使不同主题内的对象相互间依赖和交互最少的原则按照使不同主题内的对象相互间依赖和交互最少的原则 来确定主题来确定主题例:例:以以AT

22、MATM系统为例,可以把它划分成总行(包含总行和中央计算机系统为例,可以把它划分成总行(包含总行和中央计算机 这两个类)、分行(包含分行、分行计算机、柜员终端、柜员事这两个类)、分行(包含分行、分行计算机、柜员终端、柜员事 务、柜员和账户等类)和务、柜员和账户等类)和ATMATM(包含(包含ATMATM、远程事务、现金兑换卡、远程事务、现金兑换卡 和储户等类)等和储户等类)等3 3个主题。个主题。4 4、确定属性、确定属性(1 1)分析:)分析: 需求陈述中的需求陈述中的名词词组名词词组和和形容词形容词 借助于借助于领域知识和常识领域知识和常识 识别属性的策略与启发识别属性的策略与启发(2 2

23、)选择:)选择:删除不正确或不必要的属性删除不正确或不必要的属性 区别对象和属性区别对象和属性 区别链属性和属性区别链属性和属性 区别限定词和属性区别限定词和属性 区别内部状态和属性区别内部状态和属性 避免细化避免细化 避免不一致的属性避免不一致的属性l l ATM ATM对象模型中的属性对象模型中的属性 图图7.47.45 5、识别继承关系、识别继承关系 利用继承来共享公共的性质,重新组织类。利用继承来共享公共的性质,重新组织类。 l l可以使用两种方式建立继承关系:可以使用两种方式建立继承关系: (1 1)抽象出)抽象出现有类的共同性质现有类的共同性质泛化出父类泛化出父类 (归纳思维)(归

24、纳思维) (2 2)把)把现有类细化现有类细化成更具体的子类成更具体的子类 (演绎思维)(演绎思维) l lATMATM对象模型中的继承关系对象模型中的继承关系 图图7.57.5 l l进一步修改和完善对象模型进一步修改和完善对象模型 图图7.67.6 l l建立动态模型的步骤:建立动态模型的步骤: 1 1、编写典型交互行为的脚本、编写典型交互行为的脚本 2 2、画事件追踪图、画事件追踪图 3 3、画状态图、画状态图 l l在一些系统中,需要了解在所有时间内对象的变化和对象在一些系统中,需要了解在所有时间内对象的变化和对象 之间关系的变迁,即之间关系的变迁,即时序关系时序关系。这就产生了一种与

25、静态结。这就产生了一种与静态结 构构( (对象模型对象模型) )相对应的、与时间和变化有关的内容,即动相对应的、与时间和变化有关的内容,即动 态模型。态模型。例:例:(1 1)ATMATM正常情况的脚本之一:正常情况的脚本之一: (用现金兑换卡在(用现金兑换卡在ATMATM上取款脚本上取款脚本1 1) (2 2)ATMATM异常情况的脚本之一:异常情况的脚本之一: (用现金兑换卡在(用现金兑换卡在ATMATM上取款脚本上取款脚本2 2)序号序号脚本脚本1 1ATM请储户插卡;储户请储户插卡;储户插插入一张现金兑换卡入一张现金兑换卡2ATM接受该卡并读它上面的分行代码和卡号接受该卡并读它上面的分

26、行代码和卡号3ATM要求要求储户输入储户输入密码密码;储户;储户输入输入自己的自己的密码密码,如,如“5461”等数字等数字4ATM请求总行请求总行验证验证卡号和密码;总行要求卡号和密码;总行要求“9”号分行号分行核对核对储户密码,然后储户密码,然后通知通知ATM说这张卡有效说这张卡有效5ATM要求储户要求储户选择事务类型选择事务类型(取款、转账、查询等取款、转账、查询等);储户;储户选择选择“取款取款”6ATM要求储户要求储户输入取款额输入取款额;储户;储户输入输入如如“505”等数字等数字7 ATM确认取款额在预先规定的限额内,然后要求总行确认取款额在预先规定的限额内,然后要求总行处理处理

27、这个事务;总行把请这个事务;总行把请求求转转给分行,该分行成功地处理完这项事务并给分行,该分行成功地处理完这项事务并返回返回该账户的新余额该账户的新余额8ATM输出现金输出现金并并请储户拿走请储户拿走这些现金;储户这些现金;储户拿走拿走现金现金9ATM问储户问储户是否继续是否继续这项事务;储户回答这项事务;储户回答“不不”10ATM打印账单打印账单,退退出现金兑换卡,出现金兑换卡,请请储户拿走它们;储户储户拿走它们;储户取走取走账单和卡账单和卡序号序号脚本脚本21ATM请储户插卡请储户插卡;储户;储户插插入一张现金兑换卡入一张现金兑换卡2ATM接受这张卡并顺序读它上面的数字接受这张卡并顺序读它

28、上面的数字3ATM要求密码要求密码;储户误;储户误输入输入如如“5555”等数字等数字4ATM请求总行验证请求总行验证输入的数字和密码;总行在向输入的数字和密码;总行在向有关分行咨询有关分行咨询之后之后拒绝拒绝这张卡这张卡5ATM显示显示“密码错密码错”,并,并请储户重新输入请储户重新输入密码;储户密码;储户输入输入“5461”等数字;等数字;ATM请总行验证请总行验证后知道这次输入的密码后知道这次输入的密码正确正确6ATM请储户选择事务请储户选择事务类型;储户类型;储户选择选择“取款取款”7ATM询问取款额询问取款额;储户改变主意,不想取款了,随之;储户改变主意,不想取款了,随之按按“取消取

29、消”键键8ATM退出退出现金兑换卡,并现金兑换卡,并请储户拿走请储户拿走它;储户它;储户拿走拿走他的卡他的卡9ATM请储户插卡请储户插卡例:例:ATMATM系统正常情况脚本系统正常情况脚本1 1的事件跟踪图的事件跟踪图17 17 印帐单印帐单储户储户ATM总行总行 4 4 请求验证帐户请求验证帐户请求分行验证帐户请求分行验证帐户分行分行帐户有效帐户有效5 5 帐户有效帐户有效1 1 插卡插卡2 2 要求密码要求密码3 3 输入密码输入密码6 6 要求事务类型要求事务类型7 7 输入类型输入类型8 8 要求输入取款额要求输入取款额9 9 输入取款额输入取款额10 10 请求处理事务请求处理事务请

30、求处理分行事务请求处理分行事务分行事务成功分行事务成功11 11 事务成功事务成功13 13 请求拿走现金请求拿走现金12 12 吐出现金吐出现金14 14 拿走现金拿走现金15 15 请求继续此事务请求继续此事务16 16 结束结束21 21 显示主屏幕显示主屏幕18 18 退卡退卡1919请求拿走卡请求拿走卡20 20 拿走卡拿走卡例:例:ATMATM系统异常情况脚本系统异常情况脚本2 2的事件跟踪图的事件跟踪图14 14 退卡退卡储户储户ATM总行总行 4 4 请求验证帐户请求验证帐户请求分行验证帐户请求分行验证帐户分行分行密码错误密码错误5 5 密码错误密码错误1 1 插卡插卡2 2

31、要求密码要求密码3 3 输入密码输入密码6 6 密码错误密码错误7 7 重新输入密码重新输入密码8 8 请求请求验证帐户验证帐户请求请求分行验证帐户分行验证帐户帐户有效帐户有效9 9 帐户有效帐户有效11 11 输入类型输入类型10 10 要求事务类型要求事务类型12 12 要求输入取款额要求输入取款额13 13 取消取消17 17 显示主屏幕显示主屏幕1515请求拿走卡请求拿走卡16 16 拿走卡拿走卡 例:例:ATMATM类正常脚本类正常脚本1 1对应的状态图对应的状态图 例:例:ATMATM类异常脚本类异常脚本2 2对应的状态图对应的状态图l l根据一张事件跟踪图画出状态图之后,再把基于

32、其它脚本根据一张事件跟踪图画出状态图之后,再把基于其它脚本 的状态图合并进来。的状态图合并进来。图图7.97.9、图、图7.107.10、图、图7.11 7.11 例:例:ATMATM类正常脚本类正常脚本1 1对应的状态图对应的状态图主屏1插卡要求密码验证帐户要求类型要求金额处理事务吐出现金请求继续打印帐单退卡3输入密码拿走卡2421帐户有效56输入类型78输入金额91512,131011事务成功14拿走现金结束1617181920例:例:ATMATM类异常脚本类异常脚本2 2对应的状态图对应的状态图主屏1插卡要求密码验证帐户要求类型要求金额退卡3输入密码拿走卡24,817帐户有效910输入类

33、型1112取消1314,1516密码错误6密码错误57重新输入密码ATMATM类的状态图类的状态图总行类的状态图总行类的状态图分行类的状态图分行类的状态图 l l功能模型功能模型由一组数据流图组成由一组数据流图组成 例:例:ATMATM系统的功能模型(系统的功能模型(ATMATM主题)主题) (1 1)顶层数据流图:)顶层数据流图: 图图7.127.12 (2 2)功能级数据流图:)功能级数据流图: 图图7.137.13 (3 3)处理框的功能描述)处理框的功能描述 表表7.37.3ATMATM系统的顶层数据流图系统的顶层数据流图ATMATM系统的功能级数据流图系统的功能级数据流图(1 1)常

34、规操作:)常规操作: l l访问类中定义的每个属性的操作(访问类中定义的每个属性的操作(读、写属性的值读、写属性的值)(2 2)从(状态图)事件导出的操作:)从(状态图)事件导出的操作: 当对象接收到事件后,在事件驱动下完成相应的服务当对象接收到事件后,在事件驱动下完成相应的服务 l l例如例如: :在在ATMATM系统中系统中 发往发往ATMATM对象的对象的事件事件“结束结束”,启动该对象的,启动该对象的服务服务“打印账单打印账单”; 发往分行的发往分行的事件事件“请分行验卡请分行验卡”启动该对象的启动该对象的服务服务“验证卡号验证卡号”; 发往分行的发往分行的事件事件“处理分行事务处理分

35、行事务”启动分行对象的启动分行对象的服务服务“更新账户更新账户”。(3 3)与数据流图中处理框对应的操作:)与数据流图中处理框对应的操作: 将完成每个处理的功能定义成为相应对象的操作。将完成每个处理的功能定义成为相应对象的操作。 l l例如,例如,在在ATMATM系统中系统中 从从状态图状态图上看出分行对象应该提供上看出分行对象应该提供“验证卡号验证卡号”服务服务, 而在而在数据流图数据流图上与之对应的上与之对应的处理框是处理框是“验卡验卡”, 根据实际应该完成的功能看,根据实际应该完成的功能看,分行对象分行对象提供的提供的服务服务应该是应该是“验卡验卡”(4 4)利用继承减少冗余操作:)利用

36、继承减少冗余操作: 尽量尽量抽取相似类的公共属性和操作抽取相似类的公共属性和操作,以建立这些,以建立这些 类的新父类,并在类等级的不同层次中正确定义类的新父类,并在类等级的不同层次中正确定义 各个操作各个操作例如例如ATM系统中部分系统中部分类类-对象的操作:对象的操作: 账户账户、ATM、分行分行、 例:例:ATMATM系统的系统的OOAOOA过程过程 (1 1)确定类)确定类-&-&-对象:对象: 需求陈述中的名词作为候选对象:需求陈述中的名词作为候选对象: 银行、自动取款机(银行、自动取款机(ATMATM)、系统、)、系统、中央计算机中央计算机、分行计算机分行计算机、 营业终端营业终端、

37、网络、网络、总行总行、分行分行、软件、软件、营业员营业员、储户储户、现金、现金、 支票、支票、 帐户帐户、事务事务、现金兑换卡现金兑换卡、金额、磁卡、分行代码、金额、磁卡、分行代码、 卡号、用户、卡号、用户、 信息、密码、类型、取款额、帐单、访问信息、密码、类型、取款额、帐单、访问 根据领域知识和常识提取隐含的候选对象:根据领域知识和常识提取隐含的候选对象: 通信链路、事务日志通信链路、事务日志 筛选出正确的类筛选出正确的类-&-&-对象:对象: ATMATM、中央计算机、分行计算机、中央计算机、分行计算机、 营业终端、总行、分行、营业终端、总行、分行、 营业员、储户、营业员、储户、 帐户、事

38、务、现金兑换卡、帐户、事务、现金兑换卡、 例:例:ATMATM系统的系统的OOAOOA过程过程 (2 2)确定关联:)确定关联: 分行拥有分行计算机;分行拥有分行计算机; 分行拥有柜员终端;分行拥有柜员终端; 储户拥有帐户;储户拥有帐户; 柜员终端与分行计算机通信;柜员终端与分行计算机通信; 柜员输入事务;柜员输入事务; 事务修改帐户;事务修改帐户; ATMATM与中央计算机通信;与中央计算机通信; 在在ATMATM上输入事务;上输入事务; 中央计算机与分行计算机通信;中央计算机与分行计算机通信; 总行由各个分行组成;总行由各个分行组成; 分行保管帐户;分行保管帐户; 总行拥有中央计算机;总行拥有中央计算机; 储户拥有现金兑换卡;储户拥有现金兑换卡; 现金兑换卡访问帐户;现金兑换卡访问帐户; 分行雇佣柜员;分行雇佣柜员; 柜员输入柜员事务;柜员输入柜员事务; 柜员事务输进柜员终端;柜员事务输进

温馨提示

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

评论

0/150

提交评论