当前位置:
文档之家› 聚合(Aggregation)关系是用来表示整体与部分关系的关联
聚合(Aggregation)关系是用来表示整体与部分关系的关联
• 包可以拥有其他的元素,这些元素可以是 包可以拥有其他的元素, 接口、组件、节点、协作、用例和图, 类、接口、组件、节点、协作、用例和图, 甚至可以是其他包。拥有是一种组成关系, 甚至可以是其他包。拥有是一种组成关系, 这意味着模型元素被声明的包中, 这意味着模型元素被声明的包中,而且一 个模型元素不能被一个以上的包所拥有。 个模型元素不能被一个以上的包所拥有。 如果包被撤销,其中的元素也要被撤销。 如果包被撤销,其中的元素也要被撤销。 在UML中,最有用的和强调最多的启发性 中 原则就是依赖。。 原则就是依赖。。
• Information包图:这部分类图是系统的信 包图: 包图 息显示部分,包括书籍信息, 息显示部分,包括书籍信息,读者信息的 显示,查询各种信息的对话框等界面。 显示,查询各种信息的对话框等界面。 • Maintenance包图:这部分类图是系统运 包图: 包图 行界面的维护部分,包括读者信息, 行界面的维护部分,包括读者信息,书籍 信息的修改,更新和查询的内容。 信息的修改,更新和查询的内容。
•
如果构件属于一个包, 如果构件属于一个包,可以在构件名 称前加上包名, 称前加上包名,还可以另外一个隔开的区 域里绘出构件的操作。 域里绘出构件的操作。 接口可以用一个小圆圈来代表, 接口可以用一个小圆圈来代表,用实 线和构件连接起来。这表示的实现关系。 线和构件连接起来。这表示的实现关系。 另外还可在图中表示出依赖关系——构件 另外还可在图中表示出依赖关系 构件 和它用来访问其他构件的接口之间的关系。 和它用来访问其他构件的接口之间的关系。 用一个“球窝”符号。其中“ 用一个“球窝”符号。其中“球”表示提 供的接口, 代表了所需要的接口。 供的接口,“窝”代表了所需要的接口。
构件图和部署图
构件图和部署图显示系统实现时的 一些特性, 一些特性,包括源代码的静态结构和运 行时刻的实现结构。 行时刻的实现结构。构件图显示代码本 身的结构, 身的结构,部署图显示系统运行时刻的 结构。 结构。 • 构件图 构件图(Component diagram)显示 构件图 显示 软件构件之间的依赖关系。 软件构件之间的依赖关系。在构件图中 通常包含了3种元素 构件、 种元素: 通常包含了 种元素:构件、接口和依赖 关系。 关系。 •
• 对象图 • 对象图(Object diagram )描述的是参与 对象图 描述的是参与 交互的各个对象在交互过程中某一时刻 的状态。 的状态。对象图可以被看作是类图在某 时刻的实例。 时刻的实例。 在UML中,对象图使用的是与类图相同 中 的符号和关系。 的符号和关系。
• 包图 • 一个最古老的软件方法问题是:怎样将 一个最古老的软件方法问题是: 大系统拆分成小系统。 大系统拆分成小系统。解决这个问题的 一个思路是将许多类进行分组, 一个思路是将许多类进行分组,形成一 个高内聚、低耦合的类的集合。 个高内聚、低耦合的类的集合。UML中 中 这种分组机制叫包(Package) ,如下图。 如下图。 这种分组机制叫包
• 部署图可以对系统的硬件平台建模,还可 部署图可以对系统的硬件平台建模, 以描述影响系统运行和软件配置的硬件性 如图6-32,是一个网络系统中有线猫 能。如图 , 和无线路由之间的部署图。 和无线路由之间的部署图。
• 6.2.4 UML的动态建模机制 的动态建模机制 • 对于一个系统的各个对象之间如何进行相 互作用来实现系统功能就是这个系统中动 态的行为。 态的行为。对于动态行为的描述通过动态 建模来完成。 的动态建模包括状态图, 建模来完成。UML的动态建模包括状态图, 的动态建模包括状态图 顺序图,协作图,活动图。 顺序图,协作图,活动图。
类的接口和软件实体(构件) 类的接口和软件实体(构件)的接 口概念是相同的。构件实现一些接口, 口概念是相同的。构件实现一些接口, 并使用另一些接口。 并使用另一些接口。如果构件间的依赖 关系与接口有关, 关系与接口有关,那么可以被具有同样 接口的其他构件所替代。 接口的其他构件所替代。构件图描述软 件构件以及它们之间的依赖关系, 件构件以及它们之间的依赖关系,从而 便于人们分析和发现当修改某个构件时 可能对那些构件产生影响, 可能对那些构件产生影响,以便对它们 做相应的修改或更新。 做相应的修改或更新。构件可以是源代 码构件、二进制目标码构件、 码构件、二进制目标码构件、可执行构 件或文档构件。 件或文档构件。
包图主要显示类的包以及这些包之间的 依赖关系。 依赖关系。有时还显示包和包之间的继 承关系和组成关系。 承关系和组成关系。包间的依赖用虚线 表示。 表示。
UI Package
Function
BuinessPackage
MainWindow
ReturnItemframe
BookTitle
BookLoan
do/Bootup
Working
Shutting Down
Shutor mouse movement
Screensaving
• 内部转换 在内部转换中可以包含进入或者走出 此状态应该执行的活动或动作, 此状态应该执行的活动或动作,它们将响应 对象所接收到的事件, 对象所接收到的事件,但是不改变对象的状 态。 • 子状态 一个状态可以进一步地细化为多个子 状态,将可以进一步细化的状态称作组合状 状态, 态。或关系说明在某一时刻仅可到达一个子 状态。 状态。在组合状态的嵌套状态图部分包含子 状态有两种情况, 状态有两种情况,即顺序子状态和并发子状 态。
状态图是由状态和迁移组成的图, 状态图是由状态和迁移组成的图,描述类 实例对接受事件的响应。 实例对接受事件的响应。状态描述对象生 命周期的一段时间, 命周期的一段时间,可以是等待其它事件 时所处的时间, 时所处的时间,或是执行某一活动时所处 的时间。 的时间。
• 状态 • 状态由一个带圆角的矩形表示,状态图的 状态由一个带圆角的矩形表示, 图标可分为3部分 名称、活动,如图6-33、 部分: 图标可分为 部分:名称、活动,如图 、 6-34所示。 所示。 所示
构件图可以对实现环境中的真实软 件建模; 件建模;通过依赖关系展示软件的构造 情况;在对系统进行改变或升级之前, 情况;在对系统进行改变或升级之前, 提供对现有系统的精确描述; 提供对现有系统的精确描述;有了构件 图,不用阅读所有的代码就可以发现实 现中的瓶颈问题。 现中的瓶颈问题。构件是定义了良好接 口的物理实现单元, 口的物理实现单元,是系统中可替换的 物理部分。构件图中的接口、 物理部分。构件图中的接口、依赖关系 与类图中的相同。图所示为UML2.0中, 与类图中的相同。图所示为 中 表示构件的一种图标, 表示构件的一种图标,其是顶部带有关 键字《 键字《component》的矩形。 》的矩形。
图6-37中显示了使用计算机时如果不打 中显示了使用计算机时如果不打 字或不碰鼠标, 字或不碰鼠标,则过一段时间屏幕保护 程序就会运行, 程序就会运行,它可以保护显示器屏幕 免受损坏。图中的方括号是UML表示 免受损坏。图中的方括号是 表示 “if”的方式。 ”的方式。
Initializing Turn PC on
• 图6-24所示,咖啡桌是一个组合体,它的 所示, 所示 咖啡桌是一个组合体, 部分有桌面和桌腿。 部分有桌面和桌腿。
• 实现 实现(Realization) • 实现是规格说明和其实现之间的关系,它 实现是规格说明和其实现之间的关系, 将一种模型元素与另一种模型元素连接起 比如类和接口。 来,比如类和接口。
初始状态只能作为转换的源, 初始状态只能作为转换的源,而不能作为 转换的目标。 转换的目标。初始状态在一个状态图中只 允许有一个,用一个实心的圆表示, 允许有一个,用一个实心的圆表示,如图 6-35所示。 所示。 所示
• 终止状态 • 终止状态是模型元素的最后状态,是一个 终止状态是模型元素的最后状态, 状态图的终止点。 状态图的终止点。终止状态只能作为转换 的目标,而不能作为转换的源。 的目标,而不能作为转换的源。终止状态 与初始状态不同的是,在一个状态图中, 与初始状态不同的是,在一个状态图中, 终止状态可以有多个, 终止状态可以有多个,它用一个含有实心 圆的空心圆表示,如图6-36所示。 所示。 圆的空心圆表示,如图 所示
• 聚合 • 聚合(Aggregation)关系是用来表示整体 聚合( ) 与部分关系的关联。在聚集中, 与部分关系的关联。在聚集中,部分类可 以没有整体类而存在, 以没有整体类而存在,但是当它们聚集成 一个整体,就用来组成该整体类。 一个整体,就用来组成该整体类。在UML 中,聚合关系用带空心的菱形头的实线表 其头部指向整体。 示,其头部指向整体。
如图6-30所示,构件A与构件 之间通过 所示,构件 与构件 与构件B之间通过 如图 所示 接口连接。 接口连接。
• 部署图 • 部署图(Deployment Diagram)描述系 部署图( ) 统硬件的物理拓扑结构以及在此结构上执 行的软件。 行的软件。部署图可以显示计算结点的拓 扑结构和通信路径、 扑结构和通信路径、节点上运行的软件构 软件构件包含的逻辑单元(对象 对象、 等 件、软件构件包含的逻辑单元 对象、类)等。 部署图常用于帮助理解分布式系统。 部署图常用于帮助理解分布式系统。
• 转换 • 转换用带箭头的直线表示,一端连接源 转换用带箭头的直线表示, 状态,即转出状态,一端连接目标状态, 状态,即转出状态,一端连接目标状态, 即转入状态。 即转入状态。转换可以标注与此转换相 关的选项,如事件、动作和监护条件。 关的选项,如事件、动作和监护条件。 • 初始状态 • 每个状态图都应该有一个初始状态用于 代表状态图的起始位置。 代表状态图的起始位置。
1)顺序子状态 顺序子状态 如果一个组成状态的自状态对 应的对象在其生命期内的任何时刻 都只能处于一个子状态, 都只能处于一个子状态,即多个子 状态之间是互斥的,不能同时存在。 状态之间是互斥的,不能同时存在。
• 从图 从图6-38中可以看到一个物体移动,其 中可以看到一个物体移动, 中可以看到一个物体移动 向前” 向后” “向前”和“向后”运动两个状态必须在 前一个状态完成之后才能进行下一个状态, 前一个状态完成之后才能进行下一个状态, 不可能同时进行。 不可能同时进行。