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

Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐