目录
- 1.简述
- 2.UML组成
- 3.UML事物
- 4.UML关系
- 5.UML图
- 5.1 UML图的分类
- 5.2 结构图(静态图)
- 1)类图
- 2)对象图
- 3)构件图
- 4)部署图
- 5)制品图
- 6)包图
- 7)复合结构图
- 5.3 行为图(动态图)
- 1)交互图
- 1.1)顺序图(时序图/序列图)
- 1.2)通信图(协作图)
- 1.3)定时图
- 1.4)交互概览图
- 2)用例图
- 3)活动图
- 4)状态图
1.简述
什么是UML?
UML
,全称 Unified Model Language
,中文是 统一建模语言
,是由一整套图表组成的标准化建模语言,支持从需求分析开始的软件开发的全过程。
为什么要用UML?
通过使用UML,使得软件开发之前,对整个软件设计有更好的可读性,可理解性,从而降低开发风险。同时也可以方便各个开发人员之间的交流。
2.UML组成
从总体上来看,UML的结构包括构造块
、规则
和公共机制
三个部分。
构造块
:UML有三种基本的构造块,分别是事务(thing)
、关系(relationship)
、图(diagram)
。事务是UML的重要组成部分,关系把事务紧密联系在一起,图是多个关联的事务集合。规则
:是指构造块如何放在一起的规定。公共机制
:是指达到特定目标的公共UML方法。
3.UML事物
结构事物
:模型的静态部分,如类、接口、用例、构件等;行为事物
:模型的动态部分,如交互、活动、状态机;分组事物
:模型的组织部分,如包;注释事物
:模型的解释部分,依附于一个元素或一组元素之上对其进行约束或解释的简单符号。
4.UML关系
依赖
:一个事物的语义依赖于另一个事物语义的变化而变化。关联
:是一种结构关系,描述了一组链,链是对象之间的链接。分为组合
和聚合
,都是部分和整体的关系,其中组合
事物之间的关系更强。两个类之间的关联,实际上是两个类所扮演角色的关联,因此,两个类之间可以有多个由不同角色标识的关联。泛化
: 一般/特殊的关系,子类和父类之间的关系。实现
:一个类元指定了另一个类元保证执行的契约。
补充:Java中聚合和组合的实现区别?
Java聚合:
class A{
public void cc(B b){
System.out.println(b.show());
}
}
class B{
public void show(){
System.out.println("hello");
}
}
class C{
A a = new A();
B b = new B();
a.cc(b);
}
上面的例子可以看出,B 对象在 A 对象调用完仍然被 C 对象引用,并没有消失。所以相对于 A、B 与 A 的关系就是聚合。
Java组合
class A{
public A(){
B b = new B();
}
b.show();
}
class B{
public void show(){
System.out.println("hello");
}
}
class C{
A a = new A();
}
上面的例子可以看出,B 对象在 A 对象调用完自然也就消失了。所以,相对于 A 来说,B 与 A 的关系就是组合。B 随着 A 的创建一起创建,随着 A 的消失一起消失。
5.UML图
5.1 UML图的分类
结构图(静态图)
:类图、对象图、用例图、构件图、部署图、制品图、包图、组合结构图。行为图(动态图)
:交互图、状态图、活动图。交互图
:顺序图(时序图/序列图)、通信图(协作图)、定时图、交互概览图
5.2 结构图(静态图)
1)类图
描述类、类的特性以及类之间的关系。
类图可以只有类名,可以只有方法没有属性,但不能只有属性没有方法。
2)对象图
对象是类的实例,而对象图描述一个时间点上系统种各个对象的快照。
对象图和类图看起来是十分相近的,实际上,除了在表示类的机型中添加一些“对象”特有的属性,其他元素的含义是基本一致的。
对象名
:由于对象是一个类的实例,因此其名称的格式是“对象:类名”,这两个部分是可选的,但如果是包含了类名,则必须加上“:”,另外,为了和类名区分,还必须加上下划线。属性
:由于对象是一个具体的事物,所有的属性值都已经确定,因此通常会在属性的后面列出其值。
3)构件图
描述构件的结构与连接。通俗地说,构件是一个模块化元素,隐藏了内部的实现,对外提供一组接口。
4)部署图
描述在各个结点上的部署。
5)制品图
描述了系统的物理结构
6)包图
对语义联系紧密的事务进行分组。在 UML 种,包使用一个带标签的文件夹符号来表示的,可以只标明包名,也可以标明包中的内容。
7)复合结构图
显示结构化类的内部结构。
5.3 行为图(动态图)
1)交互图
1.1)顺序图(时序图/序列图)
描述对象之间的交互,重点在于强调按时间顺序。
1.2)通信图(协作图)
描述对象之间的交互,重点在于连接。通信图和顺序图语义相通,关注点不同,可相互转换。
1.3)定时图
描述对象之间的交互,重点在于给出消息经过不同对象的具体时间。
1.4)交互概览图
属于一种顺序图与活动图的混合。
2)用例图
描述用例、参与者及其关系。
3)活动图
描述过程行为与并行行为。
4)状态图
描述对象状态的转移。
整理完毕,完结撒花~ 🌻
参考地址:
1.掌握14种UML图,清晰图示,https://blog.csdn.net/qq_35423190/article/details/125069834
2.java组合与聚合区别,https://blog.csdn.net/heardreamperson/article/details/120484327