8.1 事物
结构事物:静态部分,描述概念或物理元素;
行为事物:动态部分,描述了跨越时间和空间的行为;
分组事物:组织部分,最主要的分组事物是包;
注释事物:解释部分,用来描述、说明和标注模型的任何元素。
8.2 关系
- 依赖:依赖是两个事物之间的语义关系,其中一个事物(独立事物)发生变化会影响另一个事物(依赖事物)的语义;图形化为一个有方向的虚线;
- 关联:关联是一种结构关系,它描述了一组链,链是对象之间的连接;聚集是一种特殊的关联,他描述了整体和部分间的结构关系;在关联上可以标注重复度和角色;
PS:组合和聚合
聚合:部分和整体的生命周期不一致,整体消失了,部分仍然存在,部分可以脱离整体存在;图形化为横线+空心菱形;
组合:部分和整体的生命周期一致,整体消失了,部分也消失了,部分不可以脱离整体存在;图形化为横线+实心菱形;
- 泛化:特殊元素(子元素)的对象可替代一般元素(父元素)的对象;子元素共享了父元素的结构和行为;
- 实现:实现是类元之间的语义关系,其中一个类元指定了另一个类元保证执行的契约;一般是在接口和实现它们的类或构件之间;
关联补充:
- 单向关联:例如:人 > 氧气
- 关联名:例如:人 借阅 > 图书
- 关联类:例如:
8.3 UML图
8.3.1 类图
类图展示了一组对象、接口、协作和他们之间的关系;类图包括类、接口、写作、依赖泛化和关联关系;
- public -private #protected ~包的
属性:类型 方法:返回类型
概念:类图用于对系统的静态设计视图建模;
- 对系统的词汇建模;
- 对简单的协作建模;
- 对逻辑数据库模式建模;
8.3.2 对象图
对象图展现了某一时刻一组对象以及他们之间的关系,描述了在类图中所建立的事物的实例的静态快照;
对象名:类名
对象图用于对系统的静态设计视图建模;
8.3.3 用例图
用例图展现了一组用例、参与者以及他们之间的关系;
参与者:参与者是与系统交互的外部实体,可能是使用者,也可能是与系统交互的外部系统、基础设备等;
用例:用例是从用户角度描述系统的行为,它将一个系统的一个功能描述成一系列的事件,这些事件最终对操作者产生有价值的结果;用例是一个类,代表一类功能而不是某功能的一具体实例;
- 扩展关系:用例和用例之间的联系;一个用例执行的时候,可能会发生一些特殊的情况或可选的情况;
<>
扩展用例 --------------------------> 基本用例
- 包含关系:用例和用例之间的联系;一个用例包含另一个用例;
<>
基本用例 --------------------------> 被包含用例
- 泛化关系:参与者与参与者,用例与用例之间的关系;
子类 --------------------------▷ 父类
概念:
- 关联关系是参与者和用例之间的关系;
- 包含是用例和用例之间的关系;
- 扩展是用例和用例之间的关系;
- 泛化既是用例和用例之间的关系,也是参与者和参与者之间的关系;
- 用例图用于对系统的静态用例视图进行建模;
- 当使用静态用例视图建模时,可以使用:(1)对系统的语境建模;(2)对系统的需求建模;
8.3.4 序列图(顺序图)
序列图是场景的图像化表示,描述了以事件顺序组织的对象之间的交互活动;
8.3.4 通讯图(协作图)
通讯图强调收发消息的对象的结构组织;通讯图展现了对象之间的消息及其顺序;
特性:
- 通讯图有路径;
- 通讯图有顺序号;表示一个消息的时间顺序;
序列图和通讯图是同构的,它们之间可以互相转换;
8.3.5 状态图
状态图展现了一个状态机,它由状态,转换,事件和活动组成;状态图关注系统的动态视图;
8.3.5.1 状态和活动
在状态中主要有:初态(初始状态)、终态(最终状态)、中间状态;
活动表的语法格式:事件名(参数表) / 动作表达式
三种标准事件:entry,exit,do
- entry:入口动作,进入状态,立即执行;
- exit:出口动作,退出状态,立即执行;
- do:内部活动,占有限时间,并且可以中断的工作;
8.3.5.2 转换和事件
事件触发转换(迁移);
转换(迁移)包括事件触发器、监护条件、两个状态(源和目标);
活动(动作)可以在状态内执行,也可以在状态转换(迁移)时执行;
事件表的语法格式:事件说明[守卫(监护)条件] / 动作表达式
8.3.5.3 概念
- 嵌套在另外一个状态中的状态称为子状态,含有子状态的状态称为组合状态(超状态);
- 可以使用状态图对系统的动态方面建模,这些动态方面可以包括出现在关系体系结构的任何视图中的任何一种对象的按事件排序的行为;
- 当对系统、类或用例的动态方面建模时,通常是对反应型对象建模。
8.3.6 活动图
展示了一个活动到另一个活动的流程;
当对一个系统的动态方面建模时,通常有两种活动图的方式:
- 对工作流建模;
- 对操作建模;
8.3.7 构件图(组件图)
通常把构件图映射为一个或多个类、接口或协做;
供接口依赖于需接口;
8.3.8 部署图
展现了运行时处理节点以及其中构件(制品)的配置;
部署图展现了系统的软件和硬件之间的关系在实施阶段使用;
8.3.9 其他
- 在结构化分析方法中,数据流图用于功能建模,E-R图用于数据建模,状态转换图用于行为建模。
- 用例视图:显示外部参与者观察到的系统功能;逻辑视图:从系统的静态结构和动态行为角度显示系统内部如何实现系统的功能;实现视图:显示的是源代码以及实际执行代码的组织结构。