#ATM自动取款机系统概述Word格式.docx

上传人:b****5 文档编号:20570039 上传时间:2023-01-24 格式:DOCX 页数:21 大小:88.55KB
下载 相关 举报
#ATM自动取款机系统概述Word格式.docx_第1页
第1页 / 共21页
#ATM自动取款机系统概述Word格式.docx_第2页
第2页 / 共21页
#ATM自动取款机系统概述Word格式.docx_第3页
第3页 / 共21页
#ATM自动取款机系统概述Word格式.docx_第4页
第4页 / 共21页
#ATM自动取款机系统概述Word格式.docx_第5页
第5页 / 共21页
点击查看更多>>
下载资源
资源描述

#ATM自动取款机系统概述Word格式.docx

《#ATM自动取款机系统概述Word格式.docx》由会员分享,可在线阅读,更多相关《#ATM自动取款机系统概述Word格式.docx(21页珍藏版)》请在冰豆网上搜索。

#ATM自动取款机系统概述Word格式.docx

1.4 

定义

账号。

在银行中,事务使用的单个账号。

账号可以为多种类型,但是至少包括支票和存款。

每个顾客可以拥有多个账号。

ATM。

一个工作站终端,使得顾客能够使用现金卡在ATM上进行自己的事务处理。

ATM同顾客进行交互,收集事务信息,并发送事务信息到中心计算机,由中心计算机确认和处理信息之后,将现金通过ATM提供给顾客。

银行。

一个金融机构,负责保存顾客的账号信息,执行授权卡通过ATM网访问账号。

银行计算机。

银行拥有的计算机,同ATM网和银行自己的现金工作站进行交互。

银行可以拥有自己的内部计算机网处理账号,但是我们只关心同网络进行交互的计算机。

现金卡。

每张卡提供给一个银行客户,授权客户可以使用ATM机访问自己的账号。

每张卡包含一个银行代码和一个卡号,银行代码根据信用卡的国际标准进行编码,卡号确定卡能够访问的账户。

一张卡不能访问客户的所有账户。

每张卡只能有一个持卡人,但是多个复本可能存在,所以必须考虑从不同的ATM机同时使用相同卡的行为。

客户。

拥有银行的一个或者多个账号的人。

客户可以包括一个人或者多个人,或者是公司。

相同的人,拥有不同银行的账号被认为是不同的客户。

11.2 

ATM自动取款机系统的初始模型的创建

在RationalRoseRealTime中,创建ATM自动取款机系统模型的第1步是创建初始模型,其操作步骤如下。

(1)启动RationalRoseRealTime,在“CreateNewModel”对话框中,选择“RTJava”选项,这是因为ATM自动控制系统采用实时Java实现,需要导入Java框架。

然后单击“Open”按钮,如图11-4所示。

图11-4 

定义模型框架

(2)RationalRoseRealTime将在工具集中初始化一个空的模型,标题将显示为“RationalRoseRealTime-(Untitled)”,表示这是一个新模型,还没有保存到磁盘中。

(3)保存所创建的模型,并命名为“ATM”,如图11-5所示。

这样就完成了初始模型的创建操作,下面将介绍如何创建其他UML模型。

11.4 

ATM自动取款机系统的概要设计

明确需求之后,就需要开始对系统进行概要设计。

概要设计的主要输出是概要设计说明书,但在此并不介绍如何编写ATM自动取款机系统的概要设计说明书,而是分析如何基于面向对象的思想、UML和RationalRoseRealTime执行系统的概要设计。

11.4.1 

分析初始类模型

通过对ATM自动取款机系统的用例模型进行分析,可以提取以下Capsule和类。

自动取款机Capsule:

ATM,由以下Capsule组成。

Ø

 

操作面板:

OperatorPanel。

读卡机:

CardReader。

顾客面板:

CustomerConsole。

同银行的网络连接:

NetworkToBank。

吐钱机:

CashDispenser。

现金接收器:

EnvelopeAcceptor。

收据打印机:

ReceiptPrinter。

对应于用例的Capsule。

会话类:

Session。

事务类(抽象类,复杂公共特性,支持对特定事务类型的继承):

Transaction。

ATM信用卡类:

Card。

ATM机器维护的事务日志Capsule:

Log。

基于用例分析和上述提取的Capsule和类,可以创建以下初始分析类图,以显示类同参和者及类图之间的关系,如图11-17所示。

图11-17 

初始分析类图

11.4.2 

创建ATM的CRC卡

CRC(Class-Responsibility-Collaborator)卡建模是一种简单且有效的面向对象的分析技术。

在一个实时系统开发项目中,包括用户、系统分析员和开发者,在建模和设计过程中,经常使用CRC卡建模,使整个开发团队普遍的理解形成一致。

CRC卡由类(Class)、职责(Responsibility)和协作(Collaborator)3部分组成。

类代表许多类似的对象。

而对象是系统模型化中关注的事物。

对象可以是人、地方、事情或任何对系统有影响的概念。

类名一般列在CRC卡的顶部。

职责是类需要知道或需要做的任何事物。

这些职责是类自身所具备的知识,或类在执行时所需要的知识。

协作是指为获取消息或协助执行活动的其他类。

在特定情形下,和指定的类按一个设想共同完成同一个(或许多)步骤。

协作的类名在CRC卡的右边排列。

在此,主要为以下Capsule和类定义CRC卡。

ATMCRC卡:

如表11-2所示,它是ATM自动取款机的顶层类,用于实现ATM操作的业务逻辑。

表11-2 

ATMCRC卡

ATM

当开关打开时,启动系统

当开关关闭时,关闭系统

当顾客插入信用卡时,开始一个新的会话

提供对Session和Transaction构件的访问能力

OperatorPanel

CashDispenser

NetworkToBank

CustomerConsole

Session

CardReaderCRC卡:

如表11-3所示,用于读取现金卡的信息。

表11-3 

CardReaderCRC卡

CardReader

告诉ATM信用卡什么时候插入的

从卡上读取信息

弹出信用卡

保存信用卡

Card

CashDispenserCRC卡:

如表11-4所示,该类用于处理弹出现金操作的业务逻辑。

表11-4 

CashDispenserCRC卡

跟踪信用卡,采用初始金额进行初始化

报告是否有足够的金额

吐钱

Log

CustomerConsoleCRC卡:

如表11-5所示,该类用于支持用户控制台操作。

表11-5 

CustomerConsoleCRC卡

显示消息

显示提示信息,从键盘接收口令

显示提示信息和菜单,从键盘接收一个选项

显示提示信息,从键盘接收输入的金额数量

对用户按下的取消键作出响应

EnvelopeAcceptorCRC卡:

如表11-6所示,该类用于处理现金接收器的业务逻辑。

表11-6 

EnvelopeAcceptorCRC卡

EnvelopeAcceptor

从顾客接收现金

LogCRC卡:

如表11-7所示,用于记录操作日值。

表11-7 

LogCRC卡

记录发送到银行的消息

记录从银行接收到的消息

记录吐的现金数

记录从顾客接收的现金数

NetworkToBankCRC卡:

如表11-8所示,用于支持ATM同银行的连接。

表11-8 

NetworkToBankCRC卡

在ATM机启动时初始化同银行的连接

向银行发送消息,等待响应

在系统关闭时终止同银行的连接

Message

Balances

Status

OperatorPanelCRC卡:

如表11-9所示,用于处理操作面板的业务逻辑。

表11-9 

OperatorPanelCRC卡

通知ATM将状态修改为开关状态

允许操作员定义初始现金的数量

ReceiptPrinterCRC卡:

如表11-10所示,用于支持收据打印。

表11-10 

ReceiptPrinterCRC卡

ReceiptPrinter

打印收据

Receipt

SessionCRC卡:

如表11-11所示,用于支持用户会话的业务逻辑。

表11-11 

SessionCRC卡

执行会话用例

如果顾客重新输入口令,则更新口令值

CardReader

CustomerConsole

Transaction

TransactionCRC卡:

如表11-12所示,用于支持用户事务操作的业务逻辑。

表11-12 

TransactionCRC卡

(续表)

允许顾客选择事务类型

执行事务用例

执行非法口令扩展用例

Withdrawal

Deposit

Transfer

Inquiry

Message

NetworkToBank

Receipt

Session

WithdrawalCRC卡:

如表11-13所示,用于处理用户取款事务的业务逻辑。

表11-13 

WithdrawalCRC卡

Withdrawal

执行取款事务用例相关操作

CashDispenser

DepositCRC卡:

如表11-14所示,用于处理用户存款事务的业务逻辑。

表11-14 

DepositCRC卡

Deposit

执行存款事务用例相关操作

EnvelopeAcceptor

TransferCRC卡:

如表11-15所示,用于处理用户转账的业务逻辑。

表11-15 

TransferCRC卡

Transfer

执行转账事务用例相关操作

InquiryCRC卡:

如表11-16所示,用于执行账户查询的业务逻辑。

表11-16 

InquiryCRC卡

Inquiry

执行查询事务用例相关操作

BalancesCRC卡:

如表11-17所示,用于存储账户信息的类。

表11-17 

BalancesCRC卡

表示银行返回的账户余额信息

CardCRC卡:

如表11-18所示,用于处理现金卡信息的类。

表11-18 

CardCRC卡

表示顾客ATM卡的编码信息

MessageCRC卡:

如表11-19所示,用于处理操作消息的类。

表11-19 

MessageCRC卡

表示在网络上发送到银行的信息

ReceiptCRC卡:

如表11-20所示,用于处理收据的类。

表11-20 

ReceiptCRC卡

表示在收据上打印的信息

StatusCRC卡:

如表11-21所示,用于处理事务状态的类。

表11-21 

StatusCRC卡

表示银行返回的事务状态信息

11.5 

ATM自动取款机系统的详细设计和实现

11.5.1 

详细设计

详细设计的一个主要任务是为类图中的类添加属性和方法。

在ATM自动取款机系统中,需要明确以下内容。

ATM类是一个活动类,也就是说,ATM对象具有自己的线程。

使用特定的信号初始化计算。

Transaction类层次包含抽象类Transaction和4个具体的子类(Withdrawal,Deposit,Transfer和Inquiry)。

Receipt类是一个抽象类,每种事务类型的completeTransaction()方法创建一个实例,包含相关的事务信息。

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

-cashDispenser:

CashDispenser

-customerConsole:

CustomerConsole

-envelopeAcceptor:

EnvelopeAcceptor

-log:

Log

-networkToBank:

NetworkToBank

-operatorPanel:

OperatorPanel

-receiptPrinter:

ReceiptPrinter

-state:

-switchOn:

boolean

-cardInserted:

-OFF_STATE:

finalint

-IDLE_STATE:

-SERVING_CUSTOMER_STATE:

finalint

+run()

+switchOn()

+switchOff

+cardInserted()

+getID():

+getPlace():

+getBankName():

+getCardReader():

+getCashDispenser():

+getCustomerConsole():

+getEnvelopeAcceptor():

+getLog():

+getNetworkToBank():

+getOperatorPanel():

+getReceiptPrinter():

-performStartup()

-performShutdown()

表11-23 

CardReader

-atm:

+CardReader(atm:

ATM)

+readCard():

Card

+ejectCard()

+retainCard()

表11-24 

CashDispenser

-cashOnHand:

Money

+CashDispenser(log:

Log)

+setInitialCash(initialCash:

Money)

+checkCashOnHand(amount:

Money):

+dispenseCash(amount:

Money)

表11-25 

CustomerConsole

+CustomerConsole()

+display(message:

String)

+readPIN(prompt:

String):

intthrowsCancelled

+readMenuChoice(prompt:

String,menu:

String[]):

+readAmount(prompt:

MoneythrowsCancelled

表11-26 

EnvelopeAcceptor

Log

+EnvelopeAcceptor(log:

+acceptEnvelope()throwsCancelled

表11-27 

+Log()

+logSend(message:

Message)

+logResponse(status:

Status)

+logCashDispensed(amount:

+logEnvelopeAccepted()

表11-28 

NetworkToBank

InetAddress

+NetworkToBank(log:

Log,bankAddress:

+openConnection()

+closeConnection()

+sendMessage(message:

Message,outbalances:

Balances):

Status

表11-29 

OperatorPanel

+OperatorPanel(atm:

+getInitialCash():

表11-30 

ReceiptPrinter

+ReceiptPrinter()

+printReceipt(receipt:

Receipt)

表11-31 

Session

ATM

-pin:

-READING_CARD_STATE:

-READING_PIN_STATE:

-CHOOSING_TRANSACTION_STATE:

-PERFORMING_TRANSACTION_STATE:

-EJECTING_CARD_STATE:

-FINAL_STATE:

+Session(atm:

ATM)>

+performSession()

+setPIN(intpin)

表11-32 

Transaction

#atm:

#session:

Session

#card:

#pin:

#serialNumber:

#message:

Message

#balances:

Balances

-TRANSACTION_TYPES_MENU:

finalString[]

-nextSerialNumber:

-GETTING_SPECIFICS_STATE:

-SENDING_TO_BANK_STATE:

-INVALID_PIN_STATE:

-COMPLETING_TRANSACTION_STATE:

-PRINTING_RECEIPT_STATE:

-ASKING_DO_ANOTHER_STATE:

#Transaction(atm:

ATM,session:

Session,card:

Card,pin:

int)

+makeTransaction(atm:

int):

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1