聚合(aggregation)关系是用来表示整体与部分关系的关联

上传人:kms****20 文档编号:51012942 上传时间:2018-08-12 格式:PPT 页数:44 大小:420.50KB
返回 下载 相关 举报
聚合(aggregation)关系是用来表示整体与部分关系的关联_第1页
第1页 / 共44页
聚合(aggregation)关系是用来表示整体与部分关系的关联_第2页
第2页 / 共44页
聚合(aggregation)关系是用来表示整体与部分关系的关联_第3页
第3页 / 共44页
聚合(aggregation)关系是用来表示整体与部分关系的关联_第4页
第4页 / 共44页
聚合(aggregation)关系是用来表示整体与部分关系的关联_第5页
第5页 / 共44页
点击查看更多>>
资源描述

《聚合(aggregation)关系是用来表示整体与部分关系的关联》由会员分享,可在线阅读,更多相关《聚合(aggregation)关系是用来表示整体与部分关系的关联(44页珍藏版)》请在金锄头文库上搜索。

1、 聚合 聚合(Aggregation)关系是用来表示整体 与部分关系的关联。在聚集中,部分类可 以没有整体类而存在,但是当它们聚集成 一个整体,就用来组成该整体类。在UML 中,聚合关系用带空心的菱形头的实线表 示,其头部指向整体。 从图6-23可以看到,计算机由CPU、显示 器、键盘、鼠标、扬声器等组成。 组合 组合(Composition)关系是聚合关系中 的一种特殊情况,是更强形式的聚合,又 被称为强聚合。在组合中,用来组成整体 类的部分类不能独立存在。UML中,组合 关系用带实心菱形的实线来表示,其中头 部指向整体。 图6-24所示,咖啡桌是一个组合体,它的 部分有桌面和桌腿。 实现(

2、Realization) 实现是规格说明和其实现之间的关系,它 将一种模型元素与另一种模型元素连接起 来,比如类和接口。 对象图 对象图(Object diagram )描述的是参与 交互的各个对象在交互过程中某一时刻 的状态。对象图可以被看作是类图在某 时刻的实例。在UML中,对象图使用的是与类图相同 的符号和关系。 包图 一个最古老的软件方法问题是:怎样将 大系统拆分成小系统。解决这个问题的 一个思路是将许多类进行分组,形成一 个高内聚、低耦合的类的集合。UML中 这种分组机制叫包(Package) ,如下图 。 包可以拥有其他的元素,这些元素可以是 类、接口、组件、节点、协作、用例和图

3、,甚至可以是其他包。拥有是一种组成关 系,这意味着模型元素被声明的包中,而 且一个模型元素不能被一个以上的包所拥 有。如果包被撤销,其中的元素也要被撤 销。在UML中,最有用的和强调最多的启 发性原则就是依赖。包图主要显示类的包以及这些包之间的 依赖关系。有时还显示包和包之间的继 承关系和组成关系。包间的依赖用虚线 表示。 UI包中的类如下,主要有Function包图, Information包图和Maintenance包图。 Function类图:这部分是系统运行界面的 基本功能部分,包括借书,还书,预定书 籍和取消预定的界面,如表6-3 Information包图:这部分类图是系统的信 息

4、显示部分,包括书籍信息,读者信息的 显示,查询各种信息的对话框等界面。 Maintenance包图:这部分类图是系统运 行界面的维护部分,包括读者信息,书籍 信息的修改,更新和查询的内容。构件图和部署图 构件图和部署图显示系统实现时的 一些特性,包括源代码的静态结构和运 行时刻的实现结构。构件图显示代码本 身的结构,部署图显示系统运行时刻的 结构。 构件图构件图(Component diagram)显示 软件构件之间的依赖关系。在构件图中 通常包含了3种元素:构件、接口和依赖 关系。类的接口和软件实体(构件)的接 口概念是相同的。构件实现一些接口, 并使用另一些接口。如果构件间的依赖 关系与接

5、口有关,那么可以被具有同样 接口的其他构件所替代。构件图描述软 件构件以及它们之间的依赖关系,从而 便于人们分析和发现当修改某个构件时 可能对那些构件产生影响,以便对它们 做相应的修改或更新。构件可以是源代 码构件、二进制目标码构件、可执行构 件或文档构件。构件图可以对实现环境中的真实软 件建模;通过依赖关系展示软件的构造 情况;在对系统进行改变或升级之前, 提供对现有系统的精确描述;有了构件 图,不用阅读所有的代码就可以发现实 现中的瓶颈问题。构件是定义了良好接 口的物理实现单元,是系统中可替换的 物理部分。构件图中的接口、依赖关系 与类图中的相同。图所示为UML2.0中, 表示构件的一种图

6、标,其是顶部带有关 键字component的矩形。 如果构件属于一个包,可以在构件名称 前加上包名,还可以另外一个隔开的区域 里绘出构件的操作。接口可以用一个小圆圈来代表,用实线 和构件连接起来。这表示的实现关系。另外还可在图中表示出依赖关系构件 和它用来访问其他构件的接口之间的关系 。用一个“球窝”符号。其中“球”表示提供 的接口,“窝”代表了所需要的接口。如图6-30所示,构件A与构件B之间通过 接口连接。 部署图 部署图(Deployment Diagram)描述系 统硬件的物理拓扑结构以及在此结构上执 行的软件。部署图可以显示计算结点的拓 扑结构和通信路径、节点上运行的软件构 件、软件

7、构件包含的逻辑单元(对象、类)等 。部署图常用于帮助理解分布式系统。节点是在运行时用于代表计算资源的物理 元素。它就像是类,代表的是某种类型的 设备,却不是专指某个特定的设备,因为 实际上它们代表的是设备的特征。另外, 节点也使用关联来表示它们之间的关系。 图6-31表示部署图中的节点。 部署图可以对系统的硬件平台建模,还可 以描述影响系统运行和软件配置的硬件性 能。如图6-32,是一个网络系统中有线猫 和无线路由之间的部署图。 6.2.4 UML的动态建模机制 对于一个系统的各个对象之间如何进行相 互作用来实现系统功能就是这个系统中动 态的行为。对于动态行为的描述通过动态 建模来完成。UML

8、的动态建模包括状态图 ,顺序图,协作图,活动图。状态图是由状态和迁移组成的图,描述类 实例对接受事件的响应。状态描述对象生 命周期的一段时间,可以是等待其它事件 时所处的时间,或是执行某一活动时所处 的时间。 状态 状态由一个带圆角的矩形表示,状态图的 图标可分为3部分:名称、活动,如图6-33 、6-34所示。 转换 转换用带箭头的直线表示,一端连接源 状态,即转出状态,一端连接目标状态 ,即转入状态。转换可以标注与此转换 相关的选项,如事件、动作和监护条件 。 初始状态 每个状态图都应该有一个初始状态用于 代表状态图的起始位置。初始状态只能作为转换的源,而不能作为 转换的目标。初始状态在一

9、个状态图中只 允许有一个,用一个实心的圆表示,如图6- 35所示。 终止状态 终止状态是模型元素的最后状态,是一个 状态图的终止点。终止状态只能作为转换 的目标,而不能作为转换的源。终止状态 与初始状态不同的是,在一个状态图中, 终止状态可以有多个,它用一个含有实心 圆的空心圆表示,如图6-36所示。图6-37中显示了使用计算机时如果不打 字或不碰鼠标,则过一段时间屏幕保护 程序就会运行,它可以保护显示器屏幕 免受损坏。图中的方括号是UML表示“if” 的方式。 内部转换在内部转换中可以包含进入或者走出此 状态应该执行的活动或动作,它们将响应对 象所接收到的事件,但是不改变对象的状态 。 子状

10、态一个状态可以进一步地细化为多个子状 态,将可以进一步细化的状态称作组合状态 。或关系说明在某一时刻仅可到达一个子状 态。在组合状态的嵌套状态图部分包含子状 态有两种情况,即顺序子状态和并发子状态 。1)顺序子状态如果一个组成状态的自状态对 应的对象在其生命期内的任何时刻 都只能处于一个子状态,即多个子 状态之间是互斥的,不能同时存在 。 从图6-38中可以看到一个物体移动,其“向 前”和“向后”运动两个状态必须在前一个状 态完成之后才能进行下一个状态,不可能 同时进行。2)并发子状态有时组合状态有两个或者多个 并发的子状态机。顺序子状态与并 发子状态的区别在于后者在同一层 次给出两个或多个顺

11、序子状态,对 象处于同一层次中来自每个并发子 状态的一个时序状态中。例如,一个处于行驶状态的汽车,在“ 行驶”这个复合状态中有向前和向后两个不 同的子状态,在某一时刻汽车要么向前, 要么向后。与关系说明复合状态中在某一 时刻可同时到达多个子状态(称为并发子状 态)。具有并发子状态的状态图称为并发状 态图。 顺序图顺序图(Sequence Diagram) 的关键思想是对象之间的交互是按 照特定的顺序发生的,这些按特定 顺序发生的交互序列从开始到结束 需要一定的时间。当建立一个系统 时,必须要指明这种交互序列,顺 序图就是用来完成这项工作的。顺序图包含了4个元素,分别是对 象、生命线、消息和激活

12、。顺序图存在两个轴:水平轴表示不同的 对象,垂直轴表示时间。 对象用一个矩形框表示,并标有对象名 和类名。对象从左到右布置在顺序图的 顶部。布局以能够使图尽量简洁为准。 时间顺序图中垂直方向代表时间,时间 流逝的方向为自顶向下。靠近顶部的消 息发生的时间要比靠近底部的消息早。 生命线垂直虚线是对象的生命线,用于表示 在某段时间内对象是存在的。 消息一个对象到另一个对象的消息用跨越 对象生命线的消息来表示对象还可以发送 消息给它自己,即消息从自己的生命线出 发又回到自己的生命线。 UML用一条生命线开始到另一条生 命线结束的箭头来表示一个消息。箭头的 形状代表消息的类型。 其中: 同步消息一个来

13、自消息发送者对象的请求,它被 传递给消息的接收者对象。它请求接收者 对象执行其(接收者对象的)某种操作。 通常,这需要发送者等待接收者来执行该 操作。由于发送者等待接收者,即发送者 和接收者同步。 UML用一个带有实心箭头 的实线来表示这种类型的消息。 返回同步消息通常,发送同步消息还包含了来自接收者的返 回消息,尽管建模者经常忽略这个返回消息。这个 返回消息的符号是一条带有两条箭头的虚线。 异步消息另一种消息是异步消息。在这种消息中,发送 者把控制权转交给接收者,但不等待操作完成。这 种消息的符号是一个两条线的箭头。 激活激活表示对象正在执行某个操作。激活在 UML图中是用生命线上的窄矩形条

14、来表示。激活 矩形的长度表示出激活的持续时间,持续时间通 常以一种大概的、普通的方式来表示。这意味着 生命线中的每一段虚线通常不会代表具体的时间 单元,而是试图表示一般意义上的持续时间。 UML2.0中,用一个边框包围它并在左上角 添加一个间隔区,这个间隔区包含了识别 该顺序图的信息。其中的一小段信息是操 作符,就是描述图的类型的表达式。对于 一个顺序图,其操作符是sd(sequence diagram)。 图6-40表示的“锁车”事件的顺序图。 汽车的遥控钥匙可以锁车和开锁,并且可 以打开后备箱。如果汽车自动上锁,闪动 一下车灯,并发出一声鸣叫,告诉车主它 已经把车门上锁了。以上就是一个给汽

15、车 上锁的事件的顺序图。可以看到其中有车 主(CarOwner)、汽车(Car)和车钥匙 (CarKey)这几个对象。其活动为:1)车主向车钥匙发送消息,要求车钥匙实 现getButtonPress()操作(其参数b为 ButtonNam,即为处理该消息并实现和所 按下的按钮名相应的操作如“上锁”、“开锁 ”、“打开后备箱”等),登记下车主按下的 按钮b,并且把控制权传递给了车钥匙2)车钥匙发送消息给车,通知车实现其 proccessKeyMessage()操作,这个 操作取决于具体的按钮。处理完来自车 钥匙的消息后,汽车给自己发送一条消 息,以实现和按下的按钮相应的操作。 如果按下的按钮是“lock”,汽车就会向 自己发送执行lock()操作的请求。然后, 汽车发送闪动车灯(BlinkLights())和 汽车鸣叫(Beep()这两个信号给车主。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号