事物
UML中有四种事物:
-
结构事物:结构事物是UML模型中的名词 ,通常是模型的静态部分 ,描述概念或物理元素。
-
行为事物:行为事物是UML模型的动态部分 ,它们是模型中的动词,描述了跨越时间和空间的行为。
-
分组事物:分组事物是UML模型的组织部分 ,是一些由模型分解成"盒子"。
-
注释事物:注释事物是UML模型的解释部分。这些注释事物用来描述、说明和标注模型的任何元素。
关系
UML中有四种关系:依赖、关联、泛化和实现。
-
依赖:依赖是两个事物间的语义关系 ,其中一个事物(独立事物)发生变化会影响另一个事务(依赖事务)的语义。
-
关联:关联是一种结构关系 ,它描述了一组链,链是对象之间的连接。
a. 聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在。
b. 组合: 部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在。
-
泛化:泛化是一种特殊/一般关系,特殊元素(子元素)的对象可替代一般元素(父元素)的对 象。子元素共享了父元素的结构和行为。
-
实现(了解): 实现是类元之间的语义关系,其中一个类元指定了由另一个类元保证执行的契约。
B D
A D C
B
C
C
B
A
类图
类图(Class Diagram)展现了一组对象、接口、协作和它们之间的关系
符号:
类图用于对系统的静态设计视图建模。通常以下述3种方式之一使用类图:
- 对系统的词汇建模。
- 对简单的协作建模。
- 对逻辑数据库建模。
B A
D
抽象类不能实例化,直接对象就是实例化对象,非直接对象:用A的子类实例化的对象
对象图
对象图展示了某一时刻一组对象以及它们之间的关系 ,描述了在类图中所建立的事物的实列的静态快照。
对象图给出系统的静态设计视图 或静态进程视图。对象图一般包括对象和链(关联)
用例图
- 用例图展示了一组用例、参与者以及它们之间的关系。
- 一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的拓展用例。
- 参与者:参与者是与系统交互的外部实体。可能是使用者,也可能是与系统交互的外部系统、基础设备等。
- 用例:用例是从用户角度描述系统的行为,它将系统的一个功能描述成一系列的事件,这些事件最终对操作者产生有价值的观测结果。用例是一个类,它代表一类功能而不是使用该功能的某一具体实例。
- 之间的关系:
-
- 包含关系(<<include>>)(用例之间):一个用例包含另一个用例
- 扩展关系(<<extend>>)(用例之间):一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是这个用例的扩展用例
- 关联关系(参与者和用例之间)
- 泛化关系(用例与用例以及参与者与参与者之间)
- 用例图用于对系统的静态用例视图进行建模。可用以下两种方式来使用用例图:
-
- 对系统的语境建模。
- 对系统的需求建模。
A
交互图(序列图、通信图)
- 交互图用于对系统的动态方面进行建模。一张交互图表现的是一个交互,由一组对象和它们之间的关系组成。包含它们之间可能传递的消息。
- 交互图一般包括对象、链和消息
- 序列图是强调消息时间顺序的交互图,通信图是强调接收和发送消息的对象的结构组织的交互图。
- 序列图(顺序图、时序图):序列图是场景的图形化表示,描述了对象之间的时间顺序。序列图用于展示系统中一个用例和多个对象的行为。 序列图有两个不同于通信图的特征:
-
- 序列图有对象生命线
- 序列图有控制焦点
- 通信图(协作图):通信图强调收发消息的对象的结构组织,在早期的版本中也被称作协作图。 通信图展现了对象之间的消息流及其顺序。 通信图有两个不同于序列图的特性:
-
- 通信图有路径
- 通信图有顺序号
- 交互概览图(不考)
- 计时图(不考)
C B
状态图
- 状态图展现了一个状态机,它由状态、转换、事件和活动组成。
- 状态图展现了对象的状态转换及事件顺序
- 可以用状态图对系统的动态方面建模。当对系统、类或用例的动态方面建模时,通常是对反应型对象建模。
- 定义的状态主要有:初态(即初始状态)、终态(即最终状态)和中间状态。
- 三种标准事件:entry、exit、do
-
- entry:入口动作,进入状态立即执行
- exit:出口动作,退出状态立即执行
- do:内部活动,占有限时间,并可以中断的工作
- 事件是在某个特定时刻发生的事情,它是对引起系统做动作或(和)从一个状态转换到另一个状态的外界事件的抽象。
- 监护条件是一个布尔表达式。
转换包括两个状态(源状态,目标状态)
事件,监护条件,动作
事件触发转换(迁移)
活动(动作)可以在状态(迁移)内执行,也可以在状态转换时执行。
C D
C
活动图
- 活动图是一种特殊的状态图,它展示了在系统内从一个活动到另一个活动的流程。
- 活动图一般包括活动状态和动作状态、转换和对象。
- 通常有两种使用活动图的方式:
-
- 对工作流建模
- 对操作建模
C
构件图(组件图)
- 构件图展现了一组构件之间的组织和依赖。
- 构件图专注于系统的静态实现试图
部署图
- 部署图是用来对面向对象系统的物理方面建模的方法,展现了运行时处理结点以及其中构件(制品)的配置。
- 部署图展现了系统的软件和硬件之间的关系,在实施阶段使用。
UML图汇总
- 静态建模:类图、对象图、用例图
- 动态建模:序列图(顺序图、时序图)、通信图(协作图)、状态图、活动图
- 物理建模:构件图(组件图)、部署图
- 交互图:序列图(顺序图、时序图)、通信图(协作图)