UML类图中箭头和线条的含义和用法

1.UML中关系

本节向大家学习一下UML箭头、线条代表的意义,UML中关系主要有依赖,聚合,合成,泛化和实现等,下面就让我们来看一下这些关系如何用UML箭头和线条来实现。

关系

后面的例子将针对某个具体目的来独立地展示各种关系。虽然语法无误,但这些例子可进一步精炼,在它们的有效范围内包括更多的语义。

依赖(Dependency)

实体之间一个“使用”关系暗示一个实体的规范发生变化后,可能影响依赖于它的其他实例(图D)。更具体地说,它可转换为对不在实例作用域内的一个类或对象的任何类型的引用。其中包括一个局部变量,对通过方法调用而获得的一个对象的引用(如下例所示),或者对一个类的静态方法的引用(同时不存在那个类的一个实例)。也可利用“依赖”来表示包和包之间的关系。由于包中含有类,所以你可根据那些包中的各个类之间的关系,表示出包和包的关系。

图D

关联(Association)

实体之间的一个结构化关系表明对象是相互连接的。UML箭头是可选的,它用于指定导航能力。如果没有箭头,暗示是一种双向的导航能力。在Java中,关联(图E)转换为一个实例作用域的变量,就像图E的“Java”区域所展示的代码那样。可为一个关联附加其他修饰符。多重性(Multiplicity)修饰符暗示着实例之间的关系。在示范代码中,Employee可以有0个或更多的TimeCard对象。但是,每个TimeCard只从属于单独一个Employee。

图E

聚合(Aggregation)

聚合(图F)是关联的一种形式,UML箭头代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合也转换成Java中的一个实例作用域变量。7MIrrhk
yC7lR#N8j0
关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。

图F

合成(Composition)

合成(图G)是聚合的一种特殊形式,UML箭头暗示“局部”在“整体”内部的生存期职责。合成也是非共享的。所以,虽然局部不一定要随整体的销毁而被销毁,但整体要么负责保持局部的存活状态,要么负责将其销毁。局部不可与其他整体共享。但是,整体可将所有权转交给另一个对象,后者随即将承担生存期职责。

Employee和TimeCard的关系或许更适合表示成“合成”,而不是表示成“关联”。

图G

泛化(Generalization)

泛化(图H)表示一个更泛化的元素和一个更具体的元素之间的关系。泛化是用于对继承进行建模的UML元素。在Java中,用extends关键字来直接表示这种关系。

图H

实现(Realization)

实例(图I)关系UML箭头指定两个实体之间的一个合同。换言之,一个实体定义一个合同,而另一个实体保证履行该合同。对Java应用程序进行建模时,实现关系可直接用implements关键字来表示。

图I

2、UML说明

UML类图各符号含义  类图基本符号可拆分为虚线,箭头,实线,空心右三角,实心右三角,空心菱形和实心菱形。由这些基本的图形进行组合构成了类图的基本符号。这里要注意这几个符号的顺序,代表了类与类之间关系的耦合程 度。越向右耦合度越高。  其中虚线+箭头是表示即依赖的关系,实线+箭头表示关联的关系,虚线+空心右三角表示implements,实线+空心右三角表示的是泛化,即类的继承关系。实线+空心菱形表示的是聚合的关系,实线+实心菱形则表示 组合的关系。  另外一点是在看类图的时候要注意。类图的思想其实也还没有脱离面向对象的思想,以某个类为中心,有些线是射入的而有些线是射出的。射入的线表示的是这个类被哪些类所调用而射出的线则表示该类调用了 哪些类,包括泛化,关联,依赖,聚合和组合四种关系。这类似于离散数学中有关图部分的描述。

1. 类(Class):使用三层矩形框表示。   第一层显示类的名称,如果是抽象类,则就用斜体显示。   第二层是字段和属性。  第三层是类的方法。   注意前面的符号,‘+’表示public,‘-’表示private,‘#’表示protected。

2. 接口:使用两层矩形框表示,与类图的区别主要是顶端有<<interface>>显示 。   第一行是接口名称。  第二行是接口方法。

3. 继承类(extends) :用空心三角形+实线来表示。

4. 实现接口(implements) :用空心三角形+虚线来表示

5. 关联(Association) :用实线箭头来表示,例如:燕子与气候

6. 聚合(Aggregation) :用空心的菱形+实线箭头来表示   聚合:表示一种弱的‘拥有’关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分,例如: 公司和员工

7.组合(Composition):用实心的菱形+实线箭头来表示  组合:部分和整体的关系,并且生命周期是相同的。例如:人与手

8. 依赖(Dependency) :用虚线箭头来表示,例如:动物与氧气

9. 基数 :连线两端的数字表明这一端的类可以有几个实例,比如:一个鸟应该有两只翅膀。如果一个类 可能有无数个实例,则就用‘n’来表示。关联、聚合、组合是有基数的。

类之间的关系     UML把类之间的关系分为以下5种.

● 关联:类A与类B的实例之间存在特定的对应关系

● 依赖:类A访问类B提供的服务

● 聚集:类A为整体类,类B为局部类,类A的对象由类B的对象组合而成

● 泛化:类A继承类B

● 实现:类A实现了B接口   关联(Association)

关联指的是类之间的特定对应关系,在UML中用带实线的箭头表示。按照类之间的数量对比,关联  可以分为以下三种:

● 一对一关联

● 一对多关联

● 多对多关联

注意:关联还要以分为单向关联和双向关联

依赖(Dependency)     依赖指的是类之间的调用关系,在UML中用带虚线的箭头表示。如果类A访问类B的属性或者方法,  或者类A负责实例化类B,那么可以说类A依赖类B。和关联关系不同,无须在类A中定义类B类型的属性。

聚集(Aggregation)     聚集指的是整体与部分之间的关系,在UML中用带实线的菱形箭头表示。 聚集关系还可以分为两种类型:

●被聚集的子系统允许被拆卸和替换,这是普通聚集关系。

● 被聚集的子系统不允许被拆卸和替换,这种聚集称为强聚集关系,或者组成关系。

注:强聚集(组成)可用带实线的实心菱形箭头表示。

泛化(Generalization)泛化指的是类之间的继承关系,在UML中用带实线的三角形箭头表示。

实现(Realization) 实现指的是类与接口之间的关系,在UML中用带虚线的三角形箭头表示。

转载自:http://blog.csdn.net/iamherego/article/details/44802855

UML类图中各种箭头和线条的含义和用法(转)相关推荐

  1. 区分 UML 类图中的几种关系

    区分 UML 类图中的几种关系   2010-12-23 作者:fnw 来源:网络      区分 UML 类图中的几种关系  UML 类图中的 "关联关系(association) &qu ...

  2. UML类图中符号的含义

    UML类图中符号的含义 类图中的基本符号由虚线.箭头.实线.空心三角形.空心菱形.实心菱形组成,这些符号的组合构成类图的基本符号 实线+箭头 表示关联关系 关联关系分类 自身关联 表示自身拥有一个自身 ...

  3. 一张图看明白UML类图中的6种关系

    在UML类图中,有6种关系,分别是: (1)泛化(Generalization),简单说就是父类和子类的关系,extends/: (2) 实现(Realization),简单说就是接口和实现的关系,i ...

  4. UML类图中的六大关系:关联(单向、双向、自关联)、聚合、组合、依赖、继承、实现

    一.类的属性的表示方式 在UML类图中,类使用包含类名.属性(field) 和方法(method) 且带有分割线的矩形来表示,比如下图表示一个A类,它包含c.d两个属性,以及methodA方法. 那么 ...

  5. UML类图中的各种箭头代表的含义(转自:http://www.cnblogs.com/damsoft/archive/2016/10/24/5993602.html)

    1.UML简介 Unified Modeling Language (UML)又称统一建模语言或标准建模语言. 简单说就是以图形方式表现模型,根据不同模型进行分类,在UML 2.0中有13种图,以下是 ...

  6. [转]UML类图中连接线与箭头的含义

    目录: 一些概念 关联 1.双向关联 2.单向关联 3.自身关联(反身关联) 2.依赖 1 单向依赖 2 双向依赖 组合/聚合 1 组合 2 聚合 泛化和实现 1 继承(Derived) 2 接口实现 ...

  7. UML类图中连接线与箭头的含义(转)

    UML类图是描述类之间的关系 概念 类(Class):使用三层矩形框表示. 第一层显示类的名称,如果是抽象类,则就用斜体显示. 第二层是字段和属性. 第三层是类的方法. 注意前面的符号,'+'表示pu ...

  8. [跟我学UML] UML类图中的泛化

    本文基于UML规范,介绍了类图中的泛化.此外,还通过举例说明来帮助读者加深理解. ...打开附件阅读全文.

  9. UML类图中方法(操作)的表示格式

    网上很少看到针对于类图中方法的格式进行探讨的文章,而类图本身也不是那么的死板,但是一些既定的规则.通用性的格式,使用起来还是会更加便于理解与分享.下面讲一下类图中方法的规范表示方式. [可视性]操作名 ...

最新文章

  1. react创建组件_如何使用React创建时间轴组件
  2. 汇编语言——正数数组P和负数数组N
  3. 常用Python文件
  4. 关于计算机实验的英语作文,关于实验的英语作文
  5. Exp6 信息收集与漏洞扫描
  6. dataman软件设置中文_S7200 SMART软件常见错误处理办法
  7. oracle 关键字_oracle常见报错之无法验证 (约束) - 未找到父项关键字解决办法
  8. 微型计算机主机作用,微型计算机的主机包括()。
  9. 单图像超分辨率重建总结
  10. php 解析今日头条视频,今日头条的视频地址解析方法
  11. 09年杀毒软件大比拼
  12. MATLAB实现AMI码和HDB3码
  13. 计算机无法与网络同步,电脑时间无法同步怎么办?
  14. win7与internet时间同步出错_电脑时间同步出错,教您电脑时间同步出错怎么办
  15. 第十一届“蓝狐网络杯”湖南省大学生计算机程序设计竞赛
  16. 2018年UI设计趋势概览
  17. linux小记 查看dd进度,linux小记:查看dd进度
  18. mac中实用的录音软件有哪些?
  19. 京东商品详情数据接口api
  20. 罗伯特扫地机器人电池如何取_周末清洁大会战 篇二十三:更换电池和清扫让iRobot 880扫地机器人焕然一新,还有更多配件来凑热闹...

热门文章

  1. 在mac上反编译apk
  2. 钱币兑换问题 多少可能;
  3. 国产蓝牙耳机有什么品牌好用?元旦值得入手高性价比蓝牙耳机推荐
  4. AS3.0视觉特效:像素风格图像切换
  5. java 8位 不重复_生成8位随机不重复的数字编号的方法
  6. Discuz远程代码执行(CVE-2019-13956)
  7. 浏览器F12控制台中文改成英文
  8. 华为畅享max有没有人脸识别_华为畅享MAX:轻奢外观下的智慧功能大揭秘
  9. 盏茶python(五) 函数
  10. ultraiso9.3.6.2750注册码