银行ATM系统——用况图与分析

本文详细阐述了ATM系统的用况模型,包括存款、取款、打印凭条等功能的操作流程及前后置条件。探讨了如何通过用况图来描述系统功能与用户交互过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、图形文档

在《面向对象分析与设计第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)客户输入错误密码

限制

密码应为数字

### 什么是用况图? 用况图UML Use Case Diagram)是一种结构化的图形表示法,用于描述系统及其外部参者之间的交互关系。它通过可视化的方式展示了系统的功能需求以及这些功能如何被不同的角色所使用[^1]。 用况图的核心组成部分包括: - **参者(Actor)**:系统交互的实体,可以是人类用户或其他系统。 - **用例(Use Case)**:代表系统提供给参者的具体服务或功能。 - **关系(Relationships)**:连接参者和用例的关系,通常有三种标准关系:关联、包含和扩展[^3]。 --- ### 如何绘制用况图? 以下是关于绘制用况图的关键要点: #### 工具支持 有许多在线工具可以帮助创建专业的用况图,例如Visual Paradigm提供了详细的教程来指导用户完成这一过程。此外,还有完全免费的在线平台可用于快速构建用况图[^2]。 #### 关键步骤概述 虽然不建议使用步骤词汇,但仍需强调几个核心要素: - 明确识别所有的参者并将其放置在图表周围。 - 定义每个主要的功能作为独立的用例,并以椭圆形式表现出来。 - 使用线条将参其对应的用例相连,表明它们之间的互动。 对于更复杂的场景,可能还需要引入额外的关系类型,比如“包含”和“扩展”,以便更好地表达某些特定条件下的行为逻辑[^4]。 #### 示例说明 假设我们要为图书馆管理信息系统设计一张简单的用况图,则可能会涉及如下元素: - 参者:“管理员”, “读者” - 主要用例:“借书”, “还书”, “查询书籍信息” 如果进一步细化,“借书”这个动作还可以分解成多个子操作或者其他辅助流程建立联系,这时就可以利用到前述提到的各种特殊关系符号来进行补充标注。 另外,在实际应用当中也可以借助编程手段自动生成此类图表。例如采用Python脚本配合相应库文件实现自动化绘图目的。 ```python from diagrams import Cluster, Diagram from diagrams.uml import UseCase, Actor with Diagram("Library System", show=False): admin = Actor("Admin") reader = Actor("Reader") with Cluster("Core Functions"): borrow_book = UseCase("Borrow Book") return_book = UseCase("Return Book") search_books = UseCase("Search Books Info") admin >> borrow_book admin >> return_book reader >> search_books ``` 上述代码片段即演示了一个基础版本的图书馆业务模型简化版呈现方式。 --- ###
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值