UML 简易使用教程

最近刚好有空,遂决定对应 UML 常用的一些图进行整理,供自己以及需要的人查阅。
UML 分为静态模型与动态模型。静态模型描述一个系统的静态特征,固定的框架结构。包括用例图类图、对象图、组件图、部署图;动态模型包括时序图、协作图、状态图、活动图。本文将主要对用例图、类图、时序图、状态图的使用进行了简要介绍。

  • 一、静态建模
    • 1 用例图(use case )
      • 1.1 作用
      • 1.2 要素
      • 1.3 语法
      • 1.4 举例
    • 2 类图
      • 2.1 作用
      • 2.2 要素
      • 2.3 语法
      • 2.4 举例
    • 3 对象图
      • 3.1 作用
      • 3.2 要素
      • 3.3 语法
    • 4 组件图
      • 4.1 作用
      • 4.2 要素
      • 4.3 语法
    • 5 部署图
      • 5.1 作用用来表现用于部署软件的物理设备信息。
      • 5.2 要素
      • 5.3 语法
  • 二、动态建模
    • 1 时序图
      • 1.1 作用
      • 1.2 要素
      • 1.3 语法
      • 1.4 举例
    • 2 协作图
      • 2.1 作用
      • 2.2 要素
      • 2.3 语法
      • 2.4 举例
    • 3 状态图
      • 3.1 作用
      • 3.2 要素
      • 3.3 语法
      • 3.4 举例
    • 4 活动图
      • 4.1 作用
      • 4.2 要素
      • 4.3 语法
      • 4.4 举例
  • 三、总结

一、静态建模

1 用例图(use case )

1.1 作用

展示系统的核心功能及与其交互的用户。系统可以是整个系统,也可以是某个局部,但用户一定是在该系统外。

1.2 要素

用例(use case):也就是一个相对独立的功能。

参与者(actor):与用例存在交互关系的外部实体。

关系:包括参与者与用例间的关系,参与者之间的关系,以及用例间的关系。

1.3 语法

用例 用椭圆表示,中间写上功能名。
image.png

参与者 一般是一个小人的形状。
image.png

关系 用带箭头的直线表示,箭头表示信息传输方向,如果不关注信息的流向,也可省略箭头。
image.png

1.4 举例

如图是某视频软件播放系统的用例图,我们能从中获取的最主要信息是什么呢?显然是普通用户能使用播放、暂停、选集、查历史记录的功能,而会员用户还能使用投屏功能。
image.png

2 类图

类图是我们使用较多且相当实用的一种图。

2.1 作用

展现多个类的特性,以及类之间的协作与交互,用来对系统的静态结构进行建模。

2.2 要素

类:包括类名、属性和方法三部分。

接口:这里指的是接口类,不可被实例化,只可被实现。

关系:类之间的关系主要有以下几种:

  • 关联 事物之间的一种基本关系,如老师和学生间有教学关系,员工和公司间是雇佣关系。
  • 组成关系 包括组合金额聚集,前者部分与整体的联系更紧密。(1)聚集 表示多个同类型的部分构成了整体,如森林是树木的聚集,蚁群是蚂蚁的聚集。(2)组合 同一事物整体与局部的紧密组成关系。如人组合了眼睛,眼睛组合了眼球。
  • 依赖 这个关系不好描述,如农民使用锄头种地,鱼依赖水存活,程序员通过chatgpt 干活。
  • 泛化 类图里就是继承。
  • 实现 实现某个接口。

需要明白,类之间的关系并不总是那么明确,比如关联和依赖,有时间就不太好判定。个人认为,也没必要过于较真究竟是哪种关系,在面向对象写法中,主要就是继承和组合,类图能传递出该用哪种就足够了。

2.3 语法

用一块矩形表示。从上到下依次是类名、属性和方法。属性后可加上属性的类型,方法的括号中也可写上参数,但个人比较喜欢下图这种最简略的写法。属性和方法名前需加上符号说明访问权限:

  • + 表示公有
  • - 表示私有
  • # 表示保护
    image.png

接口 用一个圆圈表示
image.png

关系 关系的表示直接看下面的图吧,当然,部分图有不同的画法,不再赘述。

image.png

2.4 举例

下面是我 YY 的一个视频播放系统的类图,主要是看看各种关系怎么画,对照着回顾一下 2.3 中的内容。(1)继承,普通用户和会员用户都继承了用户这个类;(2)依赖,用户依赖于播放管理器进行各种操作;(3)组合,播放管理器组合了多媒体控制器、启停管理器、资源管理器;(4)实现,多媒体控制器需要实现投屏这个接口;(5)关联,资源管理和视频资源间存在管理关系。

image.png

3 对象图

个人似乎还没有使用过。

3.1 作用

描述在某一时刻,类图中各个对象之间的关系。在不同时刻,类图中每一个类对应的对象数目是不一样的,也就是说同一个类图的对象图会随着时间变化。

3.2 要素

对象结点:某时刻类对应的对象。

关系:对象间的关系,通过链来联系。

3.3 语法

对象结点 的表示方法与类相似,只是对象名下加下划线,与类作区分。
image.png

关系 用直线表示,有向关系加箭头。

4 组件图

也称为构建图,是被封装起来的软件逻辑部件,软件系统正是由这些部件构成。与类相似,但是其范围更大,可以是包含多个类的子系统,当然也可以是单独一个类。

4.1 作用

描述一个系统所分解的构建及其关系,用来封装系统中的一组类,从而使这组类实现的功能可被复用。

4.2 要素

组件:包括接口和端口。接口是指其向外部提供或从外部获取的操作,与类中的接口类似;端口是一个部件,用来与外部进行通信,它是对接口的包装,一个构建额可以只有接口而没有端口。

关系:组件间的关系。

4.3 语法

构建 的表示如图。端口可以没有,接口直接由构建呈现。

image.png

5 部署图

这块我没有实战经验,只是根据资料进行的简单总结。

5.1 作用用来表现用于部署软件的物理设备信息。

5.2 要素

结点:可以部署软件制品并能够进行计算的物理设备。
连接:结点间进行通信的交互路径。结点间的关系有通信、包含、和使用。

5.3 语法

结点 用一个立方体表示。
image.png

二、动态建模

1 时序图

1.1 作用

描述一段时间范围内,多个对象之间交互的消息时间顺序

1.2 要素

实体:时序图中参与交互的角色。

生命线:参与交互的实体及其下面的虚线被称为生命线,在这条线上,时间是从上到下递增的。

消息:对象之间传递的信息。包括(1)同步消息,发送者需要停止活动等待接收方返回;(2)异步消息,发送方不等待返回,继续活动;(3)返回消息,过程调用返回。

交互事件:在交互的某个时刻发生的事件,也被叫做激活。一条消息必然对应着发送消息的事件和接收消息的事件。

1.3 语法

生命线 用矩形框加虚线表示。

image.png

消息 的表示如下。(哈哈,我发现这个软件里的小图标画的很到位,我就不画蛇添足再搞一遍了,直接贴过来了

image.png

1.4 举例

还是用之前的视频软件举例,下面是其登录时的时序图。

image.png

在这个流程中,有一个 alt 选项框,表示如果校验通过(虚线框上部分),就跳转到内容主页,否则就提示错误信息(虚线框下部分)。其他常用的条件操作还有:

  • opt:if true,如果成功就执行条件框里对应的内容;
  • loop:循环,满足条件时,虚线框内容可以多次执行;
  • par:并行,每一个虚框里的内容会同时执行;
  • region:临界区域,该虚框只允许一个线程对它立即执行。

2 协作图

2.1 作用

表现一定范围内对象之间的协作的信息,也就是参与交互对象间的结构关系,也称为通信图。

2.2 要素

对象实体:参与交互的对象实体。

链:两个实体之间存在的消息联系。

消息:实体间传递的消息。

2.3 语法

对象实体 用矩形框表示,冒号前是对象名(可省略),冒号后是对象所在类的名。
image.png

用一条无箭头的线表示。

消息 用带箭头的直线表示。

2.4 举例

image.png

3 状态图

3.1 作用

描述一个对象在事件触发时,其内部状态的转变过程。

3.2 要素

状态结点:表示事物的一个相对稳定的状态,必有一个初始状态和一个结束状态。

动作:导致状态变化的操作或事件。

3.3 语法

状态结点 用一个圆角矩形表示

image.png

3.4 举例

image.png

4 活动图

4.1 作用

用于事物的动态行为过程建模,描述活动的过程,展现从一个活动到另一个活动的控制流。

4.2 要素

活动结点:活动流程中的一个步骤,分为(1)动作结点,活动的执行单元;(2)控制结点,包括判断(decision)/合并(merge),特点是只会走一条路径;分叉(fork)/结合(join),特点是所有路劲都走了才会继续进行活动流程(3)对象结点,描述活动中的实体或对象。
转换:从一个活动到下一个活动。

4.3 语法

image.png

4.4 举例

image.png

三、总结

用例图、类图、时序图、状态机图这四种图形是最为常用的,需要熟练绘制理解。至于其他几种图形,在我的见识中,几乎没有使用过,能读懂即可,所以我写的也不很详细。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/35329.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

设计模式中的UML类图

在线绘图工具: https://app.diagrams.net/ https://www.processon.com/ 第一个需要挂梯子,但很好用,本文用它绘制样例图 最近在看Head First一书,即使在软件工程的课程中学习过UML类图如何绘制,但显然已经忘掉很多了…

面向对象分析之UML

大一的时候就已经接触过UML图,当时也只是懵懵懂懂,结合项目代码大概知道这是一种类似流程图的东西。如今要软考了,重新接触UML才知道这不仅仅只是流程图那么简单。 简介 UML,也就是所谓的统一建模语言,这是一种被广泛接受的面向对象的分析方法。说是一种语言,可它并不像…

介绍一个生成流程图工具—解放生产力

ChatGPT生成流程图 ChatGPTPlantUML生成流程图 ChatGPTPlantUML生成流程图 环境: 科学上网(或者有其他渠道可以直接访问chatgpt)PlantUML在线生成地址:链接: PlantUML 首先来到GPT,生成指令,下面我直接让…

Idea+PlantUML自动生成UML图(最详教学)

目录 一、下载idea插件 二、安装Graphviz 三、idea结合Graphviz 四、PlantUML结合ChatGPT ​ 五、无ChatGPT 一、下载idea插件 idea从 FIle-->Settings-->Plugins-->Marketplace 进入到插件下载界面,搜索PlantUML,点击"install"下载…

使用 PlantUML 绘制的 UML——代码画时序图

使用 PlantUML 绘制的 UML——代码画时序图 前言 在看源码的时候,看见有些大佬画的各种图,能更加方便可视的理解源码逻辑。就想着学习自己画,但是在找了一些画UML图的工具,但是不仅难画,而且难看(仅仅表示…

chatgpt赋能Python-pythonuml图

Python UML图:如何使用UML图来提高Python程序员的效率? 如果你是一位Python程序员,那么你一定知道Python是一种高效的编程语言,被广泛用于各种领域,如机器学习、人工智能、Web开发等。然而,对于复杂的程序…

穿搭速递网页

<!DOCTYPE html> <html><head><meta http-equiv"Content-Type" content"text/html;charset utf-8"/><link rel"stylesheet" href"css/style05.css" type"text/css"/><title>穿搭速递…

Midjourney如何给模特换衣服

Midjourney如何给模特换衣服 文章来源&#xff1a;【探金圈】http://tanjin.wydxda.ltd/article/11023 【Midjourney如何给模特换衣服】 视频教程地址&#xff1a;http://tanjin.wydxda.ltd/article/11023 1、把衣服的素材准备好 2、在MIDJOURNEY中输入想要的模特描述词 Full-b…

最新薪酬调研报告:2021年中国薪资增长率预计为5.2%

全球领先的健康、财富及人才咨询服务公司美世正式发布了新一年度的《中国整体薪酬调研报告》。报告来自对近4,000家企业人员的整体薪酬调研反馈&#xff0c;其结果显示&#xff0c;2020年参与调研的中国企业有21%冻薪&#xff0c;而薪资增长率预计为5.2%&#xff08;不含冻薪&a…

人力社保部发布2018年失业率结果,这组数据扎痛了多少人的心?

6月10日&#xff0c;人力社保部发布2018年度人力资源和社会保障事业发展统计公报。公报显示&#xff0c;全年基本养老保险基金总收入55005亿元&#xff0c;基金总支出47550亿元。年末基本养老保险基金累计结存58152亿元。2018年7月1日&#xff0c;建立实施企业职工基本养老保险…

商业图表案例6-学历与收入失业率关系

#图表挑战 #Excel图表 #Excel数据分析 案例6:学历与收入失业率关系&#xff0c;使用横向的条形图&#xff0c;平均水平使用趋势线。不用斜线图&#xff0c;主要是交叉没有一根线突出表示。2个反比关系&#xff0c;做2个条形图比较突出反比关系。

2020 年中国程序员薪资和生活现状调查报告

作者 | 程序员客栈 来源 | ID&#xff1a;proginnwx 根据中国互联网络信息中心&#xff08;CNNIC&#xff09;近日发布第 44 次《中国互联网络发展状况统计报告》。截至 2019 年 06 月&#xff0c;中国网民规模为 8.54 亿&#xff0c;较 2018 年底增加 2598 万。网上外卖用户规…

2019年国外程序员薪资报告分析,40岁以后薪资呈下降趋势

最近&#xff0c;在小编在网上看到由高盛及Hackerrank公司发布的关于国外程序员的薪资报告&#xff0c;该报告根据地域和行业等维度将程序员薪资进行划分&#xff0c;详情如下&#xff1a; 在欧洲&#xff0c;程序员工资最高的行业是汽车行业&#xff0c;平均薪资达到了5.2W美元…

啥?失业率到了18%?别慌,咱仔细看看数据再说~~

编 辑&#xff1a;彭文华 来 源&#xff1a;大数据架构师 彭友们好&#xff0c;我是老彭呀。前两天网上到处都在传中国的失业率达到了惊人的18%&#xff01;&#xff01;&#xff01;我都蒙了呀&#xff01;这数据这么惊人了吗&#xff1f; 吓得我连夜到处查数据来源&#xff0…

2017中国程序员薪资生存现状调查报告

程序员一直都是一个备受人们关注的群体。2014年&#xff0c;据IDC统计&#xff0c;全球约有1850万名程序员&#xff0c;中国占10%。随着近年全国互联网创业热潮的兴起&#xff0c;“互联网”、“云计算”以及“智能硬件”等领域发展迅速&#xff0c;市场对程序员的需求更为旺盛…

以太坊又迎来重要升级,1600万ETH会不会解锁砸盘?这个赛道热起来了…

这是白话区块链的第1838期原创 作者 | Joyce出品&#xff5c;白话区块链&#xff08;ID&#xff1a;hellobtc&#xff09; 去年9月15日讨论得轰轰烈烈的以太坊合并事件依然历历在目&#xff0c;以太坊的价格也从最低的800多U涨幅超过100%&#xff0c;达到将近2000U的小高峰。短…

业绩大幅上扬 AR/VR营收喜人,飞天云动的商业模式有何竞争力?

VR无疑是近年来大热的商业概念之一&#xff0c;被认为是通往元宇宙的“钥匙”&#xff0c;但是在过去的一年&#xff0c;关于VR“凉了”的言论甚嚣尘上&#xff0c;不少报道指出VR产业存在内容短板、场景不足等诸多痛点&#xff0c;市场似乎正在对VR失去兴趣。 不过&#xff0…

看了百度Q1财报 我发出了“All In 百度”的交易指令

‍数据智能产业创新服务媒体 ——聚焦数智 改变商业 2023年5月16日傍晚&#xff0c;百度公布了截至2023 年 3 月 31 日的第一季度未经审计的财务业绩。数据显示&#xff0c;2023年一季度百度实现营收311.44亿元&#xff0c;同比增长10%&#xff1b;归属百度的净利润&#xff0…

全面注册制对量化交易的影响 | A+CLUB 2023专题峰会圆桌论坛

4月1日下午&#xff0c;ACLUB 2023专题峰会在上海陆家嘴圆满举行&#xff0c;本届峰会主题为“守正创新 聚力前行——助力量化行业高质量发展”&#xff0c;近80家业内领先机构逾百人参加会议&#xff0c;大家齐聚一堂&#xff0c;就量化行业的技术与生态、趋势与未来&#xff…

没有这些,别妄谈做 ChatGPT 了

文&#xff5c;卖萌酱&#xff0c;转自公众号「夕小瑶的卖萌屋」 ChatGPT 破圈爆火后&#xff0c;越来越多人开始问&#xff1a; “啥时候出现中国版的 ChatGPT&#xff1f;” 国内学术界和工业界&#xff0c;都纷纷躁动起来——百度、阿里、字节等大厂纷纷喊口号&#xff0c;一…