《面向对象分析 (2)优秀课件.ppt》由会员分享,可在线阅读,更多相关《面向对象分析 (2)优秀课件.ppt(50页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、面向对象分析面向对象分析(2)第1页,本讲稿共50页第八章第八章 面向对象分析面向对象分析&81 OOA的基本任务的基本任务&82 OOA的基本过程的基本过程&83 需求陈述需求陈述&84 建立对象模型建立对象模型&85 建立动态模型建立动态模型&86 建立功能模型建立功能模型&87 定义服务定义服务&88 本章重点本章重点第2页,本讲稿共50页81 OOA的基本任务的基本任务 面向对象分析面向对象分析(Object-Oriented Analysis,简,简称称OOA)的主要任务是的主要任务是完全理解用户的需求和应用完全理解用户的需求和应用领域重的关键性背景知识,并用某种无二义性的方领域重的
2、关键性背景知识,并用某种无二义性的方式编写成文档资料式编写成文档资料软件需求规格说明书软件需求规格说明书(以(以模型描述为基本部分,再加上模型描述为基本部分,再加上接口要求接口要求、性能限制性能限制等其它方面的要求说明)。等其它方面的要求说明)。OOA的关键,是识别出问题域内的对象,并的关键,是识别出问题域内的对象,并分析它们相互见的关系,最终建立起问题领域的分析它们相互见的关系,最终建立起问题领域的简介、精确、可理解的正确模型。简介、精确、可理解的正确模型。在三种模型中,对象模型是最基本、最重要、在三种模型中,对象模型是最基本、最重要、最核心的。最核心的。第3页,本讲稿共50页82 OOA的
3、基本过程的基本过程OOA实质就是抽取和整理用户需求,并建立实质就是抽取和整理用户需求,并建立起问题域的精确模型。分析工作主要包括理解、起问题域的精确模型。分析工作主要包括理解、表达和验证三部分内容。表达和验证三部分内容。首先系统分析员需要与用户及相关领域专家进首先系统分析员需要与用户及相关领域专家进行反复的交流,力求完全理解用户需求。行反复的交流,力求完全理解用户需求。为了验证需求的正确性、完整性和有效性,为了验证需求的正确性、完整性和有效性,需要建立一个快速原型来加以验证。需要建立一个快速原型来加以验证。同时,需要从理解的需求中抽取出问题的同时,需要从理解的需求中抽取出问题的本质属性,用模型
4、准确的描述出来。包括本质属性,用模型准确的描述出来。包括三个三个子模型子模型与与五个层次五个层次。第4页,本讲稿共50页一、三个子模型一、三个子模型面向对象建模得到的模型包括三个子模型:面向对象建模得到的模型包括三个子模型:静态模型静态模型:描述系统的静态结构,包括对象的组成以:描述系统的静态结构,包括对象的组成以及对象之间的关系。及对象之间的关系。动态模型动态模型:描述系统的动态结构,给出对象之间的相:描述系统的动态结构,给出对象之间的相互过程。互过程。功能模型功能模型:描述系统数据变换,指明做什么。:描述系统数据变换,指明做什么。对于解决问题的不同,各模型的侧重点也不同:对于解决问题的不同
5、,各模型的侧重点也不同:对象模型:最重要,开发任何系统都需要;对象模型:最重要,开发任何系统都需要;动态模型:对于开发交互式系统很重要;动态模型:对于开发交互式系统很重要;功能模型:对于开发大运算量问题(如科学计算、功能模型:对于开发大运算量问题(如科学计算、编译系统等)很重要。编译系统等)很重要。第5页,本讲稿共50页二、五个二、五个层次次类的边界类及对象层实例的边界结构层主题层主题服务层消息连接服务属性层实例连接属性第6页,本讲稿共50页三、三、OOAOOA建立建立对象模型的五象模型的五项活活动(1)(1)标识类及及对象象(2)(2)标识结构构(3)(3)标识主主题(4)(4)定定义属性及
6、属性及实例例连接接(5)(5)定定义服服务及消息及消息连接接五个步五个步骤常根据需要交叉常根据需要交叉进行行第7页,本讲稿共50页四、四、进行行OOAOOA的步的步骤n需求陈述需求陈述 n识别类识别类&对象对象n 确定结构确定结构n 划分主题划分主题n 定义属性定义属性n 建立动态模型建立动态模型n 建立功能模型建立功能模型n 定义服务定义服务第8页,本讲稿共50页83 需求陈述需求陈述u陈述用户需求(应“做什么”),而 不是设计与实现的策略(不是“怎么做”)。u分清各种问题的性质、规模,功能需求,性能需求等u提出可扩充性、性能与通信的要求第9页,本讲稿共50页84 建立对象模型建立对象模型
7、建立对象模型的步骤建立对象模型的步骤:F识别类识别类&对象对象F确定关联确定关联F划分主题划分主题F确定确定属性属性F识别继承关系识别继承关系F迭代并反复修改模型迭代并反复修改模型第10页,本讲稿共50页一、确定类一、确定类&对象对象【任务任务】:找出问题域中客观存在的对象。】:找出问题域中客观存在的对象。【策略策略】:】:S1:列出所有候选对象。:列出所有候选对象。S2:筛选出正确的对象。:筛选出正确的对象。非正式分析:从需求陈述中挑出非正式分析:从需求陈述中挑出 名词名词 Class-&-Object 形容词形容词 Attribute 动词动词 Method第11页,本讲稿共50页1 1、
8、列出所有候、列出所有候选对象象对象是对问题域中有意义的事物的抽象,既对象是对问题域中有意义的事物的抽象,既可以是物理实体,也可以是抽象的概念。分类可以是物理实体,也可以是抽象的概念。分类如下:如下:(1 1)可感知的物理实体)可感知的物理实体。如飞机,汽车等。如飞机,汽车等。(2 2)人或组织的角色)人或组织的角色。如雇员,财务处等。如雇员,财务处等。(3 3)应该记忆的事件)应该记忆的事件。如演出,交通事故等。如演出,交通事故等(4 4)多个对象之间的交互作用)多个对象之间的交互作用,通常具有交易或,通常具有交易或接触性质。如购买,销售等。接触性质。如购买,销售等。(5 5)需要说明的概念)
9、需要说明的概念。如政策法规等。如政策法规等。第12页,本讲稿共50页1 1、列出所有候、列出所有候选对象(象(续)F问题域描述中的问题域描述中的名词名词,往往是候选的对象往往是候选的对象;根据问根据问题域结构可提取候选的类及对象题域结构可提取候选的类及对象;F与与系系统统发发生生作作用用的的其其它它系系统统和和必必要要的的设设备备可可作作为候选的类及对象为候选的类及对象;如:如:打印机等打印机等F系统必须观测、记忆的与时间有关的系统必须观测、记忆的与时间有关的 事件事件可作为候选的类及对象可作为候选的类及对象;如:建立帐户的如:建立帐户的日期日期 打开一个帐户等打开一个帐户等F与系统发生交互的
10、与系统发生交互的人人及系统必须保留其信息的及系统必须保留其信息的人人,可作为候选的类及对象可作为候选的类及对象;如:柜员、储户等如:柜员、储户等第13页,本讲稿共50页1 1、列出所有候、列出所有候选对象(象(续)F这些人所属的这些人所属的组织组织单位,可作为候选的类及对单位,可作为候选的类及对象象;如:总行、分行等如:总行、分行等F系统必须记忆、且不在问题域约束中的顺序系统必须记忆、且不在问题域约束中的顺序操作操作过程过程(为了指导人机交互为了指导人机交互)可作为候选的类及对可作为候选的类及对象象;如:柜员事务、远程事务等。如:柜员事务、远程事务等。其中属性是其中属性是操作过程名操作过程名,
11、操作特权及操作步骤的描述操作特权及操作步骤的描述;F系统需了解掌握的物理位置、办公系统需了解掌握的物理位置、办公地点地点等可作等可作为候选的类及对象为候选的类及对象;如:如:ATMATM机器、帐户等机器、帐户等第14页,本讲稿共50页2 2、筛选出正确的类、筛选出正确的类&对象对象 严格的审查每个候选对象,去除不正确或不必要的,严格的审查每个候选对象,去除不正确或不必要的,仅保留确实需要记录其信息或需要其提供服务的对仅保留确实需要记录其信息或需要其提供服务的对象。筛选依据:象。筛选依据:(1 1)冗余)冗余:去除重复,保留一个。去除重复,保留一个。(2 2)无关:)无关:去除与本系统无关的对象
12、。去除与本系统无关的对象。(3 3)笼统:)笼统:或无需记忆,或具有更明确。或无需记忆,或具有更明确。(4 4)属性:)属性:去掉为其它对象属性的名词。去掉为其它对象属性的名词。(5 5)操作:)操作:既为名词又为动词,应慎重考虑既为名词又为动词,应慎重考虑(6 6)实现:)实现:去除与实现相关的类。去除与实现相关的类。第15页,本讲稿共50页ATMATM自自动取款机示例取款机示例例:从例:从ATM需求分析中提出的名词集合需求分析中提出的名词集合银行、银行、ATM、系统、中央计算机、分行计算机、系统、中央计算机、分行计算机、柜员终端、网络、总行、分行、软件、成本、市、柜员终端、网络、总行、分行
13、、软件、成本、市、街道、营业厅、储蓄所、柜员、储户、现金、支票、账户、街道、营业厅、储蓄所、柜员、储户、现金、支票、账户、事务、现金兑换卡、余额、磁卡、分行代码、卡号、用户、事务、现金兑换卡、余额、磁卡、分行代码、卡号、用户、副本、信息、密码、类型、取款额、账单、访问副本、信息、密码、类型、取款额、账单、访问筛选时依下列标准删除:筛选时依下列标准删除:、通信链路、事务日志、通信链路、事务日志 冗余冗余 无关无关 笼统笼统 属性属性 操作操作 既可为名词又可为动词的既可为名词又可为动词的词,应慎重考虑。词,应慎重考虑。实现实现第16页,本讲稿共50页二、确定关二、确定关联【任务任务】:确定对象之
14、间的关联关系。】:确定对象之间的关联关系。【策略策略】:】:S1:初步确定关联。:初步确定关联。对应于描述性动词或动词短语对应于描述性动词或动词短语 需求陈述中隐含需求陈述中隐含 根据问题域知识得出根据问题域知识得出 S2:筛选。:筛选。S3:完善。:完善。第17页,本讲稿共50页1 1、初步确定关、初步确定关联 需求陈述中涉及需求陈述中涉及objets的动词短语:的动词短语:分行计算机维护账户 柜员终端与分行计算机通信 柜员输入针对账户的事务 ATM与中央计算机交换关于事务的信息 中央计算机确定事务与分行的对应关系 ATM读现金兑换卡 ATM与用户交互 ATM吐出现金 ATM打印账单 系统处
15、理并发的访问 ATM、中央计算机、分行计算机及柜员终端组成网络 总行拥有多台ATM ATM设在主要街道上 分行提供分行计算机和柜员终端 柜员终端设在分行营业厅及储蓄所内 分行分摊软件开发成本 储户拥有账户 分行计算机处理针对账户的事务第18页,本讲稿共50页1 1、初步确定关、初步确定关联(续)需求陈述中隐含的关联需求陈述中隐含的关联 总行由各个分行组成总行由各个分行组成 系统维护事务日志系统维护事务日志 分行保管账户分行保管账户 系统提供必要的安全系统提供必要的安全性性 总行拥有中央计算机总行拥有中央计算机 储户拥有现金兑换卡储户拥有现金兑换卡 根据问题域知识得出的关联根据问题域知识得出的关
16、联 现金兑换卡访问账户现金兑换卡访问账户 分行雇用柜员分行雇用柜员第19页,本讲稿共50页2 2、筛选删除除 与已删去的与已删去的object 有关的关联有关的关联 与问题无关的或应在实现阶段考虑的关联与问题无关的或应在实现阶段考虑的关联 ATM、中央计算机、分行计算机及柜员终端组成网络 总行拥有多台ATM ATM设在主要街道上 分行提供分行计算机和柜员终端 柜员终端设在分行营业厅及储蓄所内 分行分摊软件开发成本 储户拥有账户 总行由各个分行组成 分行计算机处理针对账户的事务 分行计算机维护账户 柜员终端与分行计算机通信 柜员输入针对账户的事务 ATM与中央计算机交换关于事务的信息 中央计算机
17、确定事务与分行的对应关系 ATM读现金兑换卡 ATM与用户交互 ATM吐出现金 ATM打印账单 系统处理并发的访问 现金兑换卡访问账户 系统维护事务日志 分行保管账户 系统提供必要的安全性 总行拥有中央计算机 储户拥有现金兑换卡 分行雇用柜员第20页,本讲稿共50页2 2、筛选删除(除(续)瞬时事件:注意关联描述静态结构瞬时事件:注意关联描述静态结构 ATM、中央计算机、分行计算机及柜员终端组成网络 总行拥有多台ATM ATM设在主要街道上 分行提供分行计算机和柜员终端 柜员终端设在分行营业厅及储蓄所内 分行分摊软件开发成本 储户拥有账户 总行由各个分行组成 分行计算机处理针对账户的事务 分行
18、计算机维护账户 柜员终端与分行计算机通信 柜员输入针对账户的事务 ATM与中央计算机交换关于事务的信息 中央计算机确定事务与分行的对应关系 ATM读现金兑换卡 ATM与用户交互 ATM吐出现金 ATM打印账单 系统处理并发的访问 现金兑换卡访问账户 系统维护事务日志 分行保管账户 系统提供必要的安全性 总行拥有中央计算机 储户拥有现金兑换卡 分行雇用柜员第21页,本讲稿共50页2 2、筛选删除(除(续)三元关联:分解为二元关联或限定关联三元关联:分解为二元关联或限定关联 柜员输入针对账户的事务柜员输入针对账户的事务 =柜员输入事务柜员输入事务+事务修改账户事务修改账户 分行计算机处理针对账户的
19、事务分行计算机处理针对账户的事务 =分行计算机处理事务分行计算机处理事务+事务修改账户事务修改账户 ATM与中央计算机交换关于事务的信息与中央计算机交换关于事务的信息 =ATM与中央计算机通信与中央计算机通信+在在ATM上输入事务上输入事务注:注:识别链属性识别链属性 某实体仅用于描述另两个实体的某实体仅用于描述另两个实体的关系,且该实体本身不包含属性。例如关系,且该实体本身不包含属性。例如“公司付给员工公司付给员工工资工资”可分解为可分解为“公司雇用员工公司雇用员工”,附链属性,附链属性“工资工资”。第22页,本讲稿共50页2 2、筛选删除(除(续)派生关联:即可用其它关联定义的冗余关联派生
20、关联:即可用其它关联定义的冗余关联 总行拥有多台ATM 分行提供分行计算机和柜员终端 储户拥有账户 总行由各个分行组成 分行保管账户 总行拥有中央计算机 现金兑换卡访问账户 储户拥有现金兑换卡 分行雇用柜员 分行计算机处理事务 分行计算机维护账户 柜员终端与分行计算机通信 柜员输入事务 事务修改账户 ATM与中央计算机通信 在ATM上输入事务 中央计算机确定事务与分行的对应关系第23页,本讲稿共50页3 3、完善、完善 正名:分行提供分行计算机和柜员终端正名:分行提供分行计算机和柜员终端 =分行拥有分行计算机分行拥有分行计算机+分行拥有柜员终端分行拥有柜员终端 分解:适当分解前面确定的分解:适
21、当分解前面确定的class-&-objects,使其适用使其适用于不同的关联于不同的关联 事务事务=远程事务远程事务+柜员事务柜员事务补充补充 柜员输入柜员事务柜员输入柜员事务 在在ATM上输入远程事务上输入远程事务 柜员事务输进柜员终端柜员事务输进柜员终端 远程事务由现金兑换卡授权远程事务由现金兑换卡授权标明阶数(可能经常变动,不要花太多时间)标明阶数(可能经常变动,不要花太多时间)第24页,本讲稿共50页中央计算机分行计算机现金兑换卡总 行分 行拥有分行代码组成通信1+通信拥有柜员终端柜员事务柜员通信1+1+拥有1+雇用输入1+1+输入账 户修改1+储 户保管1+拥有1+远程事务ATM拥有
22、1+1+1+访问1+1+修改授权1+输入1+ATMATM取款机的取款机的对象模型象模型第25页,本讲稿共50页三、划分主三、划分主题主题是把一组具有较强联系的类组织在一起而得到的类的集合。1、主题概念及其用途主题层是在OOA基本模型(类图)之上建立一个能帮助人们从不同的认识层次来理解系统的补充模型;主题一种比类和对象抽象层次更高、粒度更大的概念,用以建立系统的高层抽象视图;主题有助于指导系统设计者或用户等理解一个大的系统模型,有助于组织一个大项目的工作。第26页,本讲稿共50页三、划分主三、划分主题(续)2、主题概念的特点是由一组类构成的集合一个主题内部的对象类应具有某种意义上的内在联系描述系
23、统中相对独立的组成部分(如一个子系统)描述系统中某一方面的事物(如人员、设备)解决系统中某一方面的问题(如输入输出)主题的划分有一定的灵活性和随意性第27页,本讲稿共50页三、划分主三、划分主题(续)3、何时引入主题 依赖于模型自身复杂性F小系统:不需引入主题;F中等系统:先标识类及对象,然后引入主题;F大系统:先标识主题,对问题域进行 划分,分给不同的任务组;4、主题层次的控制F中小型系统可只设一层主题,最多不超两层F大型系统可只设两层主题,最多不超过三层第28页,本讲稿共50页三、划分主三、划分主题(续)5、如何划分主题F把每个结构作为一个主题;(选取结构中最上层的类作为一主题)F通过实例
24、连接互相联系的类可划分到一个主题F把不属于任何结构,也没有实例连接的类作为一个主题。第29页,本讲稿共50页三、划分主三、划分主题(续)6、如何精练主题 从问题域和接口复杂性两方面入手:F使用问题域精练主题,即用整体/部分结构对问题域进行划分,而不是按功能分解方法划分.F按高内聚低偶合原则,通过使主题间依赖性和交互性最小原则保留能反映子问题域的主题.F主题数目7个左右,则进一步精练主题。第30页,本讲稿共50页7 7、主、主题的表示法的表示法三种表示方式三种表示方式:压缩方式方式 半展开方式、全展开方式半展开方式、全展开方式编号 主题名压缩方式编号 主题名半展开方式:类名类名 类名类名 类名类
25、名主题名主题名下层主题三、划分主三、划分主题(续)第31页,本讲稿共50页7 7、主、主题的表示法的表示法三、划分主三、划分主题(续)全展开方式:编号编号编号编号 类图上原有的全部内容第32页,本讲稿共50页中央计算机分行计算机现金兑换卡总 行分 行拥有分行代码组成通信1+通信拥有柜员终端柜员事务柜员通信1+1+拥有1+雇用输入1+1+输入账 户修改1+储 户保管1+拥有1+远程事务ATM拥有1+1+1+访问1+1+修改授权1+输入1+1231.1.总总 行行 2.2.分分 行行 3.3.ATM三、划分主三、划分主题(续)第33页,本讲稿共50页四、确定属性四、确定属性对象所保存的信息称为它的
26、属性对象所保存的信息称为它的属性。类的属性类的属性所描述的是所描述的是状态信息状态信息,每个实例的属性值每个实例的属性值表达了表达了该实例的状态值。该实例的状态值。注意注意注意注意:AttributeAttribute不表示不表示objects objects 之间的关系,只表示之间的关系,只表示其本质性质,不要与链属性、限定词混淆。其本质性质,不要与链属性、限定词混淆。暂不考虑纯用于实现的暂不考虑纯用于实现的 attributesattributes(即单纯的(即单纯的内部状态)。内部状态)。需求陈述中与已确定的需求陈述中与已确定的 objects objects 有关的名词、有关的名词、形
27、容词可能是选择的线索。形容词可能是选择的线索。第34页,本讲稿共50页五、五、识别继承关系承关系 自底向上:将具有相同属性的自底向上:将具有相同属性的classes向上归纳出父类。向上归纳出父类。例例 自顶向下:自顶向下:将现有将现有classes向下细化出子类(但分析阶向下细化出子类(但分析阶段避免过度细化)段避免过度细化).例例 若某若某class中具有几个独立的功能,则考虑分为几个中具有几个独立的功能,则考虑分为几个classes。例例 对于某对于某class中具有自己特有属性的部分,可考虑中具有自己特有属性的部分,可考虑将之列为独立存在的将之列为独立存在的class,且是原有,且是原有
28、class的组成。的组成。例例 合并无须分别考虑的若干合并无须分别考虑的若干classes。例例第35页,本讲稿共50页公司职员股东姓名姓名身分证号码身分证号码股份股份职员工资工资股东姓名姓名身分证号码身分证号码股份股份职员姓名姓名身分证号码身分证号码工资工资?从特殊从特殊类发现一般一般类第36页,本讲稿共50页公司职员股东姓名姓名身分证号码身分证号码股份股份职员工资工资公司职员姓名姓名身分证号码身分证号码股份股份工资工资?从一般从一般类发现特殊特殊类第37页,本讲稿共50页收款机ABC现钞收款机DEF现钞收款机ABCDEFXYZZXY为支持复用建立结构 收款机类成为可供本领域其它系统复用的领
29、域构件支持复用的分解支持复用的分解第38页,本讲稿共50页冷藏车汽车制冷设备冷藏车汽车制冷设备仅用一般-特殊结构两种结构同 用冷藏车汽车制冷设备仅用整体-部分结构两种两种结构的构的变通通第39页,本讲稿共50页大学生研究生研究方向指导教师学生姓名姓名学号学号班级班级研究生研究方向指导教师学生姓名姓名学号学号班级班级合并无合并无须分分别考考虑的的类第40页,本讲稿共50页账 户余额限额类型现金兑换卡分行代码卡号储 户姓名地址输入站事 务日期柜员事务远程事务柜 员姓名更 新金额类型总 行总行名分 行分行名ATM现有金额付出金额柜员终端分行代码组成站号站号账号雇员号卡号输入1+拥有1+保管拥有拥有雇
30、用发放拥有1+1+1+访问1+授权1+1+输入1+组成修改归归 纳纳组组 成成六、建立 Object Model第41页,本讲稿共50页85 建立动态模型建立动态模型动态模型描述系统的动态结构,给出对动态模型描述系统的动态结构,给出对象之间的相互作用过程。其对于仅存储静态数象之间的相互作用过程。其对于仅存储静态数据据(如数据库如数据库)的系统来说,并没有多少意义。但是的系统来说,并没有多少意义。但是在在开发交互式系统开发交互式系统时,却具有很重要的作用。工时,却具有很重要的作用。工作步骤:作步骤:S1:编写典型交互行为的脚本。:编写典型交互行为的脚本。S2:提取事件,并确定发送、接收对象。:提
31、取事件,并确定发送、接收对象。S3:排列事件发生顺序,绘制事件跟踪图。:排列事件发生顺序,绘制事件跟踪图。S4:确定对象的状态及转换,绘制状态图。:确定对象的状态及转换,绘制状态图。第42页,本讲稿共50页一、一、编写脚本写脚本脚本也叫做脚本也叫做场景场景,是,是系统在某一时间内出系统在某一时间内出现的一系列事件现的一系列事件。用于描述用户。用于描述用户(外界系统外界系统)与与目标系统之间的一个或多个典型的交互过程,目标系统之间的一个或多个典型的交互过程,以便准确把握目标系统的行为。以便准确把握目标系统的行为。事件发事件发送者接收者参数送者接收者参数基本类型:基本类型:正常情况脚本;正常情况脚
32、本;特殊情况脚本特殊情况脚本(输入输入 输出取边界值时输出取边界值时)异常情况脚本异常情况脚本(应允许用户应允许用户异常中止异常中止或或取消取消一个操作一个操作)第43页,本讲稿共50页一、编写脚本一、编写脚本示例:示例:ATMATMATM系统的正常情况脚本 ATM请储户插卡;储户插入一张现金兑换卡。ATM接受该卡并读它上面的分行代码和卡号。ATM要求储户输入密码;储户输入自己的密码“1234”等数字。ATM请求总行验证卡号和密码;总行要求“39”号分行核对储户密码,然后通知ATM说这张卡有效。ATM要求储户选择事务类型(取款、转帐、查询等);储户选择“取款”。ATM要求储户输入取款额;储户输
33、入“880”。ATM确认取款额在预先规定的限额内,然后要求总行处理这个事务;总行 把请求转给分行,该分行成功地处理完这项事务并返回该帐户的新余额。ATM吐出现金并请储户拿走这些现金;储户拿走现金。ATM问储户是否继续这项事务;储户回答“不”。ATM打印帐单,退出现金兑换卡,请储户拿走它们;储户取走帐单和卡。ATM请储户插卡第44页,本讲稿共50页一、编写脚本一、编写脚本示例:示例:ATMATMATM系统的异常情况脚本 ATM请储户插卡;储户插入一张现金兑换卡。ATM接受该卡并读它上面的分行代码和卡号。ATM要求储户输入密码;储户误输入“8888”。ATM请求总行验证卡号和密码;总行要求“39”
34、号分行核对储户密码,然后通知ATM拒绝这张卡。ATM显示“密码错”,并请储户重新输入密码;储户输入“1234”;ATM请总行验证后知此次输入的密码正确。ATM要求储户选择事务类型(取款、转帐、查询等);储户选择“取款”。ATM要求储户输入取款额;储户改变主意不想取款了,敲“取消”键。ATM退出现金兑换卡,请储户拿走它;储户取走他的卡。ATM请储户插卡第45页,本讲稿共50页二、二、设想用想用户界面界面画事件跟踪图画事件跟踪图(event tracing diagram)EventActivatorReceiverTimeLine每个脚本对每个脚本对应一张图应一张图设想用户界面设想用户界面(us
35、er interface)rapid prototype.三、画事件跟踪图第46页,本讲稿共50页要求输入取款额插 卡要求密码输入密码请求验证帐户请求分行验证帐户帐户有效帐户有效要求事务类型输入类型输入取款额请求处理事务请求处理分行事务分行事务成功事务成功吐出现金请求拿走现金拿走现金请求继续此事务结 束印帐单退 卡请求拿走卡拿走卡显示主屏幕储户ATM总行分行ATM系统的正常情况脚本的ETD第47页,本讲稿共50页四、画状四、画状态图(event flow diagram)从ETD出发:Event 2Event 1ActionStatusClass-&-ObjectEvent 1Status d
36、o:Action Event 2每个具有交互行为的每个具有交互行为的 class-&-object 对应一张图。对应一张图。注:注:一个一个event 若缺少若缺少activator 或或 receiver,而对应,而对应 status 又不是在起点又不是在起点终点,则发生错误。终点,则发生错误。画状态图时应考虑画状态图时应考虑所有的所有的事件跟踪图脚本,包括事件跟踪图脚本,包括异常处理。异常处理。第48页,本讲稿共50页例:例:ATM类的类的EFD插卡(可读)主 屏 do:显示主屏幕 等待网络响应中 断 do:显示取消信息事务成功帐户有效do:要求密码do:验证帐户do:要求类型不可读的卡
37、do:显示不可读卡信息 退 卡 do:退卡;请求拿走卡取 消 do:显示取消信息 do:要求金额结 束 do:打印帐单 do:显示无效帐户信息 do:请求继续do:吐出现金;请求拿走现金do:处理事务do:失败信息网络响应密码错输入密码插卡(不可读)拿走卡取消中止取消拿走现金继续事务失败取消等待5秒钟输入金额输入类型取消取消无效帐户第49页,本讲稿共50页88 本章重点本章重点1 1)掌握掌握OOAOOA的主要任务和相关概念。的主要任务和相关概念。2 2)掌握掌握OOAOOA的方法和工作过程。的方法和工作过程。3 3)掌握掌握对象模型、动态模型与功能模型的建对象模型、动态模型与功能模型的建立方法。具备对小型的系统进行面向对象分析立方法。具备对小型的系统进行面向对象分析的能力。的能力。第50页,本讲稿共50页