UML建模
目前国际上出现的面向对象的方法
- OOA:面向对象分析
- OOD:面向对象设计
- OMT:面向对象建模技术
- UML:统一建模语言
UML词汇表包含3种构造块
- 事物:事物是对模型中最具有代表性的成分的抽象
- 关系:关系把事物结合在一起
- 图:聚集了相关的事物
UML——事物
UML中的4种事物:
- 结构事务 --> 名词,静态部分
- 行为事务 --> 动词,动态部分,包含(交互、状态机、活动)
- 分组事务 --> 包,组织部分
- 注解事务 --> 解析部分
UML——关系
UML中的4种关系:
- 依赖
- 关联
- 泛化
- 实现
①依赖关系 (语义关系)
描述的是事务之间的关系
②关联关系 (结构关系)
关联关系:包含了聚合、组合
描述的是对象之间的关系
(1)关联
意思:
交叉念:
一个雇主对于0个或多个员工
一个员工对于0个或1个雇主
(2)聚合关系
整体消失了,部分仍然存在
举例:
(3)组合关系
整体消失,部分也随之消失
举例:
③泛化关系
是类和类之间的关系
泛化:是父类泛化子类
继承:是子类继承父类
举例:
④实现关系
是类和接口之间的关系
实现接口
关联多重度
关联的多重度是指:一个类的实例能够与另外一个类的多少个实例相关联
UML——图
最主要考用例图和类图
⒈UML–类图 (静态)
类图给出系统的静态设计视图
类图的特点:
例子:
类图和对象图的区别
UML类图概念
类图是对系统静态建模
使用类图的情况
- 对系统的词汇建模
- 对简单的协作建模
- 对逻辑数据库模式建模
⒉UML–对象图 (静态)
类图和对象图都是静态的
例子:
⒊UML–用例图 (静态)
用例图里面的四种关系 (背)
- 包含关系:用例 与 用例 之间的关系
- 扩展关系:用例 与 用例 之间的关系
- 关联关系:参与者 与 用例 之间的关系
- 泛化关系:参与者 与 参与者 之间的关系 或 用例 与 用例 之间的关系
注:用例可以理解为是一种功能
(1)包含关系:include
包含关系:用例 与 用例 之间的关系
即执行A必须执行B
(2)扩展关系:extend
扩展关系:用例 与 用例 之间的关系
包含关系 与 扩展关系的区别
包含关系是:必须发生的
扩展关系是:可以选择性的发生
(3)泛化关系
泛化关系:参与者 与 参与者 之间的关系 或 用例 与 用例 之间的关系
例子:
用例图概念
用例图的作用
- 对系统的语境建模
- 对系统的需求建模
⒋UML–序列图(顺序图)(动态)
交互图
交互图表现为序列图、通信图、交互概览图和计时图
- 序列图:是强调消息时间顺序的交互图
- 通信图:是强调接收和发送消息的对象结构组织的交互图
- 交互概览图:是强调控制流的交互图 (了解即可)
交互图用于对一个系统的动态方面建模。
交互图一般包含
- 对象
- 链
- 消息
序列图的别名:(顺序图)
序列图有两个不同于通信图的特征
- 序列图有对象生命线。对象生命线是一条垂直的虚线,表示一个对象在一段时间内存在
- 序列图有控制焦点。 (生命线上的长方形)
⒌UML–通信图(协作图)(动态)
通信图的别名(协作图)
通信图展示了对象之间的消息流及其顺序
通信图的特点:消息上有编号,消息按顺序号执行
通信图有两个不同于序列图的特性↓
- 通信图有路径
- 通信图有顺序号
注意:序列图和通信图是同构的,它们之间可以相互转换
⒍UML–状态图 (动态)
对系统、类或用例的动态方面建模时,通常是对反应型对象建模
状态和活动
一张状态图中:初态只能有一个,而终态可以有0到多个
状态为圆角矩形:
活动表中有很多的动作(活动是很多个动作堆加在一起组成的)
例子:
转换和事件
事件就是引起系统做动作或(和)转换状态的控制信息。
记住:动作(活动)可以在状态内部执行,也可以在状态转换(迁移)的时候执行,(说白了就是动作可也写在圆角矩形内部,也可以写在箭头上)
转换一定要有两个状态(源状态 和 目标状态)
- 转换(迁移)由事件触发
- 状态不是由事件触发
⒎UML–活动图 (动态)
活动图:对系统的功能建模特别重要,并且强调对象间的控制流程
状态图:一个状态到另外一个状态
活动图:一个活动到另外一个活动
活动图的作用
- 对工作流建模
- 对操作建模
如何区分状态图和活动图:
状态图的箭头上面是有事件的名称的,而活动图是没有的
分岔和汇合
⒏UML–构建图(组件图)(静态)
需接口对应的构件去实现供接口的请求
构件图会有此图案
⒐UML–部署图 (静态)
部署图 与 构建图 相关