目录
关系
UML 中有4种关系:依赖、关联、泛化和实现。
依赖(Dependency)
依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。在图形上,把一个依赖画成一条可能有方向的虚线,如图 7-6 所示。
关联(Association)
关联是一种结构关系,它描述了一组链,链是对象之间的连接。聚集(Aggregation)是一种特殊类型的关联,它描述了整体和部分间的结构关系。关联和聚集的图形化表示如图 7-7 和图 7-8 所示。在关联上可以标注重复度(Multiplicity)和角色(Role)。
泛化(Generalization)
泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。在图形上,把一个泛化关系画成一条带有空心箭头的实线,它指向父元素,如图 7-9 所示。
实现(Realization)
实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。在两种情况下会使用实现关系:一种是在接口和实现它们的类或构件之间;另一种是在用例和实现它们的协作之间。在图形上,把一个实现关系画成一条带有空心箭头的虚线,如图 7-10 所示。
这四种关系是UML模型中可以包含的基本关系事物。它们也有变体,例如,依赖的变体有精化、跟踪、包含和延伸。
UML中的图
**图(Diagram)**是一组元素的图形表示,大多数情况下把图画成顶点(代表事物)和弧(代表关系)的连通图。为了对系统进行可视化,可以从不同的角度画图,这样图是对系统的投影。UML 2.0 提供了 13 种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、组合结构图、部署图、包图、交互概览图和计时图。序列图、通信图、交互概览图和计时图均被称为交互图。
类图(Class Diagram)
类图(Class Diagram)展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。
类图中通常包括下述内容(如图 7-11 所示)。
(1)类。
(2)接口。
(3)协作。
(4)依赖、泛化和关联关系。
用例图(Use Case Diagram)
用例图(Use Case Diagram)展现了一组用例、参与者(Actor)以及它们之间的关系。用例图通常包括以下内容(如图 7-13 所示)。
(1)用例。
(2)参与者。
(3)用例之间的扩展关系(<>)和包含关系(<>),参与者和用例之间的关联关系,用例与用例以及参与者与参与者之间的泛化关系。
包含关系
扩展关系
泛化关系
21年下半年
解析:U1:编写迷宫文件 U2:导入迷宫文件 U3:设置计时器
解析:用户与用户之间有三种关系:包含、扩展和泛化。
每个机器人都设置有一个计时器,用于支持执行预先定义好的定时事件,也就是说用户要使用机器人,就要设置定时器,所以U3应该是“操作机器人”的子类应该是操作机器人“包含”设置定时器。包含关系是包含用例指向被包含用例。
建立迷宫,用户可以使用编辑器编写迷宫文件,将迷宫文件导入游戏系统建立用户自定义的迷宫。建立迷宫这个事件可以通过“编写迷宫文件”和“导入迷宫文件”来完成所以是泛化关系,“编写迷宫文件”与”导入迷宫文件“是子类,建立迷宫是父类。泛化关系子类指向父类。
答案:U1、U2和建立迷宫是泛化关系,建立迷宫用例泛化U1、U2用例
U3和操作机器人是包含关系,操作机器人用例包含U3用例。
答案:C1:机器人(Robos) C2:计时器(Timer) C3:小精灵(PacMan) C4:幽灵(Ghost) C3和C4可以互换
C5:传感器(Sensor) C6:前向传感器(FrontSensor) C7:近距离传感器(ProxiSensor) C6和C7可以互换
C8:迷宫(Maze)