UMLet 使用说明之绘制用例图
UMLet 是一款简单实用、开源的轻量级 UML 建模工具,它能够帮助我们快速地构建 UML 用例图、UML 静态图、UML 行为图和 UML 实现图等各种 UML 模型。UMLet 可以在 Windows、OS X 和 Linux 上独立运行,与大型软件 Visio 相比,更加灵活轻便,易于安装。
主要界面
UMLet 的主要界面如下:
我们主要使用的是四个区:
工作区:用于绘制各种 UML 模型图。
模版选择区:用于选择 UML 的各种模版。
模版区:绘制模型图的元素绝大部分都要从模版区中选择并拖拽出去。
文本控制区:用于编写 UML 元素的属性,如类名称、字段、方法、背景色等等。
绘制用例图
下面,我们将使用一个简单的小程序点餐系统 小程序点餐
来展示 UML 用例图主要元素的使用及绘制。
创建系统
在 UML 模型中,一个系统代表一个应用,它包含了自己的名字以及所有合适的用例,通常用一个矩形代表一个系统。在 UMLet 中,把 System
元素拖拽到工作区中某个位置,然后在文本控制区中把系统的名字改成 小程序点餐
,把标题改成位于中间:
一个 Actor
元素代表与系统进行交互的一个外部实体(可以是人或者其他外设),每一个 Actor
都必须至少参与一个 Use case
。Actor
主要分为如下两类:
- main actor:使用系统的各种用例,并且能够查看系统返回的用例执行结果,在用例图中用一个小人的图形来表示。
- secondary actor:用于辅助系统完成其他必要的外部功能,如第三方支付功能、定位功能等,在用例图中用一个矩形和用
<<>>
括起来的属性来表示。
我们这个小程序点餐系统的 main actor
只有一个,就是客户,我们将其命名为 customer
。而 secondary actor
主要有:
菜单
方便用户点餐Wechat pay
第三方支付服务,支持微信支付Apple pay
第三方支付服务,支持苹果支付Alipay
第三方支付服务,支持支付宝支付
把各个 Actors
添加进工作区中,注意 main actor
一般置于系统的左边,secondary actor
一般置于系统的右边:
添加 Use case
一个 Use case
代表了系统与用户进行交互的一组动作序列(注意是一组动作而不是一个动作!),系统在完成该组动作序列后将会产生相应的结果返回给参与到该用例中的 Actors
。每一个 Use case
都必须具有如下过程:
总体上说,每一个 Use case
都代表了系统所提供给用户的一项服务,因此,Use case
的名字必须以动词开头!在 UML 用例图中,Use case
主要使用一个椭圆来表示。
在我们的酒店预定系统中,主要有以下的 Use case
:
查找菜式
,用户查询并选择自己满意的菜式。下单
,用户下单。管理订单
用户管理自己的订购信息。支付
支付费用。
在 UMLet 的模版选择区中选择相应数量的 Use case
元素添加到 小程序点餐
系统的方框中,并修改为相应的名字:
includes:包含其他 Use case
一个 Use case
可以包含其他的 Use case
。如果 Use case B includes Use case A
,则我们说 Use case B
依赖于 Use case A
,也就是说要完成 Use case B
中的所有动作,必须要完成 Use case A
中的所有动作,即 Use case A
中的动作序列是 Use case B
中不可或缺的。包含操作在 UML 用例图中使用一个上方标记有 <<includes>>
的虚线箭头 ---->
来表示,没有箭头的一端表示包含者 (includes),有箭头的一端表示被包含者 (included),如在上例中表示为 Use case B (includes)------> Use case A
。
在我们的小程序点餐系统中,查找菜式
这个 Use case
需要包含 选择菜
、确认菜式
、选择数量
三个 Use case
。
extends:扩展其他 Use case
对于某些用例来说,在完成基本功能的前提下,还可以提供一些额外的可选的(非必需)功能,这个时候可以把这些可选的功能转化成另一些 Use case
,然后作为扩展功能补充到原来的 Use case
中去。如果 Use case A extends Use case B
,则说明 Use case A
中实现的功能可以作为可选的功能添加到 Use case B
中去。扩展操作在 UML 用例图中使用一个上方标记有 <<extends>>
的虚线箭头 ---->
来表示,没有箭头的一端表示扩展的用例 (extends),有箭头的一端表示被扩展的对象 (extended),如在上例中表示为 Use case A (extends)------> Use case B
。 这里写图片描述
总结
以上是我个人在学习使用 UMLet 工具进行 UML 建模时进行的一个实践,利用这篇博客来进行总结,希望能对学习 UML 的童鞋有所帮助。