银行ATM系统——用况图与分析
一、图形文档
在《面向对象分析与设计第2版》P36页中,有一个名为方案四的例子:其中登录用况与其他操作用况相互独立,它们之间并不像其他几个方案中有include(扩展)或extend(继承)的关系。在与老师讨论过后,我得知这样的好处是方案较为简洁,只需在登录之后才能执行的用况中写明前置条件即可。类比到此处,即在存取款等用况中写明前置条件为“读卡且输入正确密码”即可。
二、文字说明
1、用况图综述
本系统主要功能包括“存款”、“取款”、“转账”、“查询账户信息”、“修改密码”。参与者除了用户以外,还包括银行服务器。2、参与者描述
(1)客户:使用ATM机的客户(2)银行服务器:存储用户银行卡账户所有信息的主机
3、用况描述
用况名 | 存款 |
简述 | 客户向ATM机存入现金 |
参与者 | 客户、银行服务器 |
包含 |
|
前置条件 |
(1)读卡正确且客户输入正确密码 (2)客户的账号没有出现异常 |
细节 |
(1)客户插入银行卡 (2)ATM读取银行卡 (3)客户输入密码 (4)ATM发送卡号和密码信息至银行服务器 (5)银行服务器进行验证 (6)客户将纸币放入ATM中 (7)ATM向银行服务器发送交易信息(存款数额、时间、卡号) (8)银行服务器返回确认信息以及最新账户信息 (9)客户选择退卡 (10)ATM弹出银行卡 |
后置条件 | 客户存款成功,账户余额改变 |
例外 |
(1)客户账号异常,无法操作,退卡 (2)系统异常,ATM无法正常使用 (3)客户输入错误密码 |
限制 | 密码应为数字 |
用况名 | 取款 |
简述 | 客户从ATM机取出现金 |
参与者 | 客户、银行服务器 |
包含 | 包含的用况有“修改账户余额”、“验证密码” |
前置条件 |
(1)读卡正确且客户输入正确密码 (2)客户的账号没有出现异常 |
细节 |
(2)客户插入银行卡 (2)ATM读取银行卡 (3)客户输入密码 (4)ATM发送卡号和密码信息至银行服务器 (5)银行服务器进行验证 (6)客户输入取款金额 (7)ATM向银行服务器发送交易信息(取款数额、时间、卡号) (8)银行服务器返回确认信息以及最新账户信息 (9)ATM吐出相应金额的钱 (10)用户取出现金 (11)ATM向银行服务器发送取款成功确认信息 (9)客户选择退卡 (10)ATM弹出银行卡 |
后置条件 | 客户取款成功,账户余额改变 |
例外 |
(1)客户账号异常,无法操作,退卡 (2)系统异常,ATM无法正常使用 (3)客户输入错误密码 |
限制 | 密码应为数字,取款金额应为100的正整数倍 |
用况名 | 打印凭条 |
简述 | 客户打印账户相关信息(余额,交易记录等) |
参与者 | 客户、银行服务器 |
扩展 | 从“修改用户余额”扩展,扩展条件为“选择打印凭条”,扩展点为“选择” |
前置条件 |
(1)读卡正确且客户输入正确密码 (2)客户的账号没有出现异常 |
细节 |
(1)客户插入银行卡 (2)ATM读取银行卡 (3)客户进行打印凭条操作 (4)ATM向银行服务器发送打印凭条请求 (5)银行服务器返回客户账户相关交易信息 (6)ATM打印凭条并输出 (7)客户取走凭条
|
后置条件 | 客户成功打印自己的信息凭条 |
例外 |
(1)客户账号异常,无法操作,退卡 (2)系统异常,ATM无法正常使用 (3)客户输入错误密码 |
限制 | 密码应为数字 |