编辑推荐: |
本文编写目的:主要是想帮助大家快速理解UML,在工作或学习中快速读懂并理解UML相关需求。望对您有所帮助。
本文来源于知乎,由火龙果软件Linda编辑,推荐。 |
|
首先一句话说明UML是什么
统一建模语言(Unified Modeling Language,UML)是一种为面向对象系统的产品进行说明、可视化和编制文档的一种标准语言,是非专利的第三代建模和规约语言。UML是面向对象设计的建模工具,独立于任何具体程序设计语言。
然后再来看下UML的分类
UML有很多种,但大体分为两类:结构型的UML 和 行为型的UML

从实用的角度和常用的角度出发一一介绍UML
1 类图
1.1 什么是类图?
类图是业务结构建模的重要工具,可以表达类、接口以及类之间的静态结构和关系。
1.2 类之间的关系
l 类之间的关联关系

l 类之间的包含关系

l 类之间的继承关系

l 类之间的依赖关系

1.3 类之间的递归关系

1.4 类之间的“三角”关系

2 对象图
2.1 什么是对象图?
类(class)的实例(instance)就是对象。
2.2 类和对象的对比

2.3 类图和对象图的对比

3 活动图
3.1 什么是活动图?
活动图本质上也是一种流程图,可以描述系统的工作流程和并发行为。
3.2 活动图的基本语法

3.3 基本活动图

3.4 活动图中关于判断的三种处理方法
1) 在判断菱形旁边写下判断的句子。

2) 不需要写判断的内容,直接通过监护来表示这个判断(如3.3)。
3) 在判断菱形之前增加一个活动,表明判断的动作,而判断菱形不需要写判断的句子。
3.5 活动图多层分支的表达方式

3.6 活动图泳道分区

3.7 并行的活动
1) 并行的图形符号

2) 并行活动图示例

3.8 连接件
有时候活动图很大,一张纸画不下,那么就需要另外一张纸继续画下去。
左边的符号箭头指向A,表示活动图到这里要转到另外一张图,右边的符号由A开始指出一个箭头表示继续活动图
连接件的图形符号:

4 状态机图
4.1 什么是状态机图?
很多资料中叫“状态图”其实标准语法是“状态机图”。用于描述一个对象的所有状态和状态之间的转换。
4.2 “活动图”和“状态机图”圆角框的区别

4.3 用实例说明流程图和状态机图的区别
1) 请假流程活动图

2) 请假活动状态机图

4.4 多级审批的状态机图案例

5 顺序图
5.1 什么是顺序图?
顺序图也是一种动态建模方法(跟流程图、活动图一样)。优点在于更善于表达多个角色展开交互时的流程。
5.2 顺序图基本语法

5.3 仅用消息的形式表达

5.4 用消息+返回值的形式表达

5.5 顺序图VS活动图
1) 用顺序图表达购买地铁票

2) 用活动图表达购买地铁票

5.6 顺序图的循环及分支结构
1) Loop(循环):如果满足“循环条件”就重复执行框中内容。
2) Alt(条件分支):如果满足“条件1”就执行上部分内容,如果满足“条件2”就执行下部分内容。如果有多个条件依次类推。
3) opt(可选分支):如果满足“条件”就执行框中内容,否则就跳过去。

5.7 顺序图的循环及分支案例

6 通信图
6.1 什么是通信图
“通信图”是“顺序图”的另外一种表示方式。
6.2 通信图案例

7 时序图
7.1 什么是时序图?
时序图也叫时间图,用于表示某东西的状态随时间变化而变化。
7.2 时序图样例

8 用例图
8.1 什么是用例图?
用例图是用户与系统交互的最简表示形式,可以展现用户和与他相关的用例之间的关系。
8.2 用例图的基本语法

8.3 用例图的基本用法

8.4 用例图举例

8.5 输入和导出用例图

8.6 用例图的Include

8.7 用例图的extend

8.8 角色的继承

8.9 用例的继承

8.10 用例表模板
如果用例图不能详细地说明需求,每个用例图就需要填写一个用例表

9 包图
9.1 什么是包图?
包图是将UML图进行“打包”的一种图,能帮助我们有效组织好各种UML图和表达的思路,同时包图也是进行软件架构设计的有力工具。
9.2 包图的基本表达方式

9.3 包图的依赖关系

9.4 用包图组织用例

9.5 用包图进行的架构设计

10 部署图
10.1 什么是部署图?
部署图主要是在物理的层次上做整体的系统规划,跟拓扑图相比,部署图可以细化设计。
10.2 部署图与拓扑图的区别
1) 拓扑图

2) 部署图

11 构件图
11.1 什么是构件图?
“构件图”也叫“组件图”,是物理上独立的东西,他可以单独维护、升级、替换。
11.2 构件图的基本用法

11.3 构件图和部署图捆绑用法

|