UMLet 是一款简单实用、开源的轻量级 UML 建模工具,它能够帮助我们快速地构建 UML 用例图、UML 静态图、UML 行为图和 UML 实现图等各种 UML 模型。UMLet 可以在 Windows、OS X 和 Linux 上独立运行,与大型软件 Visio 相比,更加灵活轻便,易于安装。

安装

  1. 运行 UMLet 需要电脑上安装有 java 运行环境,可以前往 Oracle 官网 ,根据自己的电脑系统下载相应的 JDK

  2. 安装好 java 运行环境后,前往UMLet官网下载相应的安装包,目前最新版本为 UMLet 14.2 stand-alone ,下载完成后进行解压。

  3. 如果是 Windows 系统,直接在解压的目录内双击 “Umlet.exe” 或者 ”Umlet.jar“ 即可打开;如果是 Linux 或者 OS X 系统,则在解压目录下打开终端,输入如下命令即可打开:

    $ java -jar umlet.jar

主要界面

UMLet 的主要界面如下:

我们主要使用的是四个区:

  • 工作区:用于绘制各种 UML 模型图。
  • 模版选择区:用于选择 UML 的各种模版。
  • 模版区:绘制模型图的元素绝大部分都要从模版区中选择并拖拽出去。
  • 文本控制区:用于编写 UML 元素的属性,如类名称、字段、方法、背景色等等。

绘制用例图

首先,在模版选择区选择 UML Use Case 模版获取所有用例图的元素:

下面,我们将使用一个简单的酒店预定系统 Reserve Hotel 来展示 UML 用例图主要元素的使用及绘制。

创建系统

在 UML 模型中,一个系统代表一个应用,它包含了自己的名字以及所有合适的用例,通常用一个矩形代表一个系统。在 UMLet 中,把 System 元素拖拽到工作区中某个位置,然后在文本控制区中把系统的名字改成 Reserve Hotel ,把标题改成位于中间:

添加 Actors

一个 Actor 元素代表与系统进行交互的一个外部实体(可以是人或者其他外设),每一个 Actor 都必须至少参与一个 Use caseActor 主要分为如下两类:

  • main actor:使用系统的各种用例,并且能够查看系统返回的用例执行结果,在用例图中用一个小人的图形来表示。
  • secondary actor:用于辅助系统完成其他必要的外部功能,如第三方支付功能、定位功能等,在用例图中用一个矩形和用 <<>> 括起来的属性来表示。

我们这个酒店预定系统的 main actor 只有一个,就是客户,我们将其命名为 Traveller 。而 secondary actor 主要有:

  • GPS 定位服务,方便用户查找酒店位置
  • 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

  • Find Hotels ,用户查询并选择自己满意的酒店。
  • Make reservation ,用户订购酒店。
  • Manage basket 用户管理自己的订购信息。
  • Pay 支付酒店费用。

在 UMLet 的模版选择区中选择相应数量的 Use case 元素添加到 Reserve Hotel 系统的方框中,并修改为相应的名字:

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

在我们的酒店预定系统中,make reservation 这个 Use case 需要包含 choose hotelchoose room typeconfirm reservation 三个 Use case ,分别实现预定酒店过程中需要实现的选择酒店、选择房间类型、确认订单的子服务;而在选择酒店的过程中,会涉及到根据以往用户的反馈对各种酒店进行排名的问题,因此 choose hotel 也应该包含一个 sortUse 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

在我们的酒店预定系统中,一般情况下用户会根据酒店的名字来获得 Find Hotels 这个服务,但是有时候,用户可能会希望通过指定地址和搜索地图的方式来找到自己满意的酒店,因此应该把 find locationfind on map 这两个可选的 Use case 添加到 Find Hotels 的扩展功能中去。我们把所有扩展的 Use case 也添加进用例图中:

联系 Use case 与 Actors

到目前为止,我们已经基本上把 Reserve Hotel 系统的所有元素都添加进用例图中了。前面已经说过,每一个 Actor 都必须至少参与一个 Use case ,因此我们把 Use caseActors 联系起来。联系使用一个长实线 —————— 表示,意思是 “take part in”。

在我们的酒店预定系统中,Traveller 需要参与到 Find Hotelsmake reservationmanage basketpay 这四个 Use case 中去, GPS API 需要参与到 find on map 中去,三个第三方支付 Actor 则需要参与到 pay 中去,因此我们使用长实线把这些实体和 Use case 联系起来:

改变 Use case 的属性

我们可以通过在文本控制框输入一些控制指令来改变 Use case 的属性,比如在我们的酒店预定系统中,GPS API 以及第三方支付服务这些 Actors 需要用到专门的技术,我们想把它们的背景变成黄色。点击这些 Use case ,在它们的文本控制框中输入指令 bg=yellow 即可把它们的背景变成黄色:

经过以上所有过程,我们成功地绘制了关于 Reserve Hotel 系统的一个简单用例图。

总结

以上是我个人在学习使用 UMLet 工具进行 UML 建模时进行的一个实践,利用这篇博客来进行总结,希望能对学习 UML 的童鞋有所帮助。

参考网站

  1. http://www.upg-bulletin-se.ro/archive/2006-4/6.%20Dumitrascu%20UML%20II.pdf
  2. http://www3.travel.com.au/hotels.html
  3. https://www.awaimai.com/1448.html

UMLet 使用说明之绘制用例图相关推荐

  1. 使用UMLet绘制用例图及活动图

    使用UMLet绘制用例图及活动图 UMLet是一款开放源代码的轻量级UML建模工具,它能够帮助我们快速地构建用例图.活动图等各种 UML模型. 用例图充当用户要求说明的焦点. 它描述要求.用户和主要组 ...

  2. 不使用powerdesigner手工绘制用例图例题详解

    文章目录 1.题目 2.分析过程 3.结果 4.需要注意的细节 5.本题易错的地方 1.题目 根据以下场景绘制用例图. 某公司预开发一个反馈系统作为其CRM(客户关系管理)的一部分.系统基本功能描述如 ...

  3. 系统分析与设计-用例建模之绘制用例图

    用例建模 - 绘制用例图 文章目录 用例建模 - 绘制用例图 简答题 建模练习题(用例模型) 简答题 1.用例的概念 在软件和系统工程中,用例是一系列系统的操作或事件步骤,通常通过用户的使用场景来获取 ...

  4. 用例建模-绘制用例图

    1.简答题 用例的概念 用例(use case)是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术.每个用例提供了一个或多个场景,该场景说明了系统是如何和最终 ...

  5. 作业四:用例建模 - 绘制用例图

    一.简答题 用例的概念 用例(use case),或译使用案例.用况,是软件工程或系统工程中对系统如何反应外界请求的描述,是一种通过用户的使用场景来获取需求的技术. 每个用例提供了一个或多个场景,该场 ...

  6. 用python绘制用例图源代码_Python设计模式 - UML - 用例图

    简介 用例图主要是从用户的角度出发对软件产品的功能及执行者进行描述的. 用例图是从需求分析到软件交付的第一步,图示化展示参与者与参与者之间.参与者与用例之间.用例与用例之间的关系,帮助开发人员更好的理 ...

  7. 使用Rose绘制用例图、类图、状态图等详细步骤说明

    一.用例图 设置"包含"和"扩展"属性".(如图1) 图1 二.类图 下面是关于类图中对象属性的一些设置.(如图2) 图2 设置了"模式化类 ...

  8. 用例建模 - 绘制用例图

    1.简答题 1.用例的概念 用例是一组相关的成功和失败.场景的集合,用来描述参与者如何使用系统来实现其目标.它是文本式的情节描述. 2.用例和场景的关系?什么是主场景或 happy path? 场景是 ...

  9. matplotlib绘制多张图、多子图、多例图

    绘制多图 关键: fig = plt.figure(1) 表示新建第几个图 import matplotlib.pyplot as pltfig = plt.figure(1) plt_rec_los ...

最新文章

  1. Java线上问题排障:Linux内核bug引发JVM死锁导致线程假死
  2. 戴尔塔式服务器各型号,戴尔_PowerEdge T440_塔式服务器_网络存储服务器_服务器 | Dell 中国大陆...
  3. 关于各组评价的自我评价
  4. VTK:模型之ContourTriangulator
  5. rip协议中周期性广播路由信息的报文_距离矢量路由协议(RIP)
  6. jquery获取html文件大小,jQuery获取file表单选择文件的路径、名字、大小、类型_忘却_前端开发者...
  7. 极间电容matlab,电子仿真虚拟实验室
  8. MySQL学习记录 (四) ----- SQL数据管理语句(DML)
  9. android textwatcher 获取当前控件,Android中AutoCompleteTextView与TextWatcher结合小实例
  10. 无法读源文件或磁盘_持久化(3):磁盘阵列
  11. baiduexporter+Aria在Chrome最新版上的尝试(2020.07)
  12. 踏歌黑名单工具类DEMO(AUB)
  13. WordPress的.htaccess优化技巧是什么
  14. 第三次面试----蓝凌软件面试记录
  15. 作为APIcaller识别发票信息
  16. Windows下MongoDB数据库基本使用
  17. C语言Dialogbox添加图片,dialogbox_传奇服务端CloseBigDialogBox是什么意思
  18. 【Delphi】微信支付控件(二)(半小时让您系统拥有支付功能)源代码、帮助文件、演示程序
  19. 794. 有效的井字游戏
  20. 强大的版本管理工具 Git

热门文章

  1. 【Apple Studio Display】苹果显示器无法连接Dell 5488
  2. Java设计模式(通俗版)
  3. cba篮球暂停次数和时间_一场篮球比赛可以叫多少次暂停?
  4. STM32项目设计:基于stm32f4的智能门锁(附项目视频全套教程、源码资料)
  5. matlab 指定区域随机游走_统计学原理与matlab——(5)正态分布
  6. linux usb3.0关机,实用的USB3.0接口与关机充电功能_笔记本评测-中关村在线
  7. AirPods国行和海外版有什么区别
  8. 抢抓数字经济机遇加快云南省数字化发展——云南省数字经济发展实践
  9. Centos7 安装harbor
  10. 高级网络配置-网络桥接