言成言成啊 | Kit Chen's Blog

UML统一建模总结

发布于2022-10-16 23:26:02,更新于2022-10-18 23:26:22 转载随意,文章会持续修订,请注明来源地址:https://meethigher.top/blog

首先,了解UML图的分类

  • 结构图
    • 类图
    • 对象图
    • 构件(组件图)图
    • 部署图
    • 复合结构图
    • 包图
  • 行为图
    • 用例图
    • 活动图
    • 状态机图
    • 交互图
      • 顺序(时序)图
      • 通信图
      • 交互概观图
      • 定时图

一、结构图

1.1 类图

1.1.1 类的表示

类由一个矩形表示,包含3栏

  • 类的名称
  • 类的属性
  • 类的方法。

类的名称是不可以省略的,其他都是可以省略的。

1.1.2 类的关系

按照关系性质,分为四种

  • 依赖关系:虚线+箭头
  • 泛化关系:实线+空心三角
  • 关联关系
    • 聚合关系:实线+空心菱形
    • 组合关系:实线+实心菱形
  • 实现关系:虚线+空心三角
  • 扩展关系:实线+箭头(使用太少,但不代表没有)

依赖关系

虚线+箭头

表示两个或多个模型元素之间语义上的关系。

如,客户元素以某种形式依赖于提供者元素。

实际上,关联、实现、泛化也都是依赖关系。

泛化关系

实线+空心三角

从抽象元素到具体元素的分类关系,称为泛化关系。

关联关系

关联关系又分为两种

  • 聚合关系
  • 组合关系

聚合关系与组合关系的含义,总体上差不多。

聚合关系表示整体与部分的关系比较弱;而组合关系的整体与部分的关联比较强,在组合关系中,整体与部分具有共生死的关系。

例如,大学是由多个学院组成,这就是聚合关系。实线+空心菱形

例如,窗口中的菜单和按钮不能离开窗口独立存在,因此是组合关系。实线+实心菱形

实现关系

接口与类,就是实现关系。虚线+空心三角

1.2 对象图

1.3 构件图

1.4 部署图

1.5 复合结构图

1.6 包图

二、行为图

2.1 用例图

2.2 活动图

流程图适合面向过程开发,严格执行逻辑。而活动图关于具体内部逻辑更为抽象,适合面向对象开发。活动图与流程图最主要的区别在于,活动图能够表示活动的并行行为。

2.2.1 活动图的表示

活动图由六种元素组成

  • 起点和终点
  • 活动节点
  • 转换
  • 分支与监护条件
  • 分叉与汇合

这五种元素,标识具体含义如下图(该图是一个简单活动图)。

源码

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
title 下单
start
:用户下订单;
fork
:生成送货单;
fork again
:用户选择支付方式;
if (用户取消或订单超过时限?) is (yes) then
:订单取消;
stop
else (no)
:收款;
endif
end fork
repeat :供应商送货;
:修改订单项状态;
backward :尚未完成;
repeat while (所有订单项已送货完毕?)
:订单完成;
stop

其中,比较难理解的是分叉与汇合。

在实际应用中,如果活动的转换是有条件的,就用分支与监护条件来表示转换,如果一些活动是并发执行的,就用分叉和汇合来表示并发活动。

分叉用来表示两个或多个并发活动的分支;

而汇合则用于同步这些并发活动的分支,并且仅当所有的并发分支(活动)都到达汇合点后,活动流程才能进入下一个活动节点。

2.2.1 活动图的分类

根据活动图表示的信息不同,可将活动图分为4类

  • 简单活动图:以下所有活动图省略后的结果
  • 标识泳道的活动图:通过泳道表示各个活动由谁负责
  • 标识对象流的活动图
  • 复合活动图

实际中掌握简单活动图即可,而像泳道图,其实用时序图能更好的表示。

2.3 状态机图

2.4 交互图

2.4.1 顺序图

顺序图也叫时序图,描述系统中对象间通过消息进行的交互,强调了消息在时间轴上的先后顺序。

2.4.2 通信图

2.4.3 交互概观图

2.4.4 定时图

三、建模工具

开源工具,使用简单的文字描述画UML图。

发布:2022-10-16 23:26:02
修改:2022-10-18 23:26:22
链接:https://meethigher.top/blog/2022/read-uml/
付款码 打赏 分享
shift+ctrl+1可控制目录显示