UML中关联关系的定义多重性是什么?

UML(7)
& & & & &上一篇总结了UML中的九种图,那么这一篇再总结一下UML中的四种关系。
& & & & & 一、Association关联关系
说明:Assocition(关联):描述了两个或多个类之间的结构性关系。
(1)普通关联:
1)Association name名称:用以描述该关系的性质。
2)Role角色:当一个类处于关联的某一端时,该类就在这个关系中扮演了一个特定的角色;角色是关联中靠近它的
一端的类对另外一端的类呈现的职责。
3)Multiplicity多重性:关联角色的多重性是说明一个关联的实例中有多少个相互连接的对象。
上面的两个例子,第一个是一个双向的普通关联,第二个例子是一个单向关联。同理,两个类之间可以有多种关联,
一个类也可以和多个类关联,类也可以自身关联。
(2)聚合aggregation
说明:聚合表示一种弱的“拥有”关系,体现的是A对象可以包含B对象,但B对象不是A对象的一部分。
(3)组合composition
说明:一种强的“拥有”关系,体现了严格的部分和整体的生命周期一样。
& & & & 二、Generalization泛化关系
说明:是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共
享了父元素的结构和行为。
表示方法:
& & & & 三、Dependency依赖关系
说明:动物有几大特征,比如有新陈代谢,能繁殖。而动物要有生命力,需要氧气、水以及食物等。也就是说,动物
依赖氧气和水。他们之间是依赖关系(dependency),用虚线箭头来表示。例如:
说明:如果两个类有结构关系(关联关系),那么就不用依赖关系(两个事物一般都有这个关系)。
& & & &四、Realization实现
说明:实现(realization)是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。
在两种地方要遇到实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间。
在图形上,把一个实现关系画成一条带有空心箭头的虚线。
表示方法:
& & & & & & 总结:在UML中四种关系尤为重要,用的时候千万不要弄混。看下面一张图,整理一下吧。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:30644次
积分:3672
积分:3672
排名:第6253名
原创:82篇
评论:1619条
阅读:4117
(1)(2)(3)(5)(6)(4)(1)(5)(7)(5)(4)(4)(4)(6)(2)(10)(2)(4)(4)(3)(2)(1)君,已阅读到文档的结尾了呢~~
UML课后习题答案(精),uml课后习题答案,uml课后答案,线性代数课后习题答案,工程力学课后习题答案,课后习题答案网,高数下册课后习题答案,材料力学课后习题答案,结构力学课后习题答案,基础工程课后习题答案
扫扫二维码,随身浏览文档
手机或平板扫扫即可继续访问
UML课后习题答案(精)
举报该文档为侵权文档。
举报该文档含有违规或不良信息。
反馈该文档无法正常浏览。
举报该文档为重复文档。
推荐理由:
将文档分享至:
分享完整地址
文档地址:
粘贴到BBS或博客
flash地址:
支持嵌入FLASH地址的网站使用
html代码:
&embed src='/DocinViewer--144.swf' width='100%' height='600' type=application/x-shockwave-flash ALLOWFULLSCREEN='true' ALLOWSCRIPTACCESS='always'&&/embed&
450px*300px480px*400px650px*490px
支持嵌入HTML代码的网站使用
您的内容已经提交成功
您所提交的内容需要审核后才能发布,请您等待!
3秒自动关闭窗口> 问题详情
UML中关联的多重度是指(50)。A.一个关联类有多少个方法被另一个类调用B.一个关联类有多少个属性被
悬赏:0&答案豆
提问人:匿名网友
发布时间:
UML中关联的多重度是指(50)。A.一个关联类有多少个方法被另一个类调用B.一个关联类有多少个属性被另一个类调用C.一个关联类的某个方法被另—个类调用的次数D.一个关联的实例中有多少个相互连接的对象请帮忙给出正确答案和分析,谢谢!
权威推荐: & &
您可能感兴趣的试题
1在用例建模的过程中,若几个用例执行了同样的功能步骤,此时可以把这些公共步骤提取成独立的用例。这种用例称为(51)。A.扩展用例B.抽象用例C.公共用例D.参与用例2需求分析的任务是借助于当前系统的物理模型导出目标系统的逻辑模型,解决目标系统“做什么”的问题。(52)并不是需求分析的实现步骤之一。A.获得当前系统的物理模型B.抽象出当前系统的逻辑模型C.建立目标系统的逻辑模型D.建立目标系统的物理模型
我有更好的答案
论文写作技巧
相关考试课程
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……> 问题详情
●UML 中关联的多重度是指 (42) 。 (42) A.一个类中被另一个类调用的方法个数 B.一个类的某个方法
悬赏:0&答案豆
提问人:匿名网友
发布时间:
●UML 中关联的多重度是指 (42) 。(42)A.一个类中被另一个类调用的方法个数B.一个类的某个方法被另一个类调用的次数C.一个类的实例能够与另一个类的多少个实例相关联D.两个类所具有的相同的方法和属性请帮忙给出正确答案和分析,谢谢!
权威推荐: & &
网友回答(共1条)
&&&&lv1&&&&提问收益:0.00&答案豆
您可能感兴趣的试题
1●在面向对象软件开发过程中,采用设计模式&&&&&(43)&&。(43)A.以复用成功的设计B.以保证程序的运行速度达到最优值C.以减少设计过程创建的类的个数D.允许在非面向对象程序设计语言中使用面向对象的概念2●设计模式_(44)将抽象部分与其实现部分相分离,使它们都可以独立地变化。下图为该设计模式的类图,其中,&&&(45)&&&用于定义实现部分的接口。(44)&&A.Bridge(桥接)&&B.Composite(组合)C.Facade(外观)&&D.Singleton(单例)&(45)&&A.AbstractionB.ConcreteImplementorAC.ConcreteImplementorB&&&D.Implementor
我有更好的答案
论文写作技巧
相关考试课程
请先输入下方的验证码查看最佳答案
图形验证:
验证码提交中……框架相关(5)
我们在《UML的概述与详解》中已经讲到关联关系,但是对他们之间的理解还是不是很透彻,尤其是针对关联、聚合、合成这几个之间的关系与区别,分不清。这里下面专门来讲这几个东东。
一、首先,我们先看一下关联关系的分类。
&&&&&& 从前面的《UML的概述与详解》中可以看到,关系关系可以分为6类:1.依赖;2.关联;3.聚合;4.合成;5.泛化;6.实现;
其中,对于“泛化”与“实现”这两个还是比较好理解的。 “泛化”体现了Java中的extend关键字;而“实现”体现了Java中的implements关键字。对于前面的4种,我们在下面做进一步的探讨。
二、再看一下这几者之间的区别。
依赖(Dependency)
&&&&&& 依赖表示的是一个类的定义依赖于另一个类的定义,表示是类与类之间的连接(注意这里指的是连接)。依赖关系仅仅描述了类与类之间的一种使用与被使用的关系。我们看看它转化到Java中的展现就比较好理解了。
&&&&&& 体现:体现为局部变量,方法/函数的参数或者是对静态方法的调用。
&&&&&& 注意依赖与后面的另外三种不同的是:后面三种(关联,聚合,合成)体现到Java中表现为类的成员变量,而依赖不是,仅仅是局部变更或是方法参数或是静态方法的调用。从这一点上就可以明白上面说的“描述了类与为之间的使用与被使用的关系”的意思了,后面三种则都存在这种成员变量的引用的关系了。
&&&& & 依赖的图示:虚线+箭头,如下图D:
&&&&&& 图D
&&&&&&&&&&
&&&&&& 从上图,还可以看出依赖的另一种情况,如上图,Employee类中甚至完全没有引用到Calculator类,Employee类在方法calcSalary()方法中使用的参数是CalculatorStrategy对象,这在设计模式中是一个策略模式,CalculatorStrategy是一个抽象类或是一个接口,虽然方法中没有直接引用Calculator类,而是CalculatorStrategy对象,但在实际调用calcSalary()方法时,传递给该方法的实例则不可能是CalculatorStrategy对象(因为CalculatorStrategy是抽象类,不能实例化),应该是Calculator类,从而两者产生依赖关系。因此依赖关系有可能是在静态代码中甚至体现不出来,但在实际发生作用时,两个类出现这种相互连接、依赖、使用的关系。
&&&&&&&2.关联(Association)
&&&&& 如《UML的概述与详解》中的描述,它表示的是两个实体的结构化关系之间的相互联接。
&&&&& 注意点:1.这里是类的结构化,表示在结构上就是相互连接,可以理解为在代码层面便是相互声明,体现为类的实例变量;
&&&&&&&&&&&&&&&&&&& 2.箭头是可选的,它用于指定导航能力。即是说关联总是被假定是双向的,除非你画了箭头,来表示这种关联是一种单向的关联,否则,没有画箭头,则暗示是一种双向导航的能力。
&&&&&&&&&&&&&&&&&&& 3.双向关联意味着,两个类彼此知道它们间的联系;而加了箭头的单向关联则意味着只有一个类知道这种联系的存在,而另一个类则对此关联毫无所知。
&&&&& 体现:体现为类中的实例变量的引用。
&&&&& 图示:实线+箭头(可选),如下图E:
&&&&&&3.聚合(Aggregation)
&&&&& 首先要知道一点,“合成”是聚合的一种特殊的形式,而“聚合”本身是“关联”的一种特殊的形式。我们先来看看什么是聚合。
&&&&&&聚合是一种特别类型的关联,用于描述“总体到局部”的关系。在基本的聚合关系中, 部分类 的生命周期独立于 整体类 的生命周期。
&&&&& 举例来说,我们可以想象,车 是一个整体实体,而 车轮 轮胎是整辆车的一部分。轮胎可以在安置到车时的前几个星期被制造,并放置于仓库中。在这个实例中,Wheel类实例清楚地独立地Car类实例而存在。然而,有些情况下, 部分类的生命周期并不独立于 整体类
的生命周期 -- 这称为合成聚合。举例来说,考虑公司与部门的关系。 公司和部门都建模成类,在公司存在之前,部门不能存在。这里Department类的实例依赖于Company类的实例而存在。
&&&&&& 从上面的例子能明白基本聚合与合成聚合之间的区别之后,我们再分别来探讨两者的表示。
&&&&&& 基本聚合
&&&&&& 体现:体现为类中的实例变量的引用。
&&&&&& 聚合关系的关联指出,某个类是另外某个类的一部分。在一个聚合关系中,子类实例可以比父类存在更长的时间。为了表现一个聚合关系,你画一条从父类到部分类的实线,并在父类的关联末端画一个未填充棱形。图F显示车和轮胎间的聚合关系的例子。
&&&&& 从上面的讨论可以看出,聚合与关联相比,暗示着一种整体与局部的关系。关联通常意义上暗示着这两个类在概念上处于同一个级别,而聚合则暗示着 整体类 在概念上要比 局部类 高出一个级别。事实上他们两者的区别纯粹是概念上的,而严格反映到语义上,都是体现为类中的实例变量的引用。聚合还暗示着实例图中不存在回路。换言之,只能是一种单向关系。
&&&&&4.合成(Composition)
&&&&&合成聚合关系是聚合关系的一种特殊形式,表示子类实例的生命周期依赖于父类实例的生命周期。在图G中,显示了Company类和Department类之间的组合关系,注意组合关系如聚合关系一样绘制,不过这次菱形是被填充的。
&&&& 体现:体现为类中的实例变量的引用。
&&&& 在上图中的关系建模中,一个Company类实例至少总有一个Department类实例。因为关系是组合关系,当Company实例被移除/销毁 时,Department实例也将自动地被移除/销毁。组合聚合的另一个重要功能是部分类只能与父类的实例相关(举例来说,我们例子中的Company
&&&&&& 另外,我们来看一种反射关联
&&&&&& 现在我们已经讨论了所有的关联类型。就如你可能注意到的,我们的所有例子已经显示了两个不同类之间的关系。然而,类也可以使用反射关联与它本身相关 联。起先,这可能没有意义,但是记住,类是抽象的。图H显示一个Employee类如何通过manager
/ manages角色与它本身相关。当一个类关联到它本身时,这并不意味着类的实例与它本身相关,而是类的一个实例与类的另一个实例相关。
&&&&&& 图H:
  图H描绘的关系说明一个Employee实例可能是另外一个Employee实例的经理。然而,因为“manages”的关系角色有%200..*的多重性描述;一个雇员可能不受任何其他雇员管。
参考知识库
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
访问:953791次
积分:10334
积分:10334
排名:第1085名
原创:102篇
转载:363篇
评论:156条
(2)(1)(1)(3)(24)(6)(3)(2)(3)(18)(14)(26)(5)(22)(27)(21)(32)(29)(23)(27)(40)(16)(4)(1)(10)(7)(2)(1)(4)(2)(2)(15)(19)(14)(15)(3)(1)(4)(1)(2)(6)(6)(2)(5)(1)(1)(1)

我要回帖

更多关于 关联关系的定义 的文章

 

随机推荐