ATM需求文档.doc

上传人:11****ws 文档编号:3179219 上传时间:2019-05-24 格式:DOC 页数:9 大小:1,003KB
下载 相关 举报
ATM需求文档.doc_第1页
第1页 / 共9页
ATM需求文档.doc_第2页
第2页 / 共9页
ATM需求文档.doc_第3页
第3页 / 共9页
ATM需求文档.doc_第4页
第4页 / 共9页
ATM需求文档.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

1、ATM 需求文档一家本地银行计划安装一台新的自动柜员机(ATM) , 使用户(即银行客户) 能完成一些基本的金融交易(图 1). 每个用户在该银行中只能有一个账户。 ATM 用户应当能查看自己的账户余额、取款或存款。 该 ATM 的用户界面包括如下几部分:1. 一个屏幕, 用于向用户显示消息。2. 一个键板,用于接受用户的数字输入3. 一个出钱机,用于用户取款4. 一个存款槽,用于接受用户的存款信封。每天,出钱机中都会补足 500 张 20 美元的纸币【注:由于这个案例的范围所限,这里描述的 ATM 的某些元素,并不是对真正 ATM 的准确模拟。例如,现在的 ATM 通常都有一个能从 ATM

2、卡读取用户帐号的设备,而这个 ATM 要求用户从键板输入帐号。而且,真正的 ATM 通常会在会话结束时打印一张凭条,而这个 ATM 中的所有输出都显示在屏幕上】图 1 自动柜员机的用户界面这家银行希望开发一个软件,使银行客户能通过 ATM 执行金融交易。以后,银行会将软件与 ATM 硬件集成起来。 软件应在组件中封装硬件设备(如出钱机和存款槽)的功能,但软件本身不必关心这些设备如何完成它们的功能。由于 ATM 硬件还没有被开发出来,因此我们不是编写在 ATM 上运行的软件,而是要开发一个在个人电脑上运行的第一个软件版本。这个版本利用计算机显示器来模拟 ATM 屏幕,用计算机的键盘来模拟 ATM

3、 的键板。ATM 会话由验证用户和验证个人用户识别号(PIN)两部分构成,然后是创建并执行金融交易。验证用户即基于用户帐号证明用户的身份。为了验证用户身份和进行金融交易,ATM 必须与银行的账户信息数据库(即存储在计算机上有组织的数据集)交互。对每个银行账户,数据库中都有一个帐号、一个 PIN 和一个表示该帐号中有多少钱的余额信息 【注:假设银行只打算安装一台 ATM,因此不需要考虑多台 ATM 同时访问这个数据库的情况。而起,还假设当用户使用 ATM 时,银行不会修改数据库中的任何信息。同样,任何类似ATM 的商业系统都会面临相当复杂的安全问题, 但这个超出了学习内容。因此我们尽心简化,假设

4、银行信任对 ATM 的访问,也信任对数据库中信息的操作,而不会采取更多的安全手段】用户来到 ATM 前面(假设这是没有别人在使用) ,将依次发生如下事件(图 1)1. 屏幕显示一条欢迎消息,并提示用户输入帐号。2. 用户通过键板输入一个 5 位数的帐号。3. 屏幕提示用户输入 PIN(个人识别号)4. 用户通过键板输入一个 5 位数的 PIN5. 如果用户输入了有效的帐号和正确的 PIN,则屏幕显示主菜单(图 3).如果用户输入了无效的帐号或错误的 PIN, 则屏幕显示适当的消息,然后, ATM 回到步骤 1,重新开始验证过程。验证用户之后,ATM 应显示主菜单(见图 2) ,其中包含几个带编

5、号的选项,用于三种类型的交易:余额查询(选项 1) 、取款(选项 2)和存款(选项 3).主菜单中还应包含一个选项(选项 4) , 以使用户能退出系统。这样,用户可以选择执行某个交易(输入 1、2或 3)也可以选择退出系统(输入 4).如果用户输入 1 进行余额查询,则屏幕将显示用户的账户余额。为此.ATM 必须从银行的数据库中取的余额当用户输入 2 选择取款时,会发生描述行为的如下步骤。1. 屏幕显示一个菜单(图 3), 包含标准的取款额:$20(选项 1) ,$40(选项 2) ,$60(选项 3) , $100 (选项 4) 和 $200 (选项 5).菜单中还包含一个选项 (选项 6)

6、,以使用户能取消交易。2. 用户通过键板输入一个菜单选项。3. 如果选择的取款额大于账户余额,则屏幕显示一条消息,告诉用户重新选择一个较小的金额。然后,ATM 返回到步骤 1。如果选择的取款额小于或等于账户余额(即为可接受的金额) ,则 ATM 前进到步骤 4。如果用户选择取消交易(选项 6) ,则ATM 显示主菜单,等待用户输入。4. 如果出钱机中有足够的现金满足请求,则 ATM 前进到步骤 5 。否则,屏幕显示一条消息,说明原因,并告诉用户选择较小的取款额。然后,ATM 返回到步骤 1.5. ATM 将取款额划入数据库中用户账户的借方(即从账户余额中减去取款额) 。6. 出钱机向用户送出所

7、取金额的钱。7. 屏幕显示一条消息,提醒用户将钱拿走。 、当用户输入 3 选择存款时,会发生描述行为的如下步骤。1. 屏幕提示用户输入存款额,或输入 0 以取消交易。2. 用户通过键板输入存款额或 0 注:键板上没有小数点或美元符号,因此用户不能输入实数值(1.25) ,而是必须以分为单位输入存款额(如 125).然后,ATM 会将这个数字除以 100,得到以美元为单位的数字(如,125 / 100 =1.25)3. 如果用户指定了存款额,则 ATM 将前进到步骤 4.如果用户选择取消交易(输入 0) ,则 ATM 显示主菜单,等待用户输入。4. 屏幕显示一条消息,通知用户将存款信封插入存款槽

8、中。5. 如果存款槽在两分钟内接收到存款信封, 则 ATM 将它的存款额划入数据库中用户账户的贷方中(即将存款额加到用户的账户余额中) ,如果存款槽在两分钟内没有收到存款信封,则屏幕将显示一条消息,指出由于超时而取消了本次交易。然后,ATM 显示主菜单,等待用户输入。成功执行交易之后,系统应返回主菜单,以使用户能执行其他交易。如果用户选择退出系统,则屏幕将显示一条感谢消息,然后向下一位用户显示欢迎消息。图 2 ATM 的主菜单图 3 ATM 的取款菜单第一周完成要求1. 通过分析需求文档中出现的名词和名词短语,明确构建 ATM 系统所需的类用列表列出需求中的名词和名词短语2. 以找出的名词为基

9、础,确定系统中的类,并标注上英文名称。3. 根据确定的类,画出相互之间的流程图。参考答案1.ATM 需求文档中的名词和名词短语银行 现金 帐号ATM 屏幕 PIN用户 键板 银行数据库客户 出钱机 余额查询交易 20 美元账单/现金 取款账户 存款槽 存款余额 存款信封不可以做为类的名词例如银行: 银行不是 ATM 系统的一部分客户和用户: 代表的是外部实体,重要性体现在与 ATM 系统的交互上20 美元账单/现金: 表示现实世界中的物理对象帐号和 PIN: 代表了 ATM 系统中最重要的信息段,是银行帐户的重要属性2.可以确定的类如下1. ATM - ATM2. 屏幕 - Screen3.

10、键板 - Keypad 4. 出钱机 CashDispenser5. 存款槽 DepositSlot6. 账户 Account7. 银行数据库 BankDatabase8. 余额查询 BalanceInquiry9. 取款 Withdrawal10. 存款 Deposit 3. 类关系图第二周工作任务1. 确定各个类的属性,方法2. 根据确定的方法,完成 ATM 系统中的协作关系。 格式如下类的对象 发送消息 给类的对象 说明ATM displayMessageScreen ATM 在空闲时显示一条欢迎信息。ATM 向 Screen 发送一个 displayMessage 消息,调用 Scre

11、en 类的 displayMessage操作。3. 画出取款交易 和 存款交易的工作流程图参考答案1.基本操作说明序号类名1. ATM ATM 执行金融交易2. 屏幕 Screen 向用户显示消息3. 键板 Keypad 从用户接收数字输入4. 出钱机 CashDispenser 吐出现金,表明是否包含足够的现金满足取款请求5. 存款槽 DepositSlot 接收存款信封6. 账户 Account 取得账户余额,向账户存款,从账户取款7. 银行数据库 BankDatabase 验证用户,取得账户余额,向账户存款,从账户取款8. 余额查询 BalanceInquiry9. 取款 Withdra

12、wal10. 存款 Deposit 详细类及方法序号类名1. ATM ATM userAuthenticated:Boolean = falseh 用户验证标志currentAccountNumber:int 当前用户帐号run() 启动 ATMauthenticateUser() 验证用户displayMainMenu():int 显示菜单 2. 屏幕 Screen displayMessage();3. 键板 Keypad getInput():int4. 出钱机 CashDispenser count:int = 500;dispenseCash()isSufficientCashAva

13、ilable() ; Boolean5. 存款槽 DepositSlot isEnvelopeReceived(); Boolean;6. 账户 Account accountNumber: int;pin:integer;availableBalance:DoubletotalBalance: Double-credit()debit()7. 银行数据库 BankDatabase authenticateUser(); BooleangetAvailableBalance();double getTotalBalance(); double credit()debit()8. 余额查询 Ba

14、lanceInquiry accountNumber: intexecute();9. 取款 Withdrawal accountNumber: itnamount: doubleexecute();10. 存款 Deposit accountNumber: intamount: doubleexecute();类的对象 发送消息 给类的对象 说明ATM displayMessage Screen ATM 在空闲时显示一条欢迎信息。ATM 向 Screen 发送一个 displayMessage 消息,调用 Screen 类的 displayMessage操作。getInput Keypada

15、uthenticateUser BankDatabaseexecute BalanceInquiryexecute WithDrawalexecute DepositBalanceInquiry getAvailableBalance BankDataBasegetTotalBalance BankDataBasedisplayMessage ScreenWithdrawal displayMessage ScreengetInput KeypadgetAvailableBalance BankDatebaseisSufficientCashAvailableCashDispenserdebit BankDatabasedispenseCash CashDispenserDeposit displayMessage ScreengetInput KeypadisEnvelopeReceived DepositSlotcredit BankDatabaseBankDatabase validatePIN AccountgetAvailableBalance AccountgetTotalBalance Accountdebit Accountcredit Account3:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育教学资料库 > 精品笔记

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。