创建用例图
在Package节点上调出上下文菜单。
选择【Add Diagram...】
选择【UML Behavioral】分类,选择【Use Case】图面类型。
上图中红框部分就是用例图常用的图形要素。
用例图基本要素
用例
用例是捕获建模主体需求的一种手段,一般用来描述主体应该做什么。作为用例描述对象的主体可以与一个或多个参与者之间进行协作。用例定义主体的行为而不必考虑其内部结构。这些行为涉及之间的相互作用参与者和主体,可能会导致主体状态的变化以及与其环境的通信。一个用例可以包括其基本行为的可能变化,包括异常行为和错误处理。
参与者
参与者是可能与主题发生交互的用户和任何其他系统。
边界
边界用于表示作为建模对象的主体的范围。所有的参与者都应该处于边界外侧。
第一个用例
假设我们在为自动提款机的取款功能建模,这个功能的概要如下:
代码语言:javascript复制显示待机画面
检测用户插入银行卡,执行进卡动作
显示语言选择画面
等待并处理用户选择语言
提款机显示用户认证画面
等待用户输入密码并按下确定按钮
如果密码错误,提示重新输入密码
如果密码正确,显示该银行卡类型的有效服务
根据用户选择结果进入取款额输入画面
接受用户输入的取款额
与银行系统服务器通信,如果余额不足,提示用户重新输入
如果余额充足,进入处理中画面,同时将纸币搬运到出钞口
打开出钞口挡板
等待用户取走钞票
关闭出钞口挡板
显示是否需要其他服务画面
如果用户选择打印凭条,进入打印中画面,完成后返回是否需要其他服务画面
如果用户选择其他服务,进入对应服务画面
如果用户选择取卡,执行出卡动作,并提示客户取卡
检测用户取卡后显示待机画面
超过30秒没有取卡,执行吞卡动作
由于我们是在对提款机建模,因此这段脚本每一句都是提款机视角。这点需要注意。
添加边界
选择工具条中的
图标之后,在绘图区双击鼠标。
输入建模对象的名称:ATM。
这个矩形框就是ATM的边界。
添加用例
选择工具条中的
并在绘图区双击鼠标之后,选择【General】分页,输入用用例名:取款。
选择Scenarios分页之后,首先输入如下基本路径。
代码语言:javascript复制显示待机画面
检测用户插入银行卡,执行进卡动作
显示语言选择画面
等待并处理用户选择语言
提款机显示用户认证画面
等待用户输入密码并按下确定按钮
显示该银行卡类型的有效服务
根据用户选择结果进入取款额输入画面
接受用户输入的取款额
与银行系统服务器通信,执行取款命令
进入处理中画面,同时将纸币搬运到出钞口
打开出钞口挡板
等待用户取走钞票
关闭出钞口挡板
显示是否需要其他服务画面
如果用户选择打印凭条,进入打印中画面,完成后返回是否需要其他服务画面
如果用户选择取卡,执行出卡动作,并提示客户取卡
检测用户取卡后显示待机画面
和基本路径相比,这段描述去掉的分支和异常处理。结果如下:
按照相同的方式,输入替代路径和异常路径:
名称 | 类型 | 内容 |
---|---|---|
密码错误 | Exception | 如果密码错误,提示重新输入密码 |
余额不足 | Execption | 如果余额不足,返回取款额输入画面 |
打印凭条 | Alternate | 如果用户选择打印凭条,进入打印中画面,完成后返回是否需要其他服务画面 |
办理其他业务 | Alternate | 如果用户选择其他服务,转入服务选择画面 |
超时吞卡 | Execption | 超过30秒没有取卡,执行吞卡动作 |
脚本输入结果如下:
用例添加完成后画面的样子。
添加参与者
选择
图标之后在画面中ATM边界之外适当的位置添加两个参与者:客户和银行系统。
添加使用关系
选择
图标之后分别在客户和取款用例之间,取款用例和银行系统之间连线。
完成!