UML类图依赖关系和关联关系的区别

2021-03-17 12:08:48 字数 6320 阅读 1024

1楼:下個id我們再見

1.依赖关系(dependencies)

uml类图依赖关系是一种使用关系,特定事物的改变有可能会影响到使用该事物的事物,反之不成立。在你想显示一个事物使用另一个事物时使用,两个元

素之间的一种关系,其中一个元素(服务者)的变化将影响另一个元素(客户),或向它(客户)提供所需信息。它是一种组成不同模型关系的简便方法。依赖表示

两个或多个模型元素之间语义上的关系。它只将模型元素本身连接起来而不需要用一组实例来表达它的意思。它表示了这样一种情形,提供者的某些变化会要求或指

示依赖关系中客户的变化。

根据这个定义,关联和泛化都是依赖关系,但是它们有更特别的语义,故它们有自己的名字和详细的语义。我们通常用依赖这个词来指其他的关系。依赖用一

个从客户指向提供者的虚箭头表示,用一个构造型的关键字来区分它的种类,通常情况下,uml类图依赖关系体现在某个类的方法使用另一个类作为参数。

2.关联关系(association)

关联是一种结构化的关系,指一种对象和另一种对象有联系。给定有关联的两个类,可以从一个类的对象得到另一个类的对象。关联有两元关系和多元关系。

两元关系是指一种一对一的关系,多元关系是一对多或多对一的关系。一般用实线连接有关联的同一个类或不同的两个类。当你想要表示结构化关系时使用关联,如

果几个类元的实例之间有联系,那么这几个类元之间的语义关系即关联。关联描述了系统中对象或实例之间的离散连接。

关联将一个含有两个或多个有序表的类元,在允许复制的情况下连接起来。最普通的关联是一对类元之间的二元关联。关联的实例之一是链。每个链由一组对

象(一个有序列表)构成,每个对象来自于相应的类。二元链包含一对对象。关联带有系统中各个对象之间关系的信息。当系统执行时,对象之间的连接被建立和销

毁。关联关系是整个系统中使用的“胶粘剂”,如果没有它,那么只剩下不能一起工作的孤立的类。在关联中如果同一个类出现不止一次,那么一个单独的对象就可

以与自己关联。如果同一个类在一个关联中出现两次,那么两个实例就不必是同一个对象,通常的情况都如此。二元关联用一条连接两个类的连线表示。

聚集表示部分与整体关系的关联,它用端点带有空菱形的线段表示,空菱形与聚集类相连接。组成是更强形式的关联,整体有管理部分的特有的职责,它用一

个实菱形物附在组成端表示。每个表示部分的类与表示整体的类之间有单独的关联,但是为了方便起见,连线结合在一起,现在整组关联就像一棵树。

关于uml类图中的关联关系

2楼:草莓爱恋月光

关联(association)

是模型元素间的一种语义联系,它是对具有共同的结构特性、行为特性、关系和语义的链(link)的描述。(不同对象或类之间的结构化关系)

表示对象之间的联系。

在类图中,关联用一条把类连接在一起的实线表示。

比如:学生与课程之间就是通过选课关系进行关联聚合(aggregation)

表示两个类之间是“is part of”关系,即整体--部分关系。

用横线加空心菱形表示,菱形部分对应整体一端比如:组员是团队中的一部分

相对的横线加实心菱形表示组合(***position)关系,虽然组合关系也表示整体--部分关系,可是它表示部分对象被嵌入到整体对象中。比如:引擎是飞机的一部分

我理解的也比较浅 大家一起学习学习

uml类图的类之间的关系

3楼:椶啑飓

类之间的关系是类图中比较复杂的内容。有关联、聚合、组合、泛化、依赖。

关联:是模型元素之间的一种语义联系,是类之间的一种很弱的联系。关联可以有方向,可以是单向关联,也可以是双向关联。

可以给关联加上关联名来描述关联的作用。关联两端的类也可以以某种角色参与关联,角色可以具有多重性,表示可以有多少个对象参与关联。可以通过关联类进一步描述关联的属性、操作以及其他信息。

关联类通过一条虚线与关联连接。对于关联可以加上一些约束,以加强关联的含义。如下图所示:

聚合是一种特殊的关联,聚合表示整体与部分的关系。通常在定义一个整体类后,再去分析这个整体类的组成结构。从而找出一些组成类,该整体类和组成类之间就形成了聚合关系。

例如舰队是由一系列的舰船组成。需求描述中“包含”、“组成”、“分为….部分”等词常意味着聚合关系。

组合也是一种特殊的关联,也表示类之间整体和部分的关系,但是组合关系中部分和整体具有统一的生存期。一旦整体对象不存在,部分对象也将不存在。部分对象与整体对象之间具有共生死的关系。

聚合和组合的区别:聚合关系是“has-a”关系,组合关系是“contains-a”关系;聚合关系表示整体与部分的关系比较弱,而组合比较强;聚合关系中代表部分事物的对象与代表聚合事物的对象的生存期无关,一旦删除了聚合对象不一定就删除了代表部分事物的对象。组合中一旦删除了组合对象,同时也就删除了代表部分事物的对象。

泛化定义了一般元素和特殊元素之间的分类关系,类之间的这种泛化关系也就是继承关系。泛化关系是“a-kind-of”关系,定义一般元素和特殊元素之间的分类关系。下图是一个泛化关系的例子。

有两个元素如果修改x的定义可能会导致对y的定义,则认为y依赖x。依赖关系可能由各种原因引起,如一个类向另一个类发送消息,或者一个类是另一个类的数据成员类型,或者一个类是另一个类的操作的参数类型等。有时依赖关系和关联关系比较难区分。

如果类a和类b有关联关系,它们之间必然有依赖关系。如果两个类之间有关联关系时不用再表示出这两个类之间的依赖关系。

4楼:秒懂**

uml类图:显示了一组类、接口、协作以及他们之间的关系

uml类图几种关系的总结

5楼:喜洋洋

在uml类图中,常见的有以下几种关系:泛化(generalization), 实现(realization),关联(association),聚合(aggregation),组合(***position),依赖(dependency) 1.泛化(generalization)【泛化关系】:

是一种继承关系,它指定了子类如何特化父类的所有特征和行为例如:老虎是动物的一种.【箭头指向】:

带三角箭头的实线,箭头指向父类2.实现(realization)【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现【箭头指向】:

带三角箭头的虚线,箭头指向接口3.关联(association)【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:

老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。【**体现】:

成员变量【箭头及指向】:带普通箭头的实心线,指向被拥有者 上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

上图为自身关联: 4. 聚合(aggregation)【聚合关系】:

是整体与部分的关系.如车和轮胎是整体和部分的关系.聚合关系是关联关系的一种,是强的关联关系;关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

【**体现】:成员变量【箭头及指向】:带空心菱形的实心线,菱形指向整体 5.

组合(***position)【组合关系】:是整体与部分的关系.,没有公司就不存在部门 组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期【**体现】:

成员变量【箭头及指向】:带实心菱形的实线,菱形指向整体 6. 依赖(dependency)【依赖关系】:

是一种使用的关系,所以要尽量不使用双向的互相依赖。【**表现】:局部变量、方法的参数或者对静态方法的调用【箭头及指向】:

带箭头的虚线,指向被使用者各种关系的强弱顺序:泛化= 实现》 组合》 聚合》 关联》 依赖下面这张uml图,比较形象地展示了各种类图关系:

6楼:百度文库精选

内容来自用户:蒋先芳

2.实现(realization)

【实现关系】:是一种类与接口的关系,表示类是接口所有特征和行为的实现.

【箭头指向】:带三角箭头的虚线,箭头指向接口3.关联(association)

【关联关系】:是一种拥有的关系,它使一个类知道另一个类的属性和方法;如:老师与学生,丈夫与妻子关联可以是双向的,也可以是单向的。

双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头。

【**体现】:成员变量

【箭头及指向】:带普通箭头的实心线,指向被拥有者上图中,老师与学生是双向关联,老师有多名学生,学生也可能有多名老师。但学生与某课程间的关系为单向关联,一名学生可能要上多门课程,课程是个抽象的东西他不拥有学生。

uml类图关系怎么画

7楼:匿名用户

类图画法

1、 类图的概念

a、显示出类、接口以及它们之间的静态结构和关系

b、用于描述系统的结构化设计

2、 类图的元素

类、接口、协作、关系,我们只简单介绍一下这四种元素。

同其他的图一样,类图也可以包含注解和限制。

类图中也可以包含包和子系统,这两者用来将元素分组。

有时候你也可以将类的实例放到类图中。

3、 类

a、 类是对一组具有相同属性、操作、关系和语义的对象的抽象,它是面向对象系统组织结构的核心,包括名称部分(name)、属性部分(attribute)和操作部分(operation),见下图。

b、 类属性的语法为:

[可见性] 属性名 [:类型] [=初始值]

可见性:公有(public)“+”、私有(private)“-”、受保护(protected)“#”

类操作的语法为:

[可见性] 操作名 [(参数表)] [:返回类型]

可见性:公有(public)“+”、私有(private)“-”、受保护(protected)“#”、包内公有(package)“~”

参数表:

定义方式:“名称:类型”;若存在多个参数,将各个参数用逗号隔开;参数可以具有默认值;

属性字符串:

在操作的定义中加入一些除了预定义元素之外的信息。

4、 接口

在没有给出对象的实现和状态的情况下对对象行为的描述。

一个类可以实现一个或多个接口。

5、 协作

协作是指一些类、接口和其他的元素一起工作提供一些合作的行为,这些行为不是简单地将元素加能得到的。例如:当你为一个分布式的系统中的事务处理过程建模型时,你不可能只通过一个类来明白事务是怎样进行的,事实上这个过程的执行涉及到一系列的类的协同工作。

使用类图来可视化这些类和他们的关系。

6、 关系

这篇文章的重点,详见第二部分。

二、类之间的几种关系

1、 泛化(generalization)

a、 是一种继承关系,表示一般与特殊的关系,它指定了子类如何特化父类的所有特征和行为,描述了一种“is a kind of” 的关系。例如:老虎是动物的一种,即有老虎的特性也有动物的共性。

b、 用带空心箭头的实线表示,箭头指向父类,如下图:

2、 实现(realization)

a、 是一种类与接口的关系,表示类是接口所有特征和行为的实现。

b、 用带空心箭头的虚线表示,箭头指向接口,如下图:

3、 关联(association)

a、 一般关联

a、 关联关系是类与类之间的联结,它使一个类知道另一个类的属性和方法,指明了事物的对象之间的联系,如:老师与学生、丈夫与妻子。关联可以是双向的,也可以是单向的,还有自身关联。

b、 用带普通箭头的实心线表示。双向的关联可以有两个箭头或者没有箭头,单向的关联有一个箭头,如下图:

b、 聚合(aggregation)

a、 它是整体与部分(整体 has a 部分)的关系,且部分可以离开整体而单独存在,如车和轮胎是整体和部分的关系,轮胎离开车仍然可以存在。聚合关系是关联关系的一种,是强的关联关系,关联和聚合在语法上无法区分,必须考察具体的逻辑关系。

b、 用带空心菱形的实线表示,菱形指向整体,如下图:

c、 组合(***position)

a、 它是整体与部分的关系,但部分不能离开整体而单独存在。如公司和部门是整体和部分的关系,没有公司就不存在部门。组合关系是关联关系的一种,是比聚合关系还要强的关系,它要求普通的聚合关系中代表整体的对象负责代表部分的对象的生命周期。

b、 用带实心菱形的实线表示,菱形指向整体,如下图:

4、 依赖(dependency)

a、 元素a的变化会影响元素b,那么b和a的关系是依赖关系,b依赖a。要避免双向依赖,一般来说,不应该存在双向依赖。关联、实现、泛化都是依赖关系。

b、 用带箭头的虚线表示,箭头指向被依赖元素。

5、 总结

各种关系的强弱顺序如下:

泛化 = 实现 > 组合 > 聚合 > 关联 > 依赖

下面这张uml图,比较形象地展现了各种类图关系:

相关关系与因果关系的区别,相关关系与因果关系的区别和联系

1楼 变量之间除了函数 关系 因果关系 之外,还有相关关系,但这种关系不能用函数关系精确的表达出来。 或者说函数关系 因果关系 中的两个变量之间 因和果 是一种确定性关系,例知正方形的面积和边长。 相关关系是一种非确定性关系,例如商品的销售额和广告费。 纯手工,楼主给个好评吧 ! 2楼 百度用户 一...

函数依赖与多值依赖的关系是什么,数据库函数依赖与多值依赖区别?帮帮忙…!

1楼 多值依赖 y x 且x存在t x 和u x 通俗点讲 多值依赖 说白了就是 一夫多妻 制 一个男人 y 可以有老婆 x 但是老婆可以是t x 和u x 就是两个人或者多个 函数依赖 就是 一夫一妻 制一个男人只能有老婆但是只能是一个人由上可理解 一夫一妻 制也是 一夫多妻 的一种因为 一夫多妻...

民事法律关系与社会关系的区别及联系

1楼 催天下 民事法律关系是指由民事法律规范所调整的社会关系,也就是由民事法律规范所确认和保护的以民事权利和民事义务为基本内容的社会关系。 社会关系是人们在共同的物质和精神活动过程中所结成的相互关系的总称,即人与人之间的一切关系。 联系是 民事法律关系是社会关系的一种。 区别是 民事法律关系是民事主...