You are on page 1of 26

西 安 工 业 大 学

信息与计算科学

面 向 对 象 课 程 设 计

题 目: ATM 银行系统
班 级: 051002
人 数: 3
成 员: 常丽雪、董园园、刘梦
学 号 :
051002120、 051002121、 051002126
姓 名:
时 间: 2007.12.30---2008.1.4

目 录

问 题 描 述 ----------------------3

业 务 建 模 ---------------------------4

需 求 -----------------------7

分 析 -----------------------20

设 计 ---------------------22

2
总 结 -----------------------25

班 级 051002 学 号
题 目 ATM 银行系统 完成时间 2008.1.3
指导教师 刘建伟
小组排名

小组成绩 个人评分

第 1名
XXX
贡献

第 2名
XXX
贡献

3
第 3名
XXX
贡献

第 4名
XXX
贡献

第 5名
XXX
贡献

第 6名
XXX
贡献

问题描述:
在我国十年前ATM(自动取款机)还是一个很新鲜的事物,现在在城市的
大街小巷随处可见。我们在日常生活中也经常和ATM打交道。本次面向对象技术
课程设计我们将开发ATM银行系统,利用本学期所学的知识开发该系统的用例
图、类图、顺序图、状态图、活动图及协作图。
某银行拟开发一个自动取款机系统,它是由一个自动取款机、中央计算机、分
行计算机及柜员终端组成的网络系统。总行拥有多台 ATM,分别设在全市各主要
街道上,柜员终端设在分行营业厅及分行下属的各个储蓄所内。系统的软件成本
由各个分行分摊。
银行柜员使用柜员终端处理用户提交的储蓄业务。用户可以用现金或支票向
自己拥有的某个帐户存款、取款或开新帐户,通常一个用户可以拥有多个帐户。柜
员负责把用户提交的存款、取款业务输进柜员终端,接受用户交来的现金或支票,
或付给用户现金。柜员终端与相应的分行进行通信,分行计算机具有处理针对某
个帐户的业务并进行帐户维护。
拥有银行帐户的用户,可申请领取现金兑换卡,使用现金兑换卡可通过 ATM
访问自己的帐户。目前仅限于用现金兑换卡提取现金,或查询有关自己帐户的信
息。将来可能还要求通过 ATM 转帐或存款等业务。
现金兑换卡为一磁卡,卡上有分行代号、卡号。分行代号唯一标识总行下属的一
个分行。卡号确定这张卡可访问的帐户,每一张卡仅属于一个用户所有,但同一
张卡可以有多个副本,因此,必须考虑同时在若干台 ATM 上使用同样的现金兑
换卡的可能,即系统应能处理并发访问。

4
当用户把现金兑换卡插入 ATM 后,ATM 就与用户交互,以获取有关这次业务
的信息,并与中央计算机交换业务的信息。首先 ATM 要求用户输入的密码,传给
中央计算机。请求中央计算机核对这些信息并处理这次业务。中央计算机根据卡上
的分行代码,确定这次业务与分行的对应关系,并且委托相应的分行计算机验证
用户密码。如果用户密码正确,ATM 就要求用户选择业务类型(取款、查询)。当
用户选择取款时,ATM 请求用户输入金额。最后,ATM 从现金口吐出现金,并
打印出帐单交给用户。

1 业务建模

在业务建模工作流中,过程从高层问题陈述开始,使得人们能够开发不同
的活动图,为组织的运转流程建模。在需求工作流中,用这些高层活动图来识别
系统范畴,并用来开发目标系统的用例模型。在分析工作流中,分析用例描述以
创建领域类图和系统级顺序图。最后,在设计工作流中,开发底层的协作图、状
态图和顺序图,为用例实现建模。
与业务操作建模有关的第一个工作流有三个主要活动组成:进行领域分析
(工作流)、进行业务过程分析和确定系统范畴。

1.1 领域分析(工作流)
创建新的 Textual Analysis,为工作流级问题陈述编制文档(问题陈述如下)。

ATM 允许用户对其帐户执行不同的任务。每项任务都包含了一个操作列表。
考虑从 ATM 取款机中取款这项常见的任务。
ATM 提示用户插卡;
用户插入 ATM 卡;
ATM 提示用户输入 PIN 号码;
用户输入 PIN 号码;

5
ATM 询问银联,以验证 ATM 卡号和 PIN 号码;
银联到相应银行验证 ATM 卡号和 PIN 号码;
银行通知银联 PIN 号码正确;
银联通知 ATM 机 PIN 号码正确;
ATM 提示用户选择服务种类;
用户选择“取款”服务;
ATM 提示用户输入取款金额;
用户输入取款金额;
ATM 请求银联处理该请求,银联将该请求转交给相应的银联;
银联向银联确认请求成功执行,银联再通知 ATM 请求已经核准;
ATM 在屏幕上显示交易成功消息,弹出 ATM 卡,然后分配所请求的现金;
ATM 向用户显示主菜单,用于选择下一项服务。
(1) 单击工具栏上的 Create Textual Analysis 图标 。
(2) 将 问 题 陈 述 输 入 到 文 本 分 析 工 作 区 ( 如 图 1.1 所 示 ) 。

图 1.1 问题陈述(工作流)

1.2 业务过程分析
在创建工作流级问题陈述之后,进行业务过程分析。运用

6
Elaborator(Problem_Statement[工作流],Swimlane_Activity_Diagram)操作器,手
动创建泳道活动图,它将有助于将业务活动可视化。这个活动图以顾客插入卡为
开始,以顾客取卡结束。我们可以看到活动图的重点虽然不在时间顺序,但我们
同样可以得到时间的信息。创建活动图如下:
(1) 创建活动图。
1 点击工具栏上的 New Activity Diagram 按钮 。
2 使用图窗格(diagram pane)左边的工具栏创建初始状态。
3 使用资源中心界面创建变化和动作状态。
(2) 创建泳道,将工作区中的活动划分(如图 1.2 所示)。
使用图窗格左边的工具栏,单击创建泳道按钮 。

7
图 1.2 业务工作流活动图

1.3 确定系统范畴
这一步基本上是一个手工过程,因为决策过程涉及开发者、涉众,因此,
没有包含 CASE 工具的使用过程。

需求

在这个工作流中,从需要计算机化的一组活动开始并准备更加详细的问题
陈述。然后针对问题陈述进行文本分析,以识别参与者和用例。通过使用更多细
节信息细化用例,用例描述可以用来作为分析工作流的输入。
该工作流包含两项活动:领域分析(用例级别)和用例分析。

1.4 领域分析(用例级)
在确定了系统范畴之后,准备好问题陈述来描述所需活动。在上一部分中 ,
决定将与会员信息维护、取款和存款相关的活动计算机化。问题陈述应该提供足
够信息可以用来识别单个用户的职责并描述为了执行它们的任务应该按序遵守
的流程。下面是业务活动的用例级别问题陈述。
某银行拟开发一个自动取款机系统,它是由一个自动取款机、中央计算机、
分行计算机及柜员终端组成的网络系统。总行拥有多台 ATM,分别设在全市各
主要街道上,柜员终端设在分行营业厅及分行下属的各个储蓄所内。系统的软件
成本由各个分行分摊。
银行柜员使用柜员终端处理用户提交的储蓄业务。用户可以用现金或支票向
自己拥有的某个帐户存款、取款或开新帐户,通常一个用户可以拥有多个帐户。
柜员负责把用户提交的存款、取款业务输进柜员终端,接受用户交来的现金或支
票,或付给用户现金。柜员终端与相应的分行进行通信,分行计算机具有处理针
对某个帐户的业务并进行帐户维护。
拥有银行帐户的用户,可申请领取现金兑换卡,使用现金兑换卡可通过 ATM
访问自己的帐户。目前仅限于用现金兑换卡提取现金,或查询有关自己帐户的信
息。将来可能还要求通过 ATM 转帐或存款等业务。
现金兑换卡为一磁卡,卡上有分行代号、卡号。分行代号唯一标识总行下属的
一个分行。卡号确定这张卡可访问的帐户,每一张卡仅属于一个用户所有,但同
一张卡可以有多个副本,因此,必须考虑同时在若干台 ATM 上使用同样的现金
兑换卡的可能,即系统应能处理并发访问。

8
当用户把现金兑换卡插入 ATM 后,ATM 就与用户交互,以获取有关这次
业务的信息,并与中央计算机交换业务的信息。首先 ATM 要求用户输入的密码,
传给中央计算机。请求中央计算机核对这些信息并处理这次业务。中央计算机根
据卡上的分行代码,确定这次业务与分行的对应关系,并且委托相应的分行计
算机验证用户密码。如果用户密码正确,ATM 就要求用户选择业务类型(取款、
查询)。当用户选择取款时,ATM 请求用户输入金额。最后,ATM 从现金口吐出
现金,并打印出帐单交给用户。
创建新的文本分析,输入问题陈述,如下图所示:

1.5 用例分析
根据问题陈述,用户与柜员是系统的用例图中的参与者。
识别用例参与者和候选类如下图所示:

9
1. 寻找参与者和用例
应用操作器识别所有参与者。为了识别系统的所有参与者,考虑那写可以被
计算机化的业务活动。在此研究中,系统蕴含了与用户、取款、存款和信息维护相
关的业务活动。可以识别出一下参与者。
用户和柜员
每个参与者通过参与者规约描述。以下是每个参与者的规约。
参与者名称 用户

描述 用户可以在 ATM 机上进行取款存款以及其他操作

参与者名称 柜员

描述 柜员使用柜员终端处理用户提交的储蓄业务。柜员负责
把用户提交的存款、取款业务输进柜员终端,接受用户
交来的现金或支票,或付给用户现金。
应用操作器来识别所有用例。参与者目标在问题陈述中描述。下面是 ATM 银
行系统的用例。
取款(WithdrawMoney)
存款(DepositMoney)

10
转账(TransferMoney)
登陆帐户(Login Account)
处理超额(Process Excess Amount)
储蓄业务(savings to the business)
付给用户现金(cash paid to the users)
开通新的帐户(open new accounts)
维护帐户(account maintenance)
然后,通过运用操作器开发用例图如下:

2. 优选用例
根据用例在系统中的相对重要程度进行优选。开发者评估用例对于系统涉众
的风险和重要性。开发者和系统涉众决定用例的优先级。下表给出了系统用例的
优先级。

11
3. 描述用例
前面通过创建初始用例已经捕获系统需求,现在细化用例以提供进一步的
详细信息。运用操作器开发用例描述。此操作器为那些可以用来构造其他图的用
例给出详细的描述。

12
“取款”用例描述

13
“存款”用例描述

14
“转账”用例描述

15
“储蓄业务”用例描述

16
“付给用户现金”用例描述

17
“开通新帐户”用例描述

18
“维护帐户信息”用例描述
4.构造用例模型
在对用例进行细化之后,“取款”、存款
“ ”和“转账”用例具有相同的行为,他
们都包含“登陆帐户”这个行为。因此,使用“登陆帐户”用例作为<<Include>>关
系。而“处理超额”用例与“取款”用例又是<<Extend>>关系。修改后的用例图如下
图所示。

19
20
分析

分析工作流开发领域类模型并开始动态建模。首先通过应用细化器开发领域
类模型。使用改细化器,有可能构建系统类模型(静态建模),并分析用例的动
态行为(系统建模)。
1. 领域分析(类级)
应用操作器来获得领域类模型。

2. 静态建模
领域类模型提供了大多数 ATM 银行系统都会用到的类。因为用例描述包含
了系统特定的一些信息,所以应用操作器识别系统的对象。该操作器的目的是对
用例描述进行文本分析,识别实体对象并创建类图。所产生的结果类图将被合并
到领域类模型中去,以创建系统的分析类模型如下图所示。

21
3.系统建模
系统建模可以帮助理解系统的动态面。首先应分析用例的动态行为,然后通
过该活动图的动作状态的一组协作图来细化每个状态图。

22
设计

设计工作流的目标是分析并设计如何实现对象之间的协作,从而完成用例
的执行。首先,使用协作图细化活动图中的每个动作状态。因为每个用例场景对
应于活动图中的一条路径,所以可以通过活动图中路径的活动状态对应的协作
图生成 MVC 及顺序图。可以使用现代 CASE 工具实现 MVC 级顺序图的生成,
这些 CASE 工具可以提供活动图之间的可塑性和一致性,并可以比较容易的实
现 MVC 级交互图同步的自动维护。对于那些具有复杂动态行为的对象,特别是
控制对象或者子系统,使用状态图对其建模。在这个过程中,应用视图校正器来
修订活动图和类图,以维护类型之间的一直性。随着类图中类数目的增长,可以
考虑将相关的类分组打包,便于管理。

1. 产生协作图

23
2. 产生三层顺序图

3. 对控制对象进行状态分析
创建新的状态图,对控制对象进行状态分析。产生状态图如下:

24
25
总结

本次面向对象技术课程设计我们组选择了 ATM 银行系统的题目,通过运


用这学期所学的 UML 语言开发了该系统,使得我们将课堂上所学的知识运用到
了实践中,增强了我们的动手实践能力。

26

You might also like