UML中各种关系说明以及举例

转载 2012年03月29日 10:56:54

原文网址为 :http://blog.csdn.net/kingofbirdzjy/article/details/1967871

 

UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalization),实现(Realization)等。

依赖 (Dependency):元素A的变化会影响元素B,但反之不成立,那么B和A的关系是依赖关系,B依赖A;类属关系和实现关系在语义上讲也是依赖关 系,但由于其有更特殊的用途,所以被单独描述。uml中用带箭头的虚线表示Dependency关系,箭头指向被依赖元素。

泛化(Generalization):通常所说的继承(特殊个体 is kind of 一般个体)关系,不必多解释了。uml中用带空心箭头的实线线表示Generalization关系,箭头指向一般个体。

实现(Realize):元素A定义一个约定,元素B实现这个约定,则B和A的关系是Realize,B realize A。这个关系最常用于接口。uml中用空心空心箭头和虚线表示Realize关系,箭头指向定义约定的元素。

关联(Association):元素间的结构化关系,是一种弱关系,被关联的元素间通常可以被独立的考虑。uml中用实线表示Association关系,箭头指向被依赖元素。

聚合(Aggregation):关联关系的一种特例,表示部分和整体(整体 has a 部分)的关系。uml中用带空心菱形头的实线表示Aggregation关系,菱形头指向整体。

组 合(Composition):组合是聚合关系的变种,表示元素间更强的组合关系。如果是组合关系,如果整体被破坏则个体一定会被破坏,而聚合的个体则可 能是被多个整体所共享的,不一定会随着某个整体的破坏而被破坏。uml中用带实心菱形头的实线表示Composition关系,菱形头指向整体。

其中依赖(Dependency)的关系最弱,而关联(Association),聚合(Aggregation),组合(Composition)表示的关系依次增强。换言之关联,聚合,组合都是依赖关系的一种,聚合是表明对象之间的整体与部分关系的关联,而组合是表明整体与部分之间有相同生命周期关系的聚合。

而关联与依赖的关系用一句话概括下来就是,依赖描述了对象之间的调用关系,而关联描述了对象之间的结构关系。

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

依赖(Dependency)

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

图D


关联(Association)

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

图E

聚合(Aggregation)

聚合(图F)是关联的一种形式,代表两个类之间的整体/局部关系。聚合暗示着整体在概念上处于比局部更高的一个级别,而关联暗示两个类在概念上位于相同的级别。聚合也转换成Java中的一个实例作用域变量。

关联和聚合的区别纯粹是概念上的,而且严格反映在语义上。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。

图F



合成(Composition)

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

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

图G

泛化(Generalization)

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

图H


实现(Realization)

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

图I

 

UML中各种关系说明以及举例

UML中描述对象和类之间相互关系的方式包括:依赖(Dependency),关联(Association),聚合(Aggregation),组合(Composition),泛化(Generalizati...
  • kingofbirdzjy
  • kingofbirdzjy
  • 2007年12月26日 12:31
  • 6659

UML中四大关系的理解

UML的构造快包含3种: (1) 事物(4种):结构事物,行为事物,分组事物,注释事物 (2) 关系(4种):泛化关系,实现关系,依赖关系,关联关系 (3) 图(10种):用例图,类图,对象图,...
  • rexct392358928
  • rexct392358928
  • 2016年06月20日 09:27
  • 959

UML的四种关系

UML中共有四种关系,分别为关联、依赖、泛化、实现,思维导图:
  • fightfaith
  • fightfaith
  • 2015年08月26日 17:43
  • 2843

【UML】各种图之间的关系

通过上一篇博客初步的介绍了UML的各种图,但是在每个图之中都会有很多的线,有的线是实心的、有的是虚线、有的是箭头、有的是空心三角、有的是实心三角。其实这些线就是代表的是UML图之间的关系:关联、依赖、...
  • kisscatforever
  • kisscatforever
  • 2015年08月25日 22:30
  • 1142

细说UML五种关系

依赖关系(Dependence):          依赖关系是一种使用关系,对于两个相对独立的系统,当一个系统负责构造另一个系统的实例,当一个系统改变会影响到另一个系统,反之不成立。或者依赖另一个...
  • CJL5678
  • CJL5678
  • 2012年08月05日 20:44
  • 2723

UML 类图符号简介-符号 各种关系说明以及举例

http://www.360doc.com/content/11/1105/10/667822_161838044.shtml UML类图符号 各种关系说明以及举例 UML中描述对象和类之间相...
  • XuanZuoNuo
  • XuanZuoNuo
  • 2013年08月26日 12:53
  • 410

UML解惑---UML类图符号 各种关系说明以及举例

UML定义的关系主要有六种:依赖、类属、关联、实现、聚合和组合。这些类间关系的理解和使用是掌握和应用UML的关键,而也就是这几种关系,往往会让初学者迷惑。这里给出这六种主要UML关系的说明和类图描述,...
  • xiaoliyaqian
  • xiaoliyaqian
  • 2013年07月19日 08:53
  • 387

UML类图符号 各种关系说明以及举例

一、简介 二、类的构成 三、类之间的关系(Relationship) 1、单向关联 2、双向关联 3、自身关联 4、多维关联(N-ary Association) 5、泛化(Generalizatio...
  • zhengzhe1937
  • zhengzhe1937
  • 2013年11月06日 17:30
  • 428

UML概述及UML模型图的构成和关系

1 UML简介      UML(Unified Modeling Language)为面向对象软件设计提供统一的、标准的、可视化的建模语言。适用于描述以用例为驱动,以体系结构为中心的软件设计的全过...
  • yuxin6866
  • yuxin6866
  • 2016年08月07日 23:09
  • 1914

解析UML类图符号意义

软件开发过程中
  • l_nan
  • l_nan
  • 2014年07月05日 11:44
  • 14194
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:UML中各种关系说明以及举例
举报原因:
原因补充:

(最多只允许输入30个字)