UML入门初识

背景

当有新人接手你的项目时候,你是否有足够的项目结构介绍资料给到新人? 当你作为一个新人接手别人的项目的时候,看项目的结构图的时候是否会一脸懵逼,因为你没有系统的学习UML相关的知识。了解UML图的绘制一方面可以检查自己的代码设计,并能向他人进行讲解。
在这里插入图片描述

1.类图

在这里插入图片描述

依赖关系 关联关系 泛化继承关系 实现 聚合 组合

在这里插入图片描述
泛化对应 Java 中的 extends,画法:实线三角形箭头

在这里插入图片描述
实现对应 Java 中的 implements,画法:虚线三角形箭头

在这里插入图片描述
在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述
依赖关系对应java就是一个类使用到了另外一个类

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

多重性关联关系:
• 1 表示有且仅有一个
• 0… 表示 0 个或者多个
• 0,1 表示 0 个或者一个
• n…m 表示 n 到 m 个都可以
• m…* 表示至少 m 个

聚合与组合的区别:
• 聚合:强调能聚也能散
• 组合:强调局部和整体的关
系,合则生分则死

在这里插入图片描述

在这里插入图片描述

依赖和关联的区别是什么?
• 依赖是一种弱关系,例如在代码中体现为一个类的某个方法中使用了另一个类
• 关联是一种强关系,例如在代码中体现为一个类的全局变量

有了上面的知识,我们就很好的得出这个类图的实际项目结构是怎么样的了

在这里插入图片描述

在这里插入图片描述

2、活动图

在这里插入图片描述
圆角矩形:表示“动作”

在这里插入图片描述
菱形:表示“决策”

在这里插入图片描述

粗实线:表示并行活动的开始(分离)和结束(汇合)

在这里插入图片描述

黑圆:工作流的开始(初始节点)

在这里插入图片描述

黑圈套住的黑圆:工作流的结束(结束节点)

活动图的一些规则

第一个粗实线之后可以有若干分支,每个分支都是并行执行的
• 第二个粗实线之前,所有的分支汇合,所有的分支活动都完成才进入之后的环节
• 初始节点有且只有一个,结束节点可能不止一个

在这里插入图片描述

一些注意事项:

• 当有多个对象出现在活动图中时,可以考虑引入泳道
• 一个活动只能存在于唯一的泳道里

在这里插入图片描述

3、 时序图

对象的三种命名方式:

  1. 显示实例名和类名,方式:实例名:类名
  2. 只显示类名,表示它是一个匿名对象,方式::类名
  3. 只显示实例名,方式:实例名

在这里插入图片描述

同步消息:消息的发送者把消息传递给接收者后停止活动,等待消息的接收者放弃或者返回消息,之
后才能执行下一步操作
• 异步消息:消息的发送者把消息传递给接收者后继续自己的活动,不等待接受者放弃或者返回消息

组合片段(Combined Fragments) • 抉择(Alt):与 if…then…else 对应
• 选项(Opt):表示符合条件时执行
• 循环(Loop):与 for 或者 foreach 对应
• 并行(Par):与多线程对应
• ············

在这里插入图片描述

在这里插入图片描述