《案例研究ATM自动取款机》由会员分享,可在线阅读,更多相关《案例研究ATM自动取款机(35页珍藏版)》请在金锄头文库上搜索。
1、 第第1414章章面向对象分析与设计案例面向对象分析与设计案例-ATM-ATM2021/8/21BruceATM系统系统ATM ATM 系统系统图图 1 ATM系统系统储户储户ATM中央计算机中央计算机分行计算机分行计算机分行计算机分行计算机 账户账户 储户储户柜员柜员储户储户 ATM 中央中央 计算机计算机 分行分行 计算机计算机 分行分行 计算机计算机 账户账户 账户账户 柜员柜员 终端终端 储户储户柜柜员员 账户账户 账户账户 ATM ATM2021/8/22Bruce1. 建立对象模型建立对象模型 问题描述问题描述 ATMATM问题陈述问题陈述: 某某银银行行开开发发一一个个自自动动取
2、取款款机机系系统统,其其组组成成:自自动动取取款款机机、中中央央计计算算机机、分分行行计计算算机机、柜柜员员终终端端组组成的网络系统。成的网络系统。 ATM ATM 和和中中央央计计算算机机由由中中行行投投资资购购买买。中中行行拥拥有有多台多台ATMATM, , 分别设在全市各个主要街道上。分别设在全市各个主要街道上。 分行负责提供分行计算机和柜员终端。分行负责提供分行计算机和柜员终端。 柜员终端设在分行营业厅及分行下属的各个储柜员终端设在分行营业厅及分行下属的各个储 蓄所内。该系统的软件开发成本由各个分行分摊。蓄所内。该系统的软件开发成本由各个分行分摊。 2021/8/23Bruce 银行柜
3、员使用柜员终端处理储户提交银行柜员使用柜员终端处理储户提交 的储蓄事务。的储蓄事务。 储户储户可以用现金或支票向自己拥有的某个账户内可以用现金或支票向自己拥有的某个账户内存款或开新账户。储户可以从自己的账户中取款,存款或开新账户。储户可以从自己的账户中取款,通常一个储户可能通常一个储户可能拥有拥有多个账户。多个账户。 柜员负责把储户提交的存款或取款事务输进柜员柜员负责把储户提交的存款或取款事务输进柜员终端,接收储户交来的现金或支票,或付给储户现终端,接收储户交来的现金或支票,或付给储户现金。金。 柜员终端与相应的分行计算机柜员终端与相应的分行计算机通信通信。分行计算机。分行计算机具体处理针对某
4、个账户的事务并且具体处理针对某个账户的事务并且维护维护账户。账户。 2021/8/24Bruce 拥有银行账户的储户有权申请领取现拥有银行账户的储户有权申请领取现 金兑换卡,使用现金兑换卡可以通过金兑换卡,使用现金兑换卡可以通过ATMATM 访问自己的账户。访问自己的账户。 目前,仅限于用现金兑换卡在目前,仅限于用现金兑换卡在ATMATM上提上提 取现金,或查询有关自己账户的信息(如取现金,或查询有关自己账户的信息(如 有没有余额)有没有余额), ,将来还要使用将来还要使用ATMATM办理转账、办理转账、 存款等事务。存款等事务。 现金兑换卡是一张磁卡,上面有分行现金兑换卡是一张磁卡,上面有分
5、行 代码和卡号。代码和卡号。 2021/8/25Bruce 分分行行代代码码唯唯一一标标识识总总行行下下属属的的一一个个分分行行. .卡号确定这张卡可以访问哪些账户。卡号确定这张卡可以访问哪些账户。 通通常常, ,一一张张卡卡可可以以访访问问储储户户的的若若干干个个账账户户,但是不一定能访问这个储户的全部账户。但是不一定能访问这个储户的全部账户。 每每张张现现金金兑兑换换卡卡仅仅属属于于一一个个储储户户所所有有,但但是用一张卡可能有多个副本是用一张卡可能有多个副本 因此,因此, 必必须须考考虑虑同同时时在在若若干干台台ATMATM上上使使用用同同样样的的现现金金兑兑换换卡卡的的可可能能性性也也
6、就就是是说说系系统统应应当当处处理理并并发发的访问。的访问。2021/8/26Bruce 当用户把现金兑换卡插入当用户把现金兑换卡插入ATMATM之后,之后, ATM ATM 就与用户交互,以获取有关这次事务的信就与用户交互,以获取有关这次事务的信 息。并与中央计算机交换关于事务的信息。息。并与中央计算机交换关于事务的信息。 首先,首先, ATM ATM要求输入密码,接下来要求输入密码,接下来ATMATM 把从这张卡上读到的信息以及用户输入的密把从这张卡上读到的信息以及用户输入的密 码传给中央计算机,请求中央计算机核对这码传给中央计算机,请求中央计算机核对这 些信息并处理这些事务。些信息并处理
7、这些事务。 2021/8/27Bruce 中央计算机根据卡上的分行代码确定这次中央计算机根据卡上的分行代码确定这次事务与分行的对应关系,并且委托相应的分事务与分行的对应关系,并且委托相应的分行计算机验证用户密码。行计算机验证用户密码。 若用户输入的密码是正确的若用户输入的密码是正确的,ATM,ATM要求用户要求用户选择事务类型(取款、查询等)选择事务类型(取款、查询等), , 当用户选择取款时当用户选择取款时,ATM,ATM请求用户输入取请求用户输入取 款款额。额。 最后最后ATMATM从现金出口吐出现金,并且打印出从现金出口吐出现金,并且打印出账单交给用户。账单交给用户。 2021/8/28
8、Bruce建立对象模型的步骤建立对象模型的步骤: :. .确定类确定类&对象对象 . 确定属性建立实例连接确定属性建立实例连接. 确定结构确定结构. 确定主题确定主题. 确立服务建立消息连接确立服务建立消息连接2021/8/29Bruce1) 1) 确定类确定类&对象对象 找出候选的类找出候选的类&对象对象. .找名词(找名词(3434个个) 银行,总行,分行,系统,中央计算机,分行计算机,银行,总行,分行,系统,中央计算机,分行计算机, 街道,市,营业厅街道,市,营业厅, ,网络,储蓄所,软件,成本网络,储蓄所,软件,成本, ,信息信息, , 柜员终端,柜员,储户,事务,现金,现金兑换卡,柜
9、员终端,柜员,储户,事务,现金,现金兑换卡, 支票支票, ,账户,用户,余额,磁卡,副本账户,用户,余额,磁卡,副本, ,卡号,密码,卡号,密码, 类型,账单,取款额,自动取款机类型,账单,取款额,自动取款机, ,分行代码分行代码, ,(访问)(访问)2021/8/210Bruce筛选出正确的对象和类筛选出正确的对象和类u 冗余:冗余: 储户储户、用户、用户, , 现金兑换卡现金兑换卡、磁卡、副本、磁卡、副本u 无关:无关: 去掉:成本、市、街道、营业厅、储蓄所去掉:成本、市、街道、营业厅、储蓄所u 去掉模糊类、概括类去掉模糊类、概括类 银行指总行、分行银行指总行、分行; ;网络、系统、软件、
10、信息等网络、系统、软件、信息等 u 去掉非独立的类去掉非独立的类( (属性属性):):描述其他对象的属性描述其他对象的属性u 实现实现: :通信链路、事务日志通信链路、事务日志设计实现时考虑设计实现时考虑2021/8/211Bruce自动取款机(自动取款机(ATMATM)中央计算机中央计算机分行计算机分行计算机柜员终端柜员终端总行总行分行分行柜员柜员储户储户账户账户事务事务现金兑换卡现金兑换卡最后确定的对象:最后确定的对象:2021/8/212Bruce2) 2) 确定属性建立实例连接确定属性建立实例连接l属性属性: :描述对象静态特征的一个数据项描述对象静态特征的一个数据项. . 名词词组表
11、示属性、形容词表示枚名词词组表示属性、形容词表示枚 举的属性举的属性. . 注意注意l误把对象当作属性误把对象当作属性l在邮政目录中,在邮政目录中,“城市城市”是属性是属性l在人口普查中,在人口普查中,“城市城市”是对象是对象2021/8/213Brucel误把内部状态当成属性误把内部状态当成属性l构造一个构造一个“电话模型电话模型”时,时,“拨号拨号”是操是操作作l开发开发“电话自动记账电话自动记账”时,时,“拨号拨号”是类,是类,有属性(时间等)有属性(时间等)l不要把链属性误作为属性不要把链属性误作为属性l误把限定当属性误把限定当属性l是否存在不一致的对象是否存在不一致的对象2021/8
12、/214Bruce确定ATM对象的属性l “分行代码分行代码”是关联分行组成总行上的限定词是关联分行组成总行上的限定词l “卡号卡号”是分行发放现金兑换卡关联上的限定词是分行发放现金兑换卡关联上的限定词l “账号账号”是关联分行保管账户上的限定词是关联分行保管账户上的限定词l “雇员号雇员号”是分行雇用柜员上的限定词是分行雇用柜员上的限定词l “站号站号”是分行拥有柜员终端,柜员终端与分行是分行拥有柜员终端,柜员终端与分行 计算机通信及中央计算机计算机通信及中央计算机ATMATM通信等三个关联通信等三个关联 上的限定词上的限定词2021/8/215Bruce图图 2 ATM对象模型中的属性及实
13、例连接对象模型中的属性及实例连接 分分行行代代码码1+保管保管 1+1+1+拥有拥有1+修改修改1+输入输入1+修修改改1+1+1+组组成成通信通信通信通信1+拥有拥有1+通信通信 1+拥拥 有有1+输入输入 输入输入 授权授权 1+3拥拥 有有分分行行代代码码 站号站号柜员终端柜员终端 分行计算机分行计算机 站号站号雇员号雇员号 分行分行 分行名分行名 账号账号账户账户余额余额限额限额类型类型卡号卡号远程事务远程事务储户储户姓名姓名地址地址 站号站号 发放发放 总行总行 ATM 现有金额现有金额 付出金额付出金额 中央计算机中央计算机1+现金兑换卡现金兑换卡密码密码类型类型日期日期金额金额总
14、行名总行名柜员事务柜员事务类型日期类型日期金额金额 柜员柜员姓名姓名2021/8/216Bruce确定确定ATMATM的关联的关联直接提取动词短语得出的关联(直接提取动词短语得出的关联(1818个关联)个关联)v ATMATM、中央计算机、分行计算机、中央计算机、分行计算机、 柜员终端柜员终端组成组成网络。网络。v 总行总行有有 多台多台ATMATMvATMATM设在设在 主要街道上主要街道上v 分行分行提供提供 分行计算机、柜员终端分行计算机、柜员终端v柜员终端柜员终端设在设在 分行营业厅及储蓄所内分行营业厅及储蓄所内v分行分行分摊分摊 软件开发成本软件开发成本v 储户储户拥有拥有 账户账户
15、v 分行计算机分行计算机处理处理 针对账户的业务针对账户的业务 2021/8/217Bruce直接提取动词短语得出的关联直接提取动词短语得出的关联v 分行计算机分行计算机 维护维护 账户账户v柜员终端与分行计算机柜员终端与分行计算机 通信通信v柜员柜员 输入输入 针对账户的事务针对账户的事务vATMATM与中央计算机与中央计算机 交换交换 关于事务的信息关于事务的信息v中中央央计计算算机机 确确定定 事事务务与与分分析析的的对对应应关关系系v ATM ATM 读读 现金兑换卡现金兑换卡v ATMATM与用户与用户 交互交互v ATM ATM 吐出吐出 现金现金v ATM ATM 打印打印 账单
16、账单v 系统系统 处理处理 并发的访问并发的访问 2021/8/218Bruce 需求陈述中的隐含关系需求陈述中的隐含关系 总行由各行总行由各行 组成组成 分行分行 保管保管 账户账户 总行总行 拥有拥有 中央计算机中央计算机 系统系统 维护维护 事务日志事务日志 系统系统 提供提供 必要的安全性必要的安全性 储户储户 拥有拥有 现金兑换卡现金兑换卡 根据问题域、知识得出的关联根据问题域、知识得出的关联 现金兑换卡现金兑换卡 访问访问 账户账户 分行分行 雇用雇用 柜员柜员2021/8/219Bruce 已被删去类之间的关联已被删去类之间的关联 ATM ATM、中央计算机、分行计算机、柜员终端
17、组成网络、中央计算机、分行计算机、柜员终端组成网络; ; ATM ATM设在主要街道上设在主要街道上; ; 分行分摊软件开发成本分行分摊软件开发成本 系统提供必要的安全性系统提供必要的安全性; ; 系统维护事务日志系统维护事务日志 ATM ATM 吐出现金吐出现金; ATM; ATM打印账单打印账单; ; 柜员终端设在分行营业厅及储蓄所内柜员终端设在分行营业厅及储蓄所内. . 与问题无关的或在实现中要考虑的关联去掉与问题无关的或在实现中要考虑的关联去掉 分行计算系统处理并发的访问分行计算系统处理并发的访问 去掉不正确、不必要的关联去掉不正确、不必要的关联2021/8/220Brucel 发现一
18、般发现一般- -特殊结构特殊结构l 具有领域的分类知识具有领域的分类知识l 按常识考虑事物的分类按常识考虑事物的分类l 用一般用一般- -特殊关系去发现一般特殊关系去发现一般- -特殊特殊 结构结构l 考虑领域范围内的复用考虑领域范围内的复用3) 3) 确定结构确定结构 一般一般-特殊结构特殊结构 ( (分类结构分类结构) )2021/8/221Bruce发现整体部分结构 客观世界存在的整体部分关系客观世界存在的整体部分关系( (物理上的物理上的) ) 组织机构上下级关系组织机构上下级关系 事物的包容性事物的包容性 抽象事务和某个抽象方面抽象事务和某个抽象方面 具体事物和它的某个抽象方面具体事
19、物和它的某个抽象方面2021/8/222Bruce4) 4) 确定主题(确定主题(subject)subject) 图图 3 ATM 系统划分成三个主题系统划分成三个主题主主题题ATM 1+保保管1+1+拥有拥有1+修改修改1+输入输入1+修修改改1+1+1+1+雇用雇用1 主主题题总总行行 通信通信通信通信1+分行分行代码代码拥有拥有1+拥有拥有通信通信1+拥有拥有1+输入输入输入输入授权授权访访问问1+3拥拥有有333总行总行分行分行 中央中央计算机计算机ATM储户储户1+账户账户2现金现金兑换卡兑换卡远程事务远程事务柜员柜员柜员终端柜员终端柜员柜员事务事务 分行分行计算机计算机组成组成2
20、 主题主题 分行分行122021/8/223Bruce2. 建立动态模型l 编写脚本编写脚本 l 确定各个对象之间的事件确定各个对象之间的事件 l 构造事件追踪图(交互图)构造事件追踪图(交互图)l 构造状态图构造状态图l 添加活动和动作添加活动和动作l 验证一致性、完整性验证一致性、完整性建立顺序图、协作图、状态图、活动图建立顺序图、协作图、状态图、活动图步骤步骤: :2021/8/224Bruce1)TM系统正常情况下的脚本2021/8/225Bruce2) ATM系统异常情况下的脚本2021/8/226Bruce(1)(1) 顺序图顺序图 ( (交互图、事件追踪图、序列图)交互图、事件追
21、踪图、序列图) 展示对象之间的交互顺序,展示对象之间的交互顺序, 这些交互是指在场景或用例的事件流这些交互是指在场景或用例的事件流 中发生的。中发生的。2021/8/227Bruce图图 4 ATM系统正常情况下的对象交互系统正常情况下的对象交互2021/8/228Bruce图图 5 ATM 状态图中状态图中(2) ATM ATM 状态图状态图2021/8/229Brucel“总行类总行类”状态图状态图:图图 6 总行类状态图总行类状态图2021/8/230Brucel“分行类分行类”状态图状态图:图图 7 分行类状态图分行类状态图2021/8/231Bruce3. 功能模型l功能模型描述系统
22、的数据信息,系统中数据功能模型描述系统的数据信息,系统中数据之间的依赖关系,及有关的数据处理功能。之间的依赖关系,及有关的数据处理功能。l功能模型规定了对象模型中操作的意义,动功能模型规定了对象模型中操作的意义,动态模型中动作的意义。态模型中动作的意义。l功能模型是由多张数据流图功能模型是由多张数据流图DFDDFD组成的。组成的。l DFDDFD图中允许出现:图中允许出现: 输入、输出对象(矩形框)输入、输出对象(矩形框) 处理处理 数据流数据流 控制流控制流 数据存储数据存储2021/8/232BrucelATMATM系统的系统的DFDDFD图:图:图图 8 ATM系统的系统的DFD图图2021/8/233Bruce图图 9 ATM系统细化的系统细化的DFD图图2021/8/234Bruce部分资料从网络收集整理而来,供大家参考,感谢您的关注!