1.事物
UML中有4种事物:结构事物、行为事物、分组事物和注释事物。
(1)结构事物(structural thing)。结构事物是UML模型中的名词。它们通常是模型的静态部分,描述概念或物理元素。结构事物包括类(class)、接口(interface)、协作(collaboration)、用例(use case)、主动类(active class)、构件(component)、制品(artifact)和结点(node)。
各种结构事物的图形化表示如下图所示:
(2)行为事物(behavior thing)。行为事物是UML模型的动态部分。它们是模型中的动词,描述了跨越时间和空间的行为。行为事物包括交互(interaction)、状态机(state machine)和活动(activity)。各种行为事物的图形化表示如下图所示:
交互由在特定语境中共同完成一定任务的一组对象之间交换的消息组成。一个对象群体的行为或单个操作的行为可以用一个交互来描述。交互涉及一些其他元素,包括消息、动作序列(由一个消息所引起的行为)和链(对象见的连接)。在图形上,把一个消息表示为一条有向直线,通常在表示消息的线段上总有操作名。
状态机描述了一个对象或一个交互在生命期内响应时间所经历的状态序列。单个类或一组类之间协作的行为可以用状态机来描述。一个状态机设计到一些其他元素,包括状态、转换(从一个状态到另一个状态的流)、事件(出发转换的事物)和活动(对一个转换的响应)。在图形上,把状态表示为一个圆角矩形,通常在圆角矩形中含有状态的名称及其子状态。
活动是描述计算机过程执行的步骤序列,注重步骤之间的流而不关心哪个对象执行哪个步骤。活动的一个步骤称为一个动作。在图形上,把动作画成一个圆角矩形,在其中含有指明其用途的名字。状态和动作靠不同的语境得以区别。
交互、状态机和活动是可以包含在UML模型中的基本行为事物。在语义上,这些元素通常与各种结构元素(主要是类、协作和对象)相关。
(3)分组事物(grouping thing)。分组事物是UML模型的组织部分,是一些由模型分解成的“盒子”。在所有的分组事物中,最主要的分组事物是包(package)。包是把元素组织成组的机制,这种机制具有多种用途。结构事物、行为事物甚至其他分组事物都可以放进包内。包与构件(仅在运行时存在)不同,它纯粹是概念上的(即它仅在开发时存在)。包的图形化表示如下图所示:
(4)注释事物(annotational thing)。注释事物是UML模型的解释部分。这些解释事物用来描述、说明和标注模型的任何元素。注解(note)是一种主要的注释事物。注解是一个依附于一个元素或者一组元素之上,对它进行约束或解释的简单符号。注解的图形化表示如下图所示:
2.关系
UML中有4中关系:依赖、关联、泛化和实现。
(1)依赖(dependency)。依赖是两个事物间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义。在图形上,把一个依赖画成一条可能有方向的虚线,如下图所示:
(2)关联(association)。关联是一种结构关系,它描述了一组链,链式对象之间的连接。聚集(aggregation)是一种特殊类型的关联,它描述了中体和部分间的结构关系。关联和聚集的图形化表示如下图所示:
在关联上可以标注重复度(multiplicity)和角色(role)。
(3)泛化(generalization)。泛化是一种特殊/一般关系,特殊关系(子元素)的对象可替代一般元素(父元素)的对象。用这种方法,子元素共享了父元素的结构和行为。在图形上,把一个泛化关系画成一条带有空心箭头的实线,它指向父元素,如下图所示:
泛化
(4)实现(realization)。实现是类元之间的语义关系,其中一个类元制定了由另一个类元保证执行的契约。在两种情况下会使用实现关系:一种是在接口和实现他们的类或构件之间;另一种是在用例和实现它们的协作之间。在图形上,把一个实现关系画成一条带有空心箭头的虚线,如下图所示:
这四种关系是UML模型中可以包含的基本关系事物。它们也有变体,例如,依赖的变体有精华、跟踪、包含和延伸。
3.UML中的图
图(diagram)是一组元素的图形表示,大多数情况下把图画成顶点(代表事物)和弧(代表关系)的连通图。为了对系统进行可视化,可以从不同的角度画图,这样图是对系统的投影。 UML2.0提供了13种图,分别是类图、对象图、用例图、序列图、通信图、状态图、活动图、构件图、部署图、组合结构图、包图、交互概览图和计时图。序列图、通信图、交互概览图和计时图均被称为交互图。
1.类图
类图(class diagram)展现了一组对象、接口、协作和他们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。包含主动类的类图给出了系统的静态进程视图。
类图中通常包括下述内容(如下图所示)。
2.对象图
对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。
3.构件图
构件图描述一个封装的类和它的接口、端口,以及由内嵌的构件和连接件构成的内部结构。构件图用于表示系统的静态设计实现视图。对于由小的部件构建大的系统来说,构件图是很重要的。构件图是类图的变体。
4.组合结构图
组合结构图描述结构化类(例如,构件或类)的内部结构,包括结构化类与系统其余部分的交互点。组合结构图用于画出结构化类的内部内容。
5.用例图
用例图描述一组用例、参与者及它们之间的关系。用例图给窗户系统的静态用例视图。这些图在对系统的行为进行组织和建模时是非常重要的。
6.顺序图
顺序图是一种交互图,交互图展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图是强调消息的时间次序的交互图。
7.通信图
通信图也是一种交互图,它强调收发消息的对象或参与者的结构组织。顺序图和通信图表达了类似的基本概念,但它们所强调的概念不同,顺序图强调的是时序,通信图强调的是对象之间的组织结构(关系)。在UML1.X版本中,通信图成为协作图。
8.定时图
定时图也是一种交互图,它强调消息跨越不同对象或参与者的实际时间,而不仅仅只是关心消息的相对顺序。
9.状态图
状态图描述一个状态机,它由状态、转移、时间和活动组成。状态图给出了对象的动态视图。它对于结构、类或协作的行为建模尤为重要,而且它强调事件导致的对象行为,这非常有助于对反应式系统建模。
10.活动图
活动图将进程或其他计算结构展示为计算内部的一步步的控制流和数据流。活动图专注于系统的动态视图。它对系统的功能建模和业务流程建模特别重要,并强调对象间的控制流程。
11.部署图
部署图描述对运行时的处理结点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个结点包含一个或多个部署图。
12.制品图
制品图描述计算机中一个系统的物理结构。制品包括文件、数据库和类似的物理比特集合。制品图通常与部署图一起使用。制品也给出了它们实现的类和构件。
13.包图
包图描述由模型本身分解而成的组织单元,以及它们之间的依赖关系。
14.交互概览图
交互概览图是活动图和顺序图的混合物。