编辑推荐: |
本文编写目的:主要是想帮助大家快速理解UML,在工作或学习中快速读懂并理解UML相关需求。望对您有所帮助。
本文来源于知乎,由火龙果软件Linda编辑,推荐。 |
|
首先一句话说明UML是什么
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
然后再来看下UML的分类
UML有很多种,但大体分为两类:结构型的UML 和 行为型的UML
![](images/2024010841.png)
从实用的角度和常用的角度出发一一介绍UML
1 类图
1.1 什么是类图?
类图是业务结构建模的重要工具,可以表达类、接口以及类之间的静态结构和关系。
1.2 类之间的关系
l 类之间的关联关系
![](images/2024010842.png)
l 类之间的包含关系
![](images/2024010843.png)
l 类之间的继承关系
![](images/2024010844.png)
l 类之间的依赖关系
![](images/2024010845.png)
1.3 类之间的递归关系
![](images/2024010846.png)
1.4 类之间的“三角”关系
![](images/2024010847.png)
2 对象图
2.1 什么是对象图?
类(class)的实例(instance)就是对象。
2.2 类和对象的对比
![](images/2024010848.png)
2.3 类图和对象图的对比
![](images/2024010849.png)
3 活动图
3.1 什么是活动图?
活动图本质上也是一种流程图,可以描述系统的工作流程和并发行为。
3.2 活动图的基本语法
![](images/20240108410.png)
3.3 基本活动图
![](images/20240108411.png)
3.4 活动图中关于判断的三种处理方法
1) 在判断菱形旁边写下判断的句子。
![](images/20240108412.png)
2) 不需要写判断的内容,直接通过监护来表示这个判断(如3.3)。
3) 在判断菱形之前增加一个活动,表明判断的动作,而判断菱形不需要写判断的句子。
3.5 活动图多层分支的表达方式
![](images/20240108413.png)
3.6 活动图泳道分区
![](images/20240108414.png)
3.7 并行的活动
1) 并行的图形符号
![](images/20240108415.png)
2) 并行活动图示例
![](images/20240108416.png)
3.8 连接件
有时候活动图很大,一张纸画不下,那么就需要另外一张纸继续画下去。
左边的符号箭头指向A,表示活动图到这里要转到另外一张图,右边的符号由A开始指出一个箭头表示继续活动图
连接件的图形符号:
![](images/20240108417.png)
4 状态机图
4.1 什么是状态机图?
很多资料中叫“状态图”其实标准语法是“状态机图”。用于描述一个对象的所有状态和状态之间的转换。
4.2 “活动图”和“状态机图”圆角框的区别
![](images/20240108418.png)
4.3 用实例说明流程图和状态机图的区别
1) 请假流程活动图
![](images/20240108419.png)
2) 请假活动状态机图
![](images/20240108420.png)
4.4 多级审批的状态机图案例
![](images/20240108421.png)
5 顺序图
5.1 什么是顺序图?
顺序图也是一种动态建模方法(跟流程图、活动图一样)。优点在于更善于表达多个角色展开交互时的流程。
5.2 顺序图基本语法
![](images/20240108422.png)
5.3 仅用消息的形式表达
![](images/20240108423.png)
5.4 用消息+返回值的形式表达
![](images/20240108424.png)
5.5 顺序图VS活动图
1) 用顺序图表达购买地铁票
![](images/20240108425.png)
2) 用活动图表达购买地铁票
![](images/20240108426.png)
5.6 顺序图的循环及分支结构
1) Loop(循环):如果满足“循环条件”就重复执行框中内容。
2) Alt(条件分支):如果满足“条件1”就执行上部分内容,如果满足“条件2”就执行下部分内容。如果有多个条件依次类推。
3) opt(可选分支):如果满足“条件”就执行框中内容,否则就跳过去。
![](images/20240108427.png)
5.7 顺序图的循环及分支案例
![](images/20240108428.png)
6 通信图
6.1 什么是通信图
“通信图”是“顺序图”的另外一种表示方式。
6.2 通信图案例
![](images/20240108429.png)
7 时序图
7.1 什么是时序图?
时序图也叫时间图,用于表示某东西的状态随时间变化而变化。
7.2 时序图样例
![](images/20240108430.png)
8 用例图
8.1 什么是用例图?
用例图是用户与系统交互的最简表示形式,可以展现用户和与他相关的用例之间的关系。
8.2 用例图的基本语法
![](images/20240108431.png)
8.3 用例图的基本用法
![](images/20240108432.png)
8.4 用例图举例
![](images/20240108433.png)
8.5 输入和导出用例图
![](images/20240108434.png)
8.6 用例图的Include
![](images/20240108435.png)
8.7 用例图的extend
![](images/20240108436.png)
8.8 角色的继承
![](images/20240108437.png)
8.9 用例的继承
![](images/20240108438.png)
8.10 用例表模板
如果用例图不能详细地说明需求,每个用例图就需要填写一个用例表
![](images/20240108439.png)
9 包图
9.1 什么是包图?
包图是将UML图进行“打包”的一种图,能帮助我们有效组织好各种UML图和表达的思路,同时包图也是进行软件架构设计的有力工具。
9.2 包图的基本表达方式
![](images/20240108440.png)
9.3 包图的依赖关系
![](images/20240108441.png)
9.4 用包图组织用例
![](images/20240108442.png)
9.5 用包图进行的架构设计
![](images/20240108443.png)
10 部署图
10.1 什么是部署图?
部署图主要是在物理的层次上做整体的系统规划,跟拓扑图相比,部署图可以细化设计。
10.2 部署图与拓扑图的区别
1) 拓扑图
![](images/20240108444.png)
2) 部署图
![](images/20240108445.png)
11 构件图
11.1 什么是构件图?
“构件图”也叫“组件图”,是物理上独立的东西,他可以单独维护、升级、替换。
11.2 构件图的基本用法
![](images/20240108446.png)
11.3 构件图和部署图捆绑用法
![](images/20240108447.png)
|