创建用例图

在Package节点上调出上下文菜单。

EA&UML日拱一卒 用例图开篇_用例

选择【Add Diagram...】

EA&UML日拱一卒 用例图开篇_设计模式_02

选择【UML Behavioral】分类,选择【Use Case】图面类型。

EA&UML日拱一卒 用例图开篇_用例_03

上图中红框部分就是用例图常用的图形要素。

用例图基本要素

用例

EA&UML日拱一卒 用例图开篇_设计模式_04

用例是捕获建模主体需求的一种手段,一般用来描述主体应该做什么。作为用例描述对象的主体可以与一个或多个参与者之间进行协作。用例定义主体的行为而不必考虑其内部结构。这些行为涉及之间的相互作用参与者和主体,可能会导致主体状态的变化以及与其环境的通信。一个用例可以包括其基本行为的可能变化,包括异常行为和错误处理。

参与者

EA&UML日拱一卒 用例图开篇_用例_05

参与者是可能与主题发生交互的用户和任何其他系统。

边界

EA&UML日拱一卒 用例图开篇_用例_06

边界用于表示作为建模对象的主体的范围。所有的参与者都应该处于边界外侧。

第一个用例

假设我们在为自动提款机的取款功能建模,这个功能的概要如下:

显示待机画面检测用户插入银行卡,执行进卡动作显示语言选择画面等待并处理用户选择语言提款机显示用户认证画面等待用户输入密码并按下确定按钮如果密码错误,提示重新输入密码如果密码正确,显示该银行卡类型的有效服务根据用户选择结果进入取款额输入画面接受用户输入的取款额与银行系统服务器通信,如果余额不足,提示用户重新输入如果余额充足,进入处理中画面,同时将纸币搬运到出钞口打开出钞口挡板等待用户取走钞票关闭出钞口挡板显示是否需要其他服务画面如果用户选择打印凭条,进入打印中画面,完成后返回是否需要其他服务画面如果用户选择其他服务,进入对应服务画面如果用户选择取卡,执行出卡动作,并提示客户取卡检测用户取卡后显示待机画面超过30秒没有取卡,执行吞卡动作

由于我们是在对提款机建模,因此这段脚本每一句都是提款机视角。这点需要注意。

添加边界

选择工具条中的

EA&UML日拱一卒 用例图开篇_用例_06

图标之后,在绘图区双击鼠标。

EA&UML日拱一卒 用例图开篇_建模_08

输入建模对象的名称:ATM。

EA&UML日拱一卒 用例图开篇_用例_09

这个矩形框就是ATM的边界。

添加用例

选择工具条中的

EA&UML日拱一卒 用例图开篇_设计模式_04

并在绘图区双击鼠标之后,选择【General】分页,输入用用例名:取款。

EA&UML日拱一卒 用例图开篇_设计模式_11

选择Scenarios分页之后,首先输入如下基本路径。

显示待机画面检测用户插入银行卡,执行进卡动作显示语言选择画面等待并处理用户选择语言提款机显示用户认证画面等待用户输入密码并按下确定按钮显示该银行卡类型的有效服务根据用户选择结果进入取款额输入画面接受用户输入的取款额与银行系统服务器通信,执行取款命令进入处理中画面,同时将纸币搬运到出钞口打开出钞口挡板等待用户取走钞票关闭出钞口挡板显示是否需要其他服务画面如果用户选择打印凭条,进入打印中画面,完成后返回是否需要其他服务画面如果用户选择取卡,执行出卡动作,并提示客户取卡检测用户取卡后显示待机画面

和基本路径相比,这段描述去掉的分支和异常处理。结果如下:

EA&UML日拱一卒 用例图开篇_uml_12

按照相同的方式,输入替代路径和异常路径:

名称

类型

内容

密码错误

Exception

如果密码错误,提示重新输入密码

余额不足

Execption

如果余额不足,返回取款额输入画面

打印凭条

Alternate

如果用户选择打印凭条,进入打印中画面,完成后返回是否需要其他服务画面

办理其他业务

Alternate

如果用户选择其他服务,转入服务选择画面

超时吞卡

Execption

超过30秒没有取卡,执行吞卡动作

脚本输入结果如下:

EA&UML日拱一卒 用例图开篇_用例_13

用例添加完成后画面的样子。

EA&UML日拱一卒 用例图开篇_建模_14

添加参与者

选择

EA&UML日拱一卒 用例图开篇_用例_05

图标之后在画面中ATM边界之外适当的位置添加两个参与者:客户和银行系统。

EA&UML日拱一卒 用例图开篇_uml_16

添加使用关系

选择

EA&UML日拱一卒 用例图开篇_建模_17

图标之后分别在客户和取款用例之间,取款用例和银行系统之间连线。

EA&UML日拱一卒 用例图开篇_设计模式_18

完成!

作者著作介绍

​《实战Python设计模式》​​是作者去年3月份出版的技术书籍,该书利用Python 的标准GUI 工具包tkinter,通过可执行的示例对23 个设计模式逐个进行说明。这样一方面可以使读者了解真实的软件开发工作中每个设计模式的运用场景和想要解决的问题;另一方面通过对这些问题的解决过程进行说明,让读者明白在编写代码时如何判断使用设计模式的利弊,并合理运用设计模式。

EA&UML日拱一卒 用例图开篇_用例_19

对设计模式感兴趣而且希望随学随用的读者通过本书可以快速跨越从理解到运用的门槛;希望学习Python GUI 编程的读者可以将本书中的示例作为设计和开发的参考;使用Python 语言进行图像分析、数据处理工作的读者可以直接以本书中的示例为基础,迅速构建自己的系统架构。


觉得本文有帮助?请分享给更多人。

关注微信公众号【面向对象思考】轻松学习每一天!

面向对象开发,面向对象思考!