银行ATM(UML分析与设计)
合集下载
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
Atm客户端 专用网
地区Atm服务器 专用网
银行数据库服务器
局域网 打印机
2.系统需求分析
atm系统包括软件和硬件两部分,因此了解外部设备是如 何协调工作是整个建模的基础。Atm业务大概分为4个部分: 查询帐户余额、取款、存款和更改用户的密码。一个完整的 atm系统包括一下几个模块:
(1)读卡机模块 允许储户讲银行卡插入读卡机,读卡机识别卡的 种类并在显示器上提示用户输入密码。 (2)输入模块 储户可以输入密码和取款金额,并选择要完成的事务。 通常在键盘上只设数字键和功能键,目的方便储户,该模块需要储户的交 互。 (3)ic认证模块 主要鉴别储户卡的真伪。基于ic卡的安全授权系 统,要求从技术上严格保证卡的唯一性与防伪性,从而保证网络的安全。 (4)显示模块 显示储户相关的信息,包括储户交互是的提示信息 和确认信息。
客户端 atm.exe
Account
Account
CardReader
AtmScreen
CardDispenser
CardReader
AtmScreen
CardDispenser
AtmServ该配置图中只画一个atm
client,一个地区的atm服务器,银行数据库服务器以及 一台打印机,它大致描述了整个系统的物理部署情况。
5.建立系统部署图
atm系统部署是整个项目实施过程的最后阶段,其实质 就是把该系统中涉及到的硬件、软件整合到一起,描述系 统的运行情况。在部署图中两只视图,构件图和配置图。 (1)构件图 组件图,它包含了模型代码库、可执行文件、运行库和 其他构件的信息,它是代码的实际模块。
类操作代码,.cpp文件 类的头文件
收集储户信 息
色之间的通信过程,使读者清
楚的知道整个开户过程的业务
建立新的信 用账户
设置信用限制/检 查储户信用历史
流程,以便将来的细化工作打下基础。
拒绝帐号
批准帐号
接受信用条 件 签发
(2)时序图
表现系统流程以及系统元素之间的交互关系可以用时序 图,他们能够清晰的表达系统流程和元素之间的交互关系。 它的能够就是按时间顺序描述系统元素间的交互。
atm屏幕
5.系统类模型
1. 系统包图 在定义具体的类之前,先在宏观的角度上将整个系 统分割成多个独立的包。此处把整个atm系统分为如下图 所示的包。整个系统分为硬件和逻辑两块,分别控制不 同的应用。
硬件
+ AtmScreen + CardReader + CashDispenser + KeyBorad
⑷ 执行者是否需要对系统中的信息进行读、 创建、修改、删除或存储? 修改账户密码、转账
用例是由角色驱动的,atm系统根据业务流程大致分为 几个用例: ①与储户相关的用例 :存款、取款、查询余额、修 改账户密码、转账和通过信用系统付款等。 ②与银行工作人员相关的用例:添加现金、维护atm硬 件设备、修改密码等。 ③与信用系统相关的用例: 存款 启动储户的付款
(5)吐钱机模块 按照储户的要求,选择合适面值的钞票给储户。
(6)打印票据模块 提供给储户一张取款的凭据,储户可选择打印, 也可不打印凭据,主要信息为交易的信息。 (7)监视器模块 主要为防止意外事件的发生,以保证交易的安全性。 银行有权调查取款记录。Atm系统的功能需求如下图:
Atm取款系统
读 卡 机 模 块
14: 处理取款 15: 退卡
(3)协作图 如图的协作图描述储户取款的过程。参与交互的对象有at m屏幕显示器、储户的账户、取款机和读卡机等,编号给出取 款的执行顺序。
2: 读卡号 6: 输入密码 9: 选择交易类型 3: 屏幕初始化 1: 插卡 11: 输入交易金额 读卡机 5: 提示输入密码 8: 提示进行交易类型的选择 : 储户 15: 退卡 10: 提示输入交易金额 13: 处理账户 4: 打开账户 7: 验证密码 12: 处理取款 账户 14: 处理取款 取款机
储户 银行工作人员
经过分析可知: ① 储户是与atm交互的主要对象 ② 银行工作人员更改atm的设置,放置现金和维护机器, 而系统工程师则是掌握atm技术以及系统配置的工程技术 人员,而atm的一般维护只需银行工作人员即可,故不做 为atm系统的角色处理 ③信用系统做外外部的角色参与整个业务的交易
取款 储户 添加现金 转账 维护atm硬件 查询余额 信用系统 修改密码
(3)建立系统的用例模型 如右图系统用例模型。
付款
4.建立系统的动态模型
动态模型包括活动图、时序图、协作图和状态图。这些图是 对系统动态特性的描述。 (1)活动图 展示系统中的功能流,可以在业务模型中现时业务工作流; 可以在收集需求时显示一个使用案例的事件流。它使用泳道 表示工作流中的不同角色, 通过在不同 泳道中活动之间的过度了解角
硬件包中的类:KeyBoard(键盘类)要发消息来传递储户发出的指令,如储
户输入密码、选择存钱或取钱等操作。 CashDispenser(吐钱机)和CardReader(读卡机)等都给逻辑包中的 Account有关。 CashDispenser 类的属性只有surplus(金额),方法有提现金和 收回现金等;CardReader主要是卡号和银行代号,方法有接受、拒绝、读卡和吞 卡等。
如图为储户取款 的时序图。
读卡机 : 储户 1: 插卡 2: 读卡号 3: 屏幕初始化 4: 打开账户 5: 提示输入密码 6: 输入密码 7: 验证密码 8: 提示进行交易类型的选择 9: 选择交易类型 10: 提示输入交易金额 11: 输入交易金额 12: 处理取款 13: 处理账户 atm屏幕 账户 取款机
最终确定的角色为:储户、银行工作人员和信用 系统
2)用例的确定
⑴ 与系统实现有关的主要问题是什么? 存款、取款、查询余额、转账等 ⑵ 系统需要哪些输入/输出?这些输入/输 出从何而来?到 哪里去? 存储卡、打印的收据等(相关用例) ⑶ 执行者需要系统提供哪些功能?
存款、取款、查询余额、转账和通过信用系统付款等
输 入 模 块
ic 认 证 模 块
显 示 模 块
吐 钱 机 模 块
打 印 票 据 模 块
打 印 票 据 模 块
3.建立系统用例模型 1)角色的确定
(1)谁使用atm系统的主要功能? 储户
(2)谁需要atm系统的支持以完成日常工作任务?
出纳员 (3)谁负责维护,管理并保持atm系统正常运行?
(4)atm系统需要应付(或处理)哪些硬设备? 银行工作人员 系统工程师 (5)atm系统需要和哪些外部系统交互? 信用卡 (6) 谁(或什么 )对atm 系统运行产生的结果 信用系统如分行 (值)感兴趣?
逻辑
+ Account + DatabaseConnector
2. 类图 类图是建立各类模型的基础。下图分别描述了逻辑包、 硬件包中的类图。
逻辑包中的类:Account、DatabaseConnect类,
Account指向 DatabaseConnect ,说明Account类向DatabaseConnect类请求得到消息。当用户 名和密码经过验证后就可以访问数据库了。
案例一 ATM系统
1.问题陈述
ATM(auto trade machine)自动出纳业务是银行网络系 统的重要组成部分,包括人工出纳和分行共享的自动出纳机; 各分理处用自己的计算机处理业务(保存帐号、处理事务); 各分理处与出纳站通过网络通信;出纳站录入帐户和事务数 据;自动出纳机一分行计算机通信;自动出纳机与用户接口, 接受现金卡,发放现金,打印收据;分行计算机与拨款分理 处结账。 要求系统能正确处理同一帐户的并发出现;网络费用平均 摊派各分理处。如图给出银行网络系统的示意图: