ATM自动取款机系统概述

上传人:wan****21 文档编号:159294260 上传时间:2022-10-08 格式:DOC 页数:16 大小:174.50KB
收藏 版权申诉 举报 下载
ATM自动取款机系统概述_第1页
第1页 / 共16页
ATM自动取款机系统概述_第2页
第2页 / 共16页
ATM自动取款机系统概述_第3页
第3页 / 共16页
资源描述:

《ATM自动取款机系统概述》由会员分享,可在线阅读,更多相关《ATM自动取款机系统概述(16页珍藏版)》请在装配图网上搜索。

1、ATM自动取款机系统概述11.1 ATM自动取款机系统概述ATM自动取款机是由计算机控制的持卡人自我服务型的金融专用设备。本节主要简单介绍ATM自动取款机系统及其开发流程。 ATM自动取款机简介ATM是英文Automatic Teller Machine的缩写,即自动取款机的意识,图11-1是一个ATM自动取款机的示意图。ATM是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务。在ATM自动取款机上也可以进行账户查询和改密的业务。作为自助式金融服务终端,除了提供金融业务功能之外,ATM自动取款机还具有维护、测试、事件报告、监控和管理等多种功

2、能。 ATM自动取款机简介ATM是英文Automatic Teller Machine的缩写,即自动取款机的意识,图11-1是一个ATM自动取款机的示意图。ATM是最普遍的自助银行设备,可以提供最基本的银行服务之一,即出钞交易,有些全功能的产品还可以提供信封存款业务。在ATM自动取款机上也可以进行账户查询和改密的业务。作为自助式金融服务终端,除了提供金融业务功能之外,ATM自动取款机还具有维护、测试、事件报告、监控和管理等多种功能。 ATM自动取款机的开发流程ATM自动取款机系统的开发流程遵循实时系统的统一开发过程,主要生命周期包括系统分析、概要设计、详细设计和实现与测试,采用的软件开发方法为

3、迭代式。开发流程详细说明如下。l 系统分析。主要标识系统涉及的用例,以及为每个用例创建的事件流。而且,还需要定义初始功能测试用例,作为检查最后实现是否正确和完备的工具。系统分析还需要显示用例隐含的类,利用分析类图进行文档化处理。l 概要设计。使用CRC卡,定义每个类的职责。首先通过全局类图定义设计的静态结构,然后定义设计的动态结构,使用状态图定义主要控制类的动态行为,为主要用例创建交互图。l 详细设计。包括为每个类定义属性和操作,利用包图对相关类进行组织。l 代码生成。利用代码生成工具将设计转换为Java代码,并对代码进行详细处理,编写辅助代码,完成系统实现,并能够对设计进行模拟,能够作为Ap

4、plet运行,能够在浏览器中查看可执行版本。需要注意的是,本实例采用实时Java作为最后的实现语言,创建了一个ATM自动取款机的模拟程序。模拟真实ATM机的行为,还需要JDK的支持。 ATM自动取款机系统初始需求描述下面是一个ATM自动取款机系统初始需求描述示例,供读者参考。“ATM自动取款机系统初始需求规格说明书”1引言1.1 目的本文档描述了自动取款机系统的软件需求,支持ATM的设计人员、开发人员和维护人员。1.2 范围ATM的功能要求支持计算机银行网。1.3 概述文档剩余部分组织如下:本节后续部分将给出一些重要术语的定义;第2部分将包含对ATM的一些基本描述;第部分表示特定的功能需求、外

5、部接口和性能需求。1.4 定义l 账号。在银行中,事务应用的单个账号。账号可以为多种类型,但是至少包括支票和存款。每个顾客可以拥有多个账号。l ATM。一个工作站终端,使得顾客能够使用现金卡在ATM上进行自己的事务处理。ATM同顾客进行交互,收集事务信息,并发送事务信息到中心计算机,由中心计算机确认和处理信息之后,将现金通过ATM提供给顾客。l 银行。一个金融机构,负责保存顾客的账号信息,执行授权卡通过ATM网访问账号。l 银行计算机。银行拥有的计算机,同ATM网和银行自己的现金工作站进行交互。银行可以拥有自己的内部计算机网处理账号,但是我们只关心同网络进行交互的计算机。l 现金卡。每张卡提供

6、给一个银行客户,授权客户可以使用ATM机访问自己的账号。每张卡包含一个银行代码和一个卡号,银行代码根据信用卡的国际标准进行编码,卡号确定卡能够访问的账户。一张卡不能访问客户的所有账户。每张卡只能有一个持卡人,但是多个复本可能存在,所以必须考虑从不同的ATM机同时使用相同卡的行为。l 客户。拥有银行的一个或者多个账号的人。客户可以包括一个人或者多个人,或者是公司。相同的人,拥有不同银行的账号被认为是不同的客户。11.2 ATM自动取款机系统的初始模型的创建在Rational Rose RealTime中,创建ATM自动取款机系统模型的第1步是创建初始模型,其操作步骤如下。(1)启动Rationa

7、l Rose RealTime,在“Create New Model”对话框中,选择“RTJava”选项,这是因为ATM自动控制系统采用实时Java实现,需要导入Java框架。然后单击“Open”按钮,如图11-4所示。图11-4 定义模型框架(2)Rational Rose RealTime将在工具集中初始化一个空的模型,标题将显示为“Rational Rose RealTime-(Untitled)”,表示这是一个新模型,还没有保存到磁盘中。(3)保存所创建的模型,并命名为“ATM”,如图11-5所示。这样就完成了初始模型的创建操作,下面将介绍如何创建其他UML模型。11.4 ATM自动取

8、款机系统的概要设计明确需求之后,就需要开始对系统进行概要设计。概要设计的主要输出是概要设计说明书,但在此并不介绍如何编写ATM自动取款机系统的概要设计说明书,而是分析如何基于面向对象的思想、UML和Rational Rose RealTime执行系统的概要设计。 分析初始类模型通过对ATM自动取款机系统的用例模型进行分析,可以提取以下Capsule和类。l 自动取款机Capsule:ATM,由以下Capsule组成。 操作面板:OperatorPanel。 读卡机:CardReader。 顾客面板:CustomerConsole。 同银行的网络连接:NetworkToBank。 吐钱机:Cas

9、hDispenser。 现金接收器:EnvelopeAcceptor。 收据打印机:ReceiptPrinter。l 对应于用例的Capsule。 会话类:Session。 事务类(抽象类,复杂公共特性,支持对特定事务类型的继承):Transaction。l ATM信用卡类:Card。l ATM机器维护的事务日志Capsule:Log。基于用例分析和上述提取的Capsule和类,可以创建以下初始分析类图,以显示类同参与者及类图之间的关系,如图11-17所示。图11-17 初始分析类图 创建ATM的CRC卡CRC(Class-Responsibility-Collaborator)卡建模是一种简

10、单且有效的面向对象的分析技术。在一个实时系统开发项目中,包括用户、系统分析员和开发者,在建模和设计过程中,经常应用CRC卡建模,使整个开发团队普遍的理解形成一致。CRC卡由类(Class)、职责(Responsibility)和协作(Collaborator)3部分组成。类代表许多类似的对象。而对象是系统模型化中关注的事物。对象可以是人、地方、事情或任何对系统有影响的概念。类名一般列在CRC卡的顶部。职责是类需要知道或需要做的任何事物。这些职责是类自身所具备的知识,或类在执行时所需要的知识。协作是指为获取消息或协助执行活动的其他类。在特定情形下,与指定的类按一个设想共同完成同一个(或许多)步骤

11、。协作的类名在CRC卡的右边排列。在此,主要为以下Capsule和类定义CRC卡。ATM CRC卡:如表11-2所示,它是ATM自动取款机的顶层类,用于实现ATM操作的业务逻辑。表11-2 ATM CRC卡ATM当开关打开时,启动系统当开关关闭时,关闭系统当顾客插入信用卡时,开始一个新的会话提供对Session和Transaction构件的访问能力OperatorPanelCashDispenserNetworkToBankCustomerConsoleSessionl CardReader CRC卡:如表11-3所示,用于读取现金卡的信息。表11-3 CardReader CRC卡CardR

12、eader告诉ATM信用卡什么时候插入的从卡上读取信息弹出信用卡保存信用卡ATMCardl CashDispenser CRC卡:如表11-4所示,该类用于处理弹出现金操作的业务逻辑。表11-4 CashDispenser CRC卡CashDispenser跟踪信用卡,采用初始金额进行初始化报告是否有足够的金额吐钱Logl CustomerConsole CRC卡:如表11-5所示,该类用于支持用户控制台操作。表11-5 CustomerConsole CRC卡CustomerConsole显示消息显示提示信息,从键盘接收口令显示提示信息和菜单,从键盘接收一个选项显示提示信息,从键盘接收输入的

13、金额数量对用户按下的取消键作出响应无l EnvelopeAcceptor CRC卡:如表11-6所示,该类用于处理现金接收器的业务逻辑。表11-6 EnvelopeAcceptor CRC卡EnvelopeAcceptor从顾客接收现金Logl Log CRC卡:如表11-7所示,用于记录操作日值。表11-7 Log CRC卡Log记录发送到银行的消息记录从银行接收到的消息记录吐的现金数记录从顾客接收的现金数无l NetworkToBank CRC卡:如表11-8所示,用于支持ATM同银行的连接。表11-8 NetworkToBank CRC卡NetworkToBank在ATM机启动时初始化同

14、银行的连接向银行发送消息,等待响应在系统关闭时终止同银行的连接MessageLogBalancesStatusl OperatorPanel CRC卡:如表11-9所示,用于处理操作面板的业务逻辑。表11-9 OperatorPanel CRC卡OperatorPanel通知ATM将状态修改为开关状态允许操作员定义初始现金的数量ATMl ReceiptPrinter CRC卡:如表11-10所示,用于支持收据打印。表11-10 ReceiptPrinter CRC卡ReceiptPrinter打印收据Receiptl Session CRC卡:如表11-11所示,用于支持用户会话的业务逻辑。表

15、11-11 Session CRC卡Session执行会话用例如果顾客重新输入口令,则更新口令值ATMCardReader CardCustomerConsole Transactionl Transaction CRC卡:如表11-12所示,用于支持用户事务操作的业务逻辑。表11-12 Transaction CRC卡(续表)Transaction允许顾客选择事务类型执行事务用例执行非法口令扩展用例ATMCustomerConsole Withdrawal Deposit Transfer Inquiry ATMCustomerConsole Withdrawal Deposit Trans

16、fer Inquiry Message NetworkToBank Receipt ReceiptPrinterCustomerConsole Session CardReaderl Withdrawal CRC卡:如表11-13所示,用于处理用户取款事务的业务逻辑。表11-13 Withdrawal CRC卡Withdrawal执行取款事务用例相关操作CustomerConsole CashDispenser Message Receiptl Deposit CRC卡:如表11-14所示,用于处理用户存款事务的业务逻辑。表11-14 Deposit CRC卡Deposit执行存款事务用例相关

17、操作CustomerConsole Message EnvelopeAcceptor Receiptl Transfer CRC卡:如表11-15所示,用于处理用户转账的业务逻辑。表11-15 Transfer CRC卡Transfer执行转账事务用例相关操作CustomerConsole Message Receiptl Inquiry CRC卡:如表11-16所示,用于执行账户查询的业务逻辑。表11-16 Inquiry CRC卡Inquiry执行查询事务用例相关操作CustomerConsole Message Receiptl Balances CRC卡:如表11-17所示,用于存储账

18、户信息的类。表11-17 Balances CRC卡Balances表示银行返回的账户余额信息无l Card CRC卡:如表11-18所示,用于处理现金卡信息的类。表11-18 Card CRC卡Card表示顾客ATM卡的编码信息无l Message CRC卡:如表11-19所示,用于处理操作消息的类。表11-19 Message CRC卡Message表示在网络上发送到银行的信息无l Receipt CRC卡:如表11-20所示,用于处理收据的类。表11-20 Receipt CRC卡Receipt表示在收据上打印的信息无l Status CRC卡:如表11-21所示,用于处理事务状态的类。

19、表11-21 Status CRC卡Status表示银行返回的事务状态信息无11.5 ATM自动取款机系统的详细设计与实现 详细设计详细设计的一个主要任务是为类图中的类添加属性和方法。在ATM自动取款机系统中,需要明确以下内容。l ATM类是一个活动类,也就是说,ATM对象具有自己的线程。l 使用特定的信号初始化计算。l Transaction类层次包含抽象类Transaction和4个具体的子类(Withdrawal,Deposit,Transfer和Inquiry)。l Receipt类是一个抽象类,每种事务类型的completeTransaction()方法创建一个实例,包含相关的事务信

20、息。l Status类是一个抽象类。NetworkToBank类的Send()方法构造一个具体的实例,包含发送到银行的相关信息。表11-22至表11-43是ATM自动取款机系统的相关类的详细设计方法。表11-22 ATM属 性方 法- id: int + ATM(id: int, place: String, bankName: String, bankAddress: InetAddress) (续表)属 性方 法- place: String- bankName: String - bankAddress: InetAddress - cardReader: CardReader - ca

21、shDispenser: CashDispenser - customerConsole: CustomerConsole - envelopeAcceptor: EnvelopeAcceptor - log: Log - networkToBank: NetworkToBank - operatorPanel: OperatorPanel - receiptPrinter: ReceiptPrinter - state: int - switchOn: boolean - cardInserted: boolean - OFF_STATE: final int - IDLE_STATE: f

22、inal int - SERVING_CUSTOMER_STATE: final int+ run()+ switchOn() + switchOff + cardInserted() + getID(): int + getPlace(): String + getBankName(): String + getCardReader(): CardReader + getCashDispenser(): CashDispenser + getCustomerConsole(): CustomerConsole + getEnvelopeAcceptor(): EnvelopeAcceptor

23、 + getLog(): Log + getNetworkToBank(): NetworkToBank + getOperatorPanel(): OperatorPanel + getReceiptPrinter(): ReceiptPrinter - performStartup() - performShutdown()表11-23 CardReader属 性方 法- atm: ATM+ CardReader(atm: ATM) + readCard(): Card + ejectCard() + retainCard()表11-24 CashDispenser属 性方 法- atm:

24、 ATM- log: Log - cashOnHand: Money+ CashDispenser(log: Log) + setInitialCash(initialCash: Money) + checkCashOnHand(amount: Money): boolean + dispenseCash(amount: Money)表11-25 CustomerConsole属 性方 法+ CustomerConsole() + display(message: String) + readPIN(prompt: String): int throws Cancelled + readMen

25、uChoice(prompt: String, menu: String ): int throws Cancelled + readAmount(prompt: String): Money throws Cancelled表11-26 EnvelopeAcceptor属 性方 法- log: Log+ EnvelopeAcceptor(log: Log) + acceptEnvelope() throws Cancelled表11-27 Log属 性方 法+ Log() + logSend(message: Message) + logResponse(status: Status) +

26、logCashDispensed(amount: Money) + logEnvelopeAccepted()表11-28 NetworkToBank属 性方 法- log: Log - bankAddress: InetAddress+ NetworkToBank(log: Log, bankAddress: InetAddress) + openConnection() + closeConnection() + sendMessage(message: Message, out balances: Balances): Status表11-29 OperatorPanel属 性方 法-

27、atm: ATM+ OperatorPanel(atm: ATM) + getInitialCash(): Money表11-30 ReceiptPrinter属 性方 法+ ReceiptPrinter() + printReceipt(receipt: Receipt)表11-31 Session属 性方 法- atm: ATM- atm: ATM - pin: int - state: int - READING_CARD_STATE: final int - READING_PIN_STATE: final int - CHOOSING_TRANSACTION_STATE: final

28、 int -PERFORMING_TRANSACTION_STATE: final int - EJECTING_CARD_STATE: final int - FINAL_STATE: final int+ Session(atm: ATM) + performSession() + setPIN(int pin)表11-32 Transaction属 性方 法# atm: ATM # session: Session # card: Card # pin: int # serialNumber: int # message: Message # balances: Balances - T

29、RANSACTION_TYPES_MENU: final String - nextSerialNumber: int - state: int - GETTING_SPECIFICS_STATE: final int - SENDING_TO_BANK_STATE: final int - INVALID_PIN_STATE: final int - COMPLETING_TRANSACTION_STATE: final int - PRINTING_RECEIPT_STATE: final int - ASKING_DO_ANOTHER_STATE: final int# Transact

30、ion(atm: ATM, session: Session, card: Card, pin: int) + makeTransaction(atm: ATM, session: Session, card: Card, pin: int): Transaction throws Cancelled + performTransaction(): boolean throws CardRetained + performInvalidPinExtension(): Status throws Cancelled, CardRetained + getSerialNumber(): int #

31、 getSpecificsFromCustomer(): Message throws Cancelled # completeTransaction(): Receipt throws Cancelled表11-33 Withdrawal属 性方 法- from: int - amount: Money+ Withdrawal(atm: ATM, session: Session, card: Card, pin: int) # getSpecificsFromCustomer(): Message throws Cancelled # completeTransaction(): Rece

32、ipt 表11-34 Deposit属 性方 法- to: int - amount: Money+ Deposit(atm: ATM, session: Session, card: Card, pin: int) # getSpecificsFromCustomer(): Message throws Cancelled # completeTransaction(): Receipt throws Cancelled 表11-35 Transfer属 性方 法- from: int - to: int - amount: Money+ Transfer(atm: ATM, session

33、: Session, card: Card, pin: int) # getSpecificsFromCustomer(): Message throws Cancelled # completeTransaction(): Receipt表11-36 Inquiry属 性方 法- from: int+ Inquiry(atm: ATM, session: Session, card: Card, pin: int) # getSpecificsFromCustomer(): Message throws Cancelled # completeTransaction(): Receipt表1

34、1-37 AccountInformation属 性方 法+ ACCOUNT_NAMES: final String + ACCOUNT_ABBREVIATIONS: final String 表11-38 Balances属 性方 法- total: Money - available: Money+ Balances() + setBalances(total: Money, available: Money) + getTotal(): Money + getAvailable(): Money表11-39 Card属 性方 法- number: int+ Card(number: in

35、t) + getNumber(): int表11-40 Message属 性方 法+ WITHDRAWAL: final int + INITIATE_DEPOSIT: final int + COMPLETE_DEPOSIT: final int + TRANSFER: final int + INQUIRY: final int - messageCode: int - card: Card - pin: int - serialNumber: int - fromAccount: int - toAccount: int - amount: int+ Message(messageCod

36、e: int, cardNumber: Card, pin: int, serialNumber: int, fromAccount: int, toAccount: int, amount: Money) + toString(): String + setPIN(pin: int) + getMessageCode(): int + getCard(): Card + getPIN(): int + getSerialNumber(): int + getFromAccount(): int + getToAccount(): int + getAmount(): Money表11-41

37、Money属 性方 法- cents: long+ Money(dollars: int) + Money(dollars: int, cents: int) + Money(toCopy: Money) + toString(): String + add(amountToAdd: Money) + subtract(amountToSubtract: Money) + lessEqual(compareTo: Money): boolean表11-42 Receipt属 性方 法- headingPortion: String # detailsPortion(): String - ba

38、lancesPortion: String # Receipt(atm: ATM, card: Card, transaction: Transaction, balances: Balances) + getLines(): Enumeration表11-43 Status属 性方 法+ toString(): String + isSuccess(): boolean + isInvalidPIN(): boolean + getMessage(): String11.6 ATM自动取款机系统模拟为了模拟ATM自动取款机系统,这里创建了一个HTML表单,命名为“Executable.html”,其HTML代码如下,读者可以参考本书附带的源代码。 Executable  If you see this message, you dont have a Java-enabled browser. Sorry!在浏览器中运行时的模拟示意图如图11-32所示。图11-32 模拟示意图

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!