ATM取款机UMLUML建模实例全过程_第1页
ATM取款机UMLUML建模实例全过程_第2页
ATM取款机UMLUML建模实例全过程_第3页
ATM取款机UMLUML建模实例全过程_第4页
ATM取款机UMLUML建模实例全过程_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

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

文档简介

1、在我国十年前ATM(自动取款机)还是一个很新鲜的事物,现在在城市的大街小巷随处可见。我们在日常生活中也经常和ATM打交道。本章我们将以简化的 ATM系统为例将前面几章中学到的用例图、类图、顺序图、状态图、活动图及协作图知识运用到此例中。5.1用例图参与者"银行储户"和ATM机。简化后的ATM机仅有取款、存款及其余功能。其余功能不做详细说明*命图5.1自动取款机(ATM系统用例图银行储户在ATM机上完成取款、存款及其他业务。5.2类图图5.2所示的银行系统类图和图3.5是类似的,只是将工作人员换成了ATM整个银行系统包括了帐户库、银行储户库及ATM系统。许多单个的帐户组成了帐

2、户库。帐户具有帐户类型、帐户号、余额三个属性,均为private ,其类型分别为char, int , double。六个操作分另U为 setType、getType、getAccountNumbe、setAccountNumbe、caculateBalance 、getBalance,除 caculateBalance 为 protected 其余均为 public。setType设置帐户类型,返回类型为void,参数类型为char,输入帐户类型。getType获取帐户类型,返回类型为char,无参数。setAccountNumbe设置帐户号,返回类型为void,参数类型为int,输入帐户号

3、。getAccountNumbe获取帐户号,返回类型为int,无参数。caculateBalance计算余额,返回类型为void,参数为double,第一个参数为输入存取款数额,第二个参数为存款余额,既为输入也为输岀。getBalance 获取帐户余额,返回类型为double,无参数。许多银行储户组成了储户库。ATM系统包含了许多 ATM机。银行储户及 ATM机两个类包含哪些属性,哪些操作,它们的可见性及操作的返回类型、参数个数、参数类型从类图上都一目了然。更多的属性及操作都可以一一加上,使这个类图更详细更完整,从 而使参与项目的每个成员都能无歧义的明了整个设计的类的结构。同样对于一个真正的银

4、行系统,这个类图过于简单。比如帐户类 型我们可以先定义一个 abstract class,它包含一个帐户最基本的属性及操作。而有些操作先定义为abstract,如余额的计算。然后再继承这个 abstract class,我们可以有 saving account 和checking account 等等。不同的帐户有不同的余额计算方法,我们可以加上具体的算法。对于不同的帐户可能还有一些它特有的操作,我们也可以加上,比如saving account在存款达到多少时可以享受机票打折的优惠。通过类图不仅可以使设计者明确的表达自己的设计意图,也能帮组自己整理思路,充实及优化自己的 设计。谏41 : to

5、rt"irtlnch* tnc clii*ritT*ttJ : .luin+lrr<i*+Hm<Hii firrhrr r=±i-puuuninep jmt tKvtfliliMrr(in fr ?T : t-nh" r inoit &胡血“(): ThTyesy. cw图5.2银行系统类图5.3顺序图图5.3描述了顾客在ATM机上取款时信息的流动情况。以时间为顺序。因为仅是示例,所以整个过程是没有出现任何故障时的 流程,并且只画到了取款结束。通过这个图,我们可以看岀消息是如何在系统中不同对象之间进行交互。通过流程图我们可以很清楚地看到系统是如

6、何工作的,系统各部分之间的信息及控制是如何发送的,整个流程是否合理。流程图对我们的设计起到了很好的帮助作用。注意在本图没有一个生命线终端有一个"X",这是因为这个流程中还未遇到有对象生命结束。当有对象生命结束时需在对应的生命线终端画"X",表明这个对象在这时被销毁。首先银行储户将 ATM卡插入读卡机,读卡机将信息传给客户管理,客户管理提岀查询密码,显示部分将输入密码请求显示岀 来.因为这个顺序图较长,且很清晰,即便是初学者也很容易读懂,在此就不对本图做过多的解释。扛行骨户| JLr |牌户百痔1顷示豔傀茁耳占别谴率偉5酋満弃T战取由當WiA欢新请市“2d

7、-.條化越畝狐3T羯*碑*检衣出坯输人确认传谕确认伶言畋事會怨ft磚亠比乖琥认毋力的R杜也出眷由于殿砂Ife诵甫茁.禅护曲詞取抚舫*Tyeky. cur图5.3 ATM取款顺序图5.4状态图图5.4描述了顾客在ATM机上进行操作会经历的几种状态,及各种状态之间转换的条件。因为是简化了的例子,所以除了等待 顾客插入磁卡的起始状态和结束服务的终止状态,顾客会处于输入密码、选择服务类型、存款及取款四种状态。选曙存欲yeky. cwf图5.4 ATM状态图插入磁卡后进入输密码状态,当密码输入正确时进入选择服务类型状态,当输入密码不正确时,停留在原状态,但如果三次不 正确,服务结束。进入选择服务类型后根

8、据选择的不同,顾客可进入存款和取款状态。存、取款结束后,顾客既可以选择结束服务 到最终状态,也可以选择继续服务回到选择服务类型状态。通过状态图我们可以无歧义的了解各个活动角色是如何在不同状况下转换的,转换的条件是什么,是否会岀现死锁现象,是否 有条件没考虑周全,是否有状态无法达到。状态图可以帮助我们发现问题,并及时改正。5.5活动图图5.5参考了 Randy Miller 的A Hands-On Introduction for Developers一文,5.3图中的客户管理和事物管理对应于5.5图中的Bank,图5.3中的读卡机、显示、输入设备及点钞机对应于5.5图中的ATMMachina,

9、银行储户就是 Customer。初看活动图和顺序图表达的意义很接近。但我们可以注意到顺序图着重时间的顺序,而活动图侧重于各部分之间的相互制约,对于一些并 行的活动能够有效的表示出来。例如5.5图中fork和join处,我们可以很清楚的看到一些并行活动的存在。这个活动图以顾客插入卡为开始,以顾客取卡结束。我们可以看到活动图的重点虽然不在时间顺序,但我们同样可以得到时间 的信息。5.6协作图在第四章中我们知道协作图和顺序图是可以无信息损失的相互转换,只是它们的侧重点是不一样的。顺序图着重于对象间消息传递的时间顺序,协作图着重于表达对象之间的静态连接关系。图5.6将5.3图转换为协作图。1. 插入ATM卡2. 接受ATM卡3. 查询密码4. 显示输入密码请求5. 输入密码6. 密码传递7 请求确认密码合法性8确认密码合法性9询问服务类别10显示输入服务服务类别请求11 输入取款请求12取款请求13.询问取款数额14显示输入数额请求15输入取款数额16传递取款数额17. 询问取款数额确认18. 显示确认数额请求19. 输入确认20. 传递确认信息2

温馨提示

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

评论

0/150

提交评论