




已阅读5页,还剩4页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
ATM 需求文档一家本地银行计划安装一台新的自动柜员机(ATM) , 使用户(即银行客户) 能完成一些基本的金融交易(图1). 每个用户在该银行中只能有一个账户。 ATM用户应当能查看自己的账户余额、取款或存款。 该ATM的用户界面包括如下几部分:1. 一个屏幕, 用于向用户显示消息。2. 一个键板,用于接受用户的数字输入3. 一个出钱机,用于用户取款4. 一个存款槽,用于接受用户的存款信封。每天,出钱机中都会补足500张20美元的纸币【注:由于这个案例的范围所限,这里描述的ATM的某些元素,并不是对真正ATM的准确模拟。例如,现在的ATM通常都有一个能从ATM卡读取用户帐号的设备,而这个ATM要求用户从键板输入帐号。而且,真正的ATM通常会在会话结束时打印一张凭条,而这个ATM中的所有输出都显示在屏幕上】图1 自动柜员机的用户界面这家银行希望开发一个软件,使银行客户能通过ATM执行金融交易。以后,银行会将软件与ATM硬件集成起来。 软件应在组件中封装硬件设备(如出钱机和存款槽)的功能,但软件本身不必关心这些设备如何完成它们的功能。由于ATM硬件还没有被开发出来,因此我们不是编写在ATM上运行的软件,而是要开发一个在个人电脑上运行的第一个软件版本。这个版本利用计算机显示器来模拟ATM屏幕,用计算机的键盘来模拟ATM的键板。ATM会话由验证用户和验证个人用户识别号(PIN)两部分构成,然后是创建并执行金融交易。验证用户即基于用户帐号证明用户的身份。为了验证用户身份和进行金融交易,ATM必须与银行的账户信息数据库(即存储在计算机上有组织的数据集)交互。对每个银行账户,数据库中都有一个帐号、一个PIN和一个表示该帐号中有多少钱的余额信息【注:假设银行只打算安装一台ATM,因此不需要考虑多台ATM同时访问这个数据库的情况。而起,还假设当用户使用ATM时,银行不会修改数据库中的任何信息。同样,任何类似ATM的商业系统都会面临相当复杂的安全问题, 但这个超出了学习内容。因此我们尽心简化,假设银行信任对ATM的访问,也信任对数据库中信息的操作,而不会采取更多的安全手段】用户来到ATM前面(假设这是没有别人在使用),将依次发生如下事件(图1)1. 屏幕显示一条欢迎消息,并提示用户输入帐号。2. 用户通过键板输入一个5位数的帐号。3. 屏幕提示用户输入PIN(个人识别号)4. 用户通过键板输入一个5位数的PIN5. 如果用户输入了有效的帐号和正确的PIN,则屏幕显示主菜单(图3).如果用户输入了无效的帐号或错误的PIN, 则屏幕显示适当的消息,然后,ATM回到步骤1,重新开始验证过程。验证用户之后,ATM应显示主菜单(见图2),其中包含几个带编号的选项,用于三种类型的交易:余额查询(选项1)、取款(选项2)和存款(选项3).主菜单中还应包含一个选项(选项4), 以使用户能退出系统。这样,用户可以选择执行某个交易(输入1、2或3)也可以选择退出系统(输入4).如果用户输入1进行余额查询,则屏幕将显示用户的账户余额。为此.ATM必须从银行的数据库中取的余额当用户输入2选择取款时,会发生描述行为的如下步骤。1. 屏幕显示一个菜单(图3), 包含标准的取款额:$20(选项1),$40(选项2),$60(选项3) , $100 (选项4) 和 $200 (选项5).菜单中还包含一个选项 (选项6),以使用户能取消交易。2. 用户通过键板输入一个菜单选项。3. 如果选择的取款额大于账户余额,则屏幕显示一条消息,告诉用户重新选择一个较小的金额。然后,ATM返回到步骤1。如果选择的取款额小于或等于账户余额(即为可接受的金额),则ATM前进到步骤4。如果用户选择取消交易(选项6),则ATM显示主菜单,等待用户输入。4. 如果出钱机中有足够的现金满足请求,则ATM前进到步骤5 。否则,屏幕显示一条消息,说明原因,并告诉用户选择较小的取款额。然后,ATM返回到步骤1.5. ATM将取款额划入数据库中用户账户的借方(即从账户余额中减去取款额)。6. 出钱机向用户送出所取金额的钱。7. 屏幕显示一条消息,提醒用户将钱拿走。、当用户输入3选择存款时,会发生描述行为的如下步骤。1. 屏幕提示用户输入存款额,或输入0以取消交易。2. 用户通过键板输入存款额或0 注:键板上没有小数点或美元符号,因此用户不能输入实数值(1.25),而是必须以分为单位输入存款额(如125).然后,ATM会将这个数字除以100,得到以美元为单位的数字(如,125 / 100 =1.25)3. 如果用户指定了存款额,则ATM将前进到步骤4.如果用户选择取消交易(输入0),则ATM显示主菜单,等待用户输入。4. 屏幕显示一条消息,通知用户将存款信封插入存款槽中。5. 如果存款槽在两分钟内接收到存款信封, 则ATM将它的存款额划入数据库中用户账户的贷方中(即将存款额加到用户的账户余额中),如果存款槽在两分钟内没有收到存款信封,则屏幕将显示一条消息,指出由于超时而取消了本次交易。然后,ATM显示主菜单,等待用户输入。成功执行交易之后,系统应返回主菜单,以使用户能执行其他交易。如果用户选择退出系统,则屏幕将显示一条感谢消息,然后向下一位用户显示欢迎消息。图2 ATM的主菜单图3 ATM的取款菜单第一周完成要求1. 通过分析需求文档中出现的名词和名词短语,明确构建ATM 系统所需的类用列表列出需求中的名词和名词短语2. 以找出的名词为基础,确定系统中的类,并标注上英文名称。3. 根据确定的类,画出相互之间的流程图。参考答案1.ATM 需求文档中的名词和名词短语银行 现金 帐号ATM 屏幕 PIN用户 键板 银行数据库客户 出钱机 余额查询交易 20美元账单/现金 取款账户 存款槽 存款余额 存款信封不可以做为类的名词例如 银行: 银行不是ATM系统的一部分 客户和用户: 代表的是外部实体,重要性体现在与ATM 系统的交互上20美元账单/现金: 表示现实世界中的物理对象帐号和PIN: 代表了ATM系统中最重要的信息段,是银行帐户的重要属性2.可以确定的类如下1.ATM - ATM2.屏幕 - Screen3.键板 - Keypad 4.出钱机 CashDispenser5.存款槽 DepositSlot6.账户 Account7.银行数据库 BankDatabase8.余额查询 BalanceInquiry9.取款 Withdrawal10.存款 Deposit 3. 类关系图第二周工作任务1. 确定各个类的属性,方法2. 根据确定的方法,完成ATM 系统中的协作关系。 格式如下类的对象发送消息给类的对象说明ATMdisplayMessageScreenATM 在空闲时显示一条欢迎信息。ATM向Screen发送一个displayMessage 消息,调用Screen类的displayMessage操作。3. 画出取款交易 和 存款交易的工作流程图参考答案1.基本操作说明序号类名1.ATM ATM执行金融交易2.屏幕 Screen向用户显示消息3.键板 Keypad 从用户接收数字输入4.出钱机 CashDispenser吐出现金,表明是否包含足够的现金满足取款请求5.存款槽 DepositSlot接收存款信封6.账户 Account取得账户余额,向账户存款,从账户取款7.银行数据库 BankDatabase验证用户,取得账户余额,向账户存款,从账户取款8.余额查询 BalanceInquiry9.取款 Withdrawal10.存款 Deposit 详细类及方法序号类名1.ATM ATMuserAuthenticated:Boolean = falseh 用户验证标志currentAccountNumber:int 当前用户帐号run() 启动ATMauthenticateUser() 验证用户displayMainMenu():int 显示菜单 2.屏幕 ScreendisplayMessage();3.键板 Keypad getInput():int4.出钱机 CashDispensercount:int = 500;dispenseCash()isSufficientCashAvailable() ; Boolean5.存款槽 DepositSlotisEnvelopeReceived(); Boolean;6.账户 AccountaccountNumber: int;pin:integer;availableBalance:DoubletotalBalance: Double-credit()debit()7.银行数据库 BankDatabaseauthenticateUser(); BooleangetAvailableBalance();double getTotalBalance(); double credit()debit()8.余额查询 BalanceInquiryaccountNumber: intexecute();9.取款 WithdrawalaccountNumber: itnamount: doubleexecute();10.存款 Deposit accountNumber: intamount: doubleexecute();类的对象发送消息给类的对象说明ATMdisplayMessageScreenATM 在空闲时显示一条欢迎信息。ATM向Screen发送一个displayMessage 消息,调用Screen类的displayMessage操作。getInputKeypadauthenticateUserBankDatabaseexecuteBalanceInquiryexecuteWithDrawalexecuteDepositBalanceInquirygetAvailableBalanceBankDataBasegetTotalBalanceBankDataBasedisplayMessageScreenWithdrawaldisplayMessageScreengetInputKeypadgetAvailableBalanceBankDatebaseisSufficientCashAvailableCashDispenserdebitBankD
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 石化大修安全培训试题及答案解析
- 护理基础知识点题库及答案解析
- 小程序题库护理及答案解析
- 第三版母婴护理考试题库及答案解析
- 建委安全竞赛题库及答案解析
- 云南安全员c2证考试题库和及答案解析
- 2025考安全题库及答案解析
- 2025年宪法学试题及参考答案
- 2025年平面设计师专业能力测试题平面设计软件操作与技巧试题附答案
- 江西省上饶市余干县私立蓝天中学教育集团2025-2026学年高二上学期9月月考语文试题(含答案)
- 坚持以人民为中心 课件
- 物业服务提升方案模板
- 不同茶叶的冲泡方法
- 人教版高中地理必修第一册第一章宇宙中的地球第一节地球的宇宙环境练习含答案
- 信息科技风险安全
- 中建幕墙工程安全专项施工方案
- 诊所中药饮片清单汇编
- 红木文化智慧树知到答案2024年广西大学
- 招标代理机构遴选投标方案(技术标)
- 吊车施工专项方案
- 肺栓塞患者护理查房课件
评论
0/150
提交评论