ATM系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
ATM系统
1、问题陈述
ATM(Auto Trade Machine)自动出纳机业务是银行网络系统的重要组成部分,包括人工出纳和分行共享的自动出纳机;各分理处用自己的计算机处理业务(保存账户、处理事务等);各分处理与出纳站通过网络通信;出纳站录入账户和事物数据;自动出纳机与分行计算机通信;自动出纳机与用户接口,接受现金卡,发放现金,打印数据;分行计算机与拨款分处理结账。
要求系统正确处理同一账户的并发访问;网络费用平均摊派给各分理处。
图1给出了银行网络系统的示意图:。
图1 银行网络系统示意图
2、系统需求分析
ATM系统包括软件和硬件控制的部分,因此了解外部设备是如何协调工作的是整个建模的基础。
ATM取款机的业务大致分为4个部分:查询余额、取款、存款和更改密码。
根据具体的业务为出发点对系统进行建模,一个功能完整的ATM必须包括以下的几个模块:
①读卡机模块。
在这个功能模块中,允许客户将银行卡插入读卡机,读卡机识别卡的种类并在显示器上提示输入密码。
②输入模块。
在该功能模块中,客户可以输入密码和取款金额,并选择要完成的事务,痛过在键盘上只设置数字键和选择键,目的是方便客户使用,在该功能模块中,需要客户的交互。
③IC认证模块。
这个功能模块主要用于鉴别卡的真伪。
基于IC卡的安全授权系统,要求从技术上严格保证卡的唯一性与防伪性,使基于数字化形式的电子政务和电子商务安全运营,保证网络系统的安全。
④显示模块。
在该功能模块中,显示一切与客户有关的信息,包括客户交互时所需的提示信息和确认信息。
⑤吐钱机模块。
该功能模块的功能是按照客户的需求,选择合适面值的钞票给客户,这是比较关键的一步。
⑥打印报表模块。
该功能模块提供给客户一张取款凭据,客户可以选择是否
打印。
打印的主要信息是卡号和金额等。
⑦监听器模块。
该功能模块的设置,是为防止意外事件产生,设置了监控的摄像头,以保证户外交易的安全性,银行有权调查取款记录。
ATM系统功能需求如图2所示:
图2 ATM系统功能需求
3、建立系统用例模型
(1)角色的确定
首先考察ATM系统需要为那些人服务,可有如下角色:
①客户使用ATM系统进行现金交易;
②银行有关人员更改ATM的设置,放置现金维护机器等;
③信用系统作为外部的角色参与整个交易的过程。
ATM作为一个独立的系统,与客户、银行人员和信用系统这3个角色产生交互,最终确定以下角色:客户;银行职员;信用系统。
(2)用例是由角色驱动的,基于这样的考虑,ATM系统根据业务流程大致可以分为以下的几个用例:
①与客户相关的用例:客户转账;客户查询余额;客户存钱;客户通过信用系统付款;客户取钱;客户修改密码。
②与银行人员相关的用例:银行人员改变密码;银行人员维护ATM硬件;银行人员为ATM添加现金。
③与信用系统相关的用例:信用启动来自客户的付款。
(3)建立系统用例图
如图3所示。
图3 系统用例图
4.建立系统动态模型
动态类型包括活动图、时序图和写作图等。
这是UML图是对系统动态特性的描述。
活动图展示了系统中的功能流,可以在业务模型中显示业务工作流;可以在收集需求时显示一个使用案例的事件流。
活动图可以分为垂直泳道,每个泳道表示工作流中的不同角色。
通过不同泳道中活动之间的过度,可以了解角色间的通信流程。
1)存款
2)查询余额
3)修改密码
4)转账
5)付款
6)取款
5、建立系统类模型
(1)系统包图
在定义具体的类之前,现在宏观的角度上将整个系统分割成多个独立的包。
此处把整个ATM系统分成硬件和逻辑两块(硬件包,逻辑包),分别控制不同的应用。
(2)类图
类图是建立各个类模型的基础。
图4和图5分别描述了逻辑包、硬件包中的类图。
在图4中,描述了Account(账户)和Databasa Connector(数据库连接)两个类之间的关系。
在Account 类中,有3个属性(密码,卡号,余额),4个方法(开户,取款,付款,查询余额);在Datebase Connector类中有2个属性和2个方法。
从Account指向Datebase Connector 的箭头,说明了Account类要发消息给Database Connector类,请求得到消息。
当用户名和密码经过验证后,就可以访问数据库了。
在硬件包内,有4个类,其中Keyboard(键盘)类要发送消息来传递客户发出的指令,例如客户输入的密码、选择存钱还是取钱等操作。
类Cash Dispenser(吐钱机)和Card Reader(读卡机)都跟逻辑包中的Account 类有联系,但彼此之间没有消息联系。
在这个包内是相对独立的。
Card Reader 类的属性是卡号和银行代号,有4个方法,接受、拒绝、读卡和吞卡。
Cash Dispenper类的属性只有Surplus(金额),方法有提供现金、收回现金、提供收据等。
ATM Screen ATM显示屏有提示、接受输入。
- - - - - - -
图四. 逻辑报内的类图
图五 硬件包内的类图
将逻辑包与硬件包中的类合起来,可建立系统类图,如下图6,共有6个类,其中Account 类和其他4个都有关联
Account PIN
AccountNumber
Banlance
Open()
WithdrawFunds() DeductFunds() VerifyFunds()→ DatabaseConnector UserName
Password Connect() Disconnect()
图六系统类图。