这14种UML图,你知道几个?

1,660 阅读4分钟

1 什么是UML

UML-Unified Modeling Language 统一建模语言,又称标准建模语言。是用来对软件密集系统进行可视化建模的一种语言。UML的定义包括UML语义和UML表示法两个元素。

2 为什么要用UML

UML的目标是以面向对象图的方式来描述任何类型的系统,具有很宽的应用领域。

在一个软件系统开始写代码之前,使用UML建模,可以使我们对这个系统的架构有更为清晰的了解,降低系统开发的风险,好处大大的。

在软件系统开发期间,亦可以使用UML。

3 UML图具体有哪些

UML分为结构图与行为图两大类。

结构图包括:类图、对象图、包图、组合结构图、构件图、部署图、制品图;

行为图包括:用例图、顺序图、通信图、定时图、状态图、活动图、交互概念图;

3.1 ★类图

类图是面向对象方法的核心建模工具。

3.1.1 类的表示方法

如上所示,Employee 为类名,nameageaddress 为属性,work()为方法。我们还看到前面有-+ 这个的意思是:

+:表示public
-:表示private
:表示protected

属性的完整表示方式是: 可见性 名称 :类型 [ = 缺省值]

方法的完整表示方式是: 可见性 名称(参数列表) [ : 返回类型]

注意:

1,中括号中的内容表示是可选的

2,也有将类型放在变量名前面,返回值类型放在方法名前面

举个例子

上图Demo类定义了三个方法:

method()方法:修饰符为public,没有参数,没有返回值。

method1()方法:修饰符为private,没有参数,返回值类型为String。

method2()方法:修饰符为protected,接收两个参数,第一个参数类型为int,第二个参数类型为String,返回值类型是int。

3.1.2 常见的类之间的关系

3.1.2.1 依赖关系

一个事物发生变化影响另一个事物。

耦合度最弱的一种关系,在代码中为某个类的方法通过局部变量、方法临时调用一下别的类(依赖类)的方法,来完成一些功能。

下图所示,Driver司机类调用Car类的move()方法来开车,也就是临时用一下车。

3.1.2.2 泛化关系

特殊/一般关系。是对象之间耦合度最大的一种关系,表示一般与特殊的关系,是父类与子类之间的关系,是一种继承关系。

子类继承了父类的所有属性及方法。

如下图所示,Student 类和 Teacher 类都是 Person 类的子类。

3.1.2.3 关联关系

描述了一组链,链是对象之间的连接。是一种拥有关系,它使得一个类知道另一个类的属性和方法。

  • 单向关联

下图表示每个顾客都有一个地址,这通过让Customer类持有一个类型为Address的成员变量类实现。

  • 双向关联

从下图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。

  • 自关联

3.1.2.4 聚合关系

整体与部分生命周期不同。最弱的耦合关系,比如A聚合B,A和B分开后,B的生命周期依然在。

如下图所示,学校与老师的关系,学校包含老师,但如果学校停办了,老师依然存在。

3.1.2.5 组合关系

组合关系比聚合耦合要强,A与B组合,A没了,那对应的B也没了。

如下图所示,头和嘴的关系,没有了头,嘴也就不存在了。

3.1.2.6 实现关系

接口与类之间的关系。

在这种关系中,类实现了接口,类中的操作实现了接口中所声明的所有的抽象操作。

如下图所示,汽车和船是交通工具的泛化,汽车和船实现了交通工具。

3.2 ★对象图

对象图是类图的一个实例,是系统在某个时间点的详细状态的快照,描述一组对象及它们之间的关系。

也就是说将类图整合在了一起使用。

下面是个例子:

3.3 包图

3.4 组合结构图

待更新。

3.5 构件图(组件图)

待更新。

3.6 部署图

待更新。

3.7 制品图

待更新。


3.8 ★用例图(序列图)

待更新。

3.9 顺序图

待更新。

3.10 通信图

待更新。

3.11 定时图

待更新。

3.12 状态图(状态机图)

待更新。

3.13 活动图

待更新。

3.14 交互概念图

待更新。

4 参考

5 小结

类图、对象图、用例图重要些,多练多应用实际。