软件设计利器:UML类图常用符号及关系

Posted 软件技术UML

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了软件设计利器:UML类图常用符号及关系相关的知识,希望对你有一定的参考价值。

软件设计利器:UML类图常用符号及关系
软件设计利器:UML类图常用符号及关系

什么是UML

软件设计利器:UML类图常用符号及关系
软件设计利器:UML类图常用符号及关系

统一建模语言(Unified Modeling Language,缩写UML)

UML是一种开放的方法,用于说明、可视化、构建和编写一个正在开发的、面向对象的、软件密集系统的制品的开放方法。

软件设计利器:UML类图常用符号及关系
软件设计利器:UML类图常用符号及关系

类图

软件设计利器:UML类图常用符号及关系
软件设计利器:UML类图常用符号及关系

在软件开发中,经常会遇到UML建模,而类图作为一种静态的结构图,不仅是系统编码和测试的重要模型,还可以简化人们对系统的理解。因此,理解和知道如何使用UML图就显得尤为重要了!那么,对于UML类图中常用的一些基本符号及使用你是否都了解了呢?

软件设计利器:UML类图常用符号及关系

软件设计利器:UML类图常用符号及关系
软件设计利器:UML类图常用符号及关系

UML类图基本符号的含义

软件设计利器:UML类图常用符号及关系
软件设计利器:UML类图常用符号及关系

1、类(Class):一般是用三层矩形框表示,第一层表示类的名称,第二层表示的是字段和属性,第三层则是类的方法。第一层中,如果是抽象类,需用斜体显示。


软件设计利器:UML类图常用符号及关系

2、包(Package):是一种常规用途的组合机制。在UML中用一个Tab框表示,Tab里写上包的名称,框里则用来放一些其他子元素,比如类,子包等等。

软件设计利器:UML类图常用符号及关系

3、接口(Interface):表示的是一系列的操作集合,它指定了一个类所提供的服务。一个接口只指明了实现这一接口的分类器实例应该支持的特性,并没有指定其所刻画的特性是如何实现的。

软件设计利器:UML类图常用符号及关系

软件设计利器:UML类图常用符号及关系
软件设计利器:UML类图常用符号及关系

UML中描述对象和类之间相互的关系,常用以下几种方式表示

软件设计利器:UML类图常用符号及关系
软件设计利器:UML类图常用符号及关系


1、依赖(Dependency):表示的是类之间的调用关系。UML中用带箭头的虚线表示依赖关系,而箭头所指的则是被依赖的类。

软件设计利器:UML类图常用符号及关系

从上图我们可以看到,Driver的drive方法只有传入了一个Car对象才能发挥作用,因此我们说Driver类依赖于Car类。


2、泛化(Generalization):表示的是类之间的继承关系,注意是子类指向父类。UML中用空心三角箭头的实线表示泛化关系,箭头指向的是一般个体。

软件设计利器:UML类图常用符号及关系

从上图我们可以看到,Student类与Teacher类继承于Person类。


3、关联(Association):表示的是类与类之间存在某种特定的对应关系。

关联关系又可进一步分为单向关联、双向关联和自关联

(1)单向关联

软件设计利器:UML类图常用符号及关系

(2)双向关联,UML中用不带箭头的直线表示双向关联关系

软件设计利器:UML类图常用符号及关系

从上图中我们很容易看出,所谓的双向关联就是双方各自持有对方类型的成员变量。上图中在Customer类中维护一个Product[]数组,表示一个顾客购买了一系列产品;在Product类中维护一个Customer类型的成员变量,表示这个产品被某个顾客所购买。

(3)自关联

软件设计利器:UML类图常用符号及关系

自关联在UML类图中用一个带有箭头且指向自身的直线表示。上图的意思就是Node类包含类型为Node的成员变量,也就是“自己包含自己”。


4、聚合(Aggregation):是关联关系的一种特例,表示的是整体与部分之间的关系,部分不能离开整体单独存在。UML中用空心菱形头的实线表示聚合关系,菱形头指向整体

上图中的Car类与Engine类就是聚合关系(Car类中包含一个Engine类型的成员变量)。聚合关系强调是“整体”包含“部分”,但是“部分”可以脱离“整体”而单独存在。比如上图中汽车包含了发动机,而发动机脱离了汽车也能单独存在


5、组合(Composition):是聚合的一种特殊形式,表示的是类之间更强的组合关系。UML中用实心菱形头的实线来表示组合,菱形头指向整体

显然,嘴是头的一部分且不能脱离了头而单独存在。


以上是关于软件设计利器:UML类图常用符号及关系的主要内容,如果未能解决你的问题,请参考以下文章

Day306.UML类图 -Java设计模式

UML类图

设计模式系列:图文并茂详解UML类图

UML类图的六大关系

UML类图 #yyds干货盘点#

设计模式入门前提之UML类图讲解