3、图
- 是一组元素的图形表示
- 类图、用例图、对象图都是对系统的静态方面进行建模
- 序列图和通信图、状态图是对系统的动态方面进行建模
类图
- 展现了一组对象、接口、协作和它们之间的关系。是建模中最常见的图
- 对系统静态设计视图建模,支持系统的功能需求
- 对系统的词汇、简单的协作、逻辑数据库模式建模
- 通常包括:类、接口(少)、协作(少)、依赖泛化和关联关系
- 抽象类不能直接实例化
属性和方法前面会有修饰符 - +:public
- -:private
- #:projected
- ~:package

对象图
- 展现了某一时刻一组对象以及它们之间的关系
- 描述了类图中所建立的事物的实例
- 包括对象和链
- 矩形框中格式是对象名:类名

用例图
- 展现了一组用例(椭圆)、参与者(小人标志)以及它们之间的关系
- 用于对系统的静态用例视图(系统的语境、系统的需求)进行建模
- 包括用例、参与者、用例之间的扩展关系(
<<extend>>)和包含关系(<<include>>);参与者和用例之间的关联关系(直线连接);用例与用例以及参与者与参与者之间的泛化关系(继承的反关系,空心三角指向父类)

包含关系
- 是用例和用例之间的关系
- 一个用例包含另一个用例
- 执行用例一定会执行被包含用例
- 是一个虚线箭头,上面写一个关键字
<<include>> - 箭头右边的是被包含用例,左边是基本用例
扩展关系
- 是用例和用例之间的关系
- 一个用例执行的时候,可能会发生一些特殊的情况或可选的情况,这种情况就是扩展用例(比如借书,超过还书期限就要罚款,罚款就是扩展用例)
- 是一个虚线箭头,上面写一个关键字
<<extend>> - 箭头右边的是被基本用例,左边是拓展用例
泛化关系
- 一般元素和特殊元素之间的关系,是参与者与参与者之间的关系;是用例与用例之间的关系
- 是一个实线带一个空心的三角
- 箭头右边是父类
概念
- 关联是参与者和用例之间的关系
- 包含
- 拓展都是用例和用例之间的关系
- 泛化是参与者与参与者、用例与用例之间的关系
交互图
- 对系统的动态部分进行建模
- 一张交互图表现的是一个交互,由一组对象和它们之间的关系组成个,包含它们之间可能传递的消息
- 交互图一般包含对象、链和消息
序列图(顺序图)
- 是场景的图形化表示
- 描述了以时间顺序组织的对象之间的交互活动,展示一个用例和多个对象的行为
- 把参加交互的对象放在图的上方(对象名:类名)
- 对象可以在交互中创建
- 把发起交互的对象放在左边,下级对象放在右边,把这些对象发送和接受的消息沿垂直方向按时间顺序从上到下放置
- 差表示对象销毁
- 序列图有生命线(一个对象一条生命线,是一条垂直的虚线),表示一个对象在一段时间内存在
- 序列图有控制焦点(一个瘦高的矩形),表示一个对象执行一个动作所经历的时间段
- 序列图有四类消息
- 同步消息:发送以后需要等待消息返回
- 异步消息:发送以后不需要等待消息返回
- 调用消息(实线箭头):A 对象向 B 对象发送消息,指向谁谁需要实现特定方法
- 返回消息(反方向虚线箭头):从右往左的消息

通信图(协作图)
- 强调收发消息对象的结构组织
- 将参与交互的对象作为图的顶点,把连接对象的链表示为图的弧,最后用对象发送和接受的消息来修饰这些链
- 通信图有路径(在链的末端加上路径构造型):local(局部)、parameter(参数)、global(全局)、self(自身)
- 通信图有顺序号(会给消息前面加数字前缀,为了显示嵌套可以使用带小数点的号码(1 表示第一个消息,1.1 表示嵌套在消息 1 中的第一个消息))
- 和顺序图可以相互转换

状态图
- 展现了一个状态机
- 由状态、转换、事件和活动组成
- 是一个动态图,一种对象的行为进行建模

状态和活动
- 状态是任何可以被观察到的系统行为模式,分为简单状态和组合状态
- 一个状态代表系统的一种行为模式
- 有初态(黑实心圆)、终态(黑圆点加一个圆)和中间状态(圆角四边形,可以用两条水平线分成上中下 3 个部分,上面是状态的名称,下面是活动表)
- 活动表有若干动作组成,格式如下:事件名 / 动作表达式,常用的是 entry(进入该状态的动作,立即执行)、do(指定在该状态下的动作,占有有限事件,并可以中断的工作)、exit(指定退出该状态的动作,立即执行)
- 状态之间为状态转换(箭头线表示),箭头上的事件发生时,状态转换开始
- 初态只能有一个,终态可以是 0 或多个
转换和事件
- 事件是在某个特定时刻发生的事情
- 引起系统作动作或从一个状态转换到另一个状态的外界事件的抽象
- 状态的变迁是事件触发的,事件要包括两个状态
- 如果箭头上没有标明事件,就说明在源状态的内部活动执行完之后自动触发转换
- 活动(动作)可以在状态内执行,也可以在状态转换(迁移)时执行
- 转换的格式为:触发事件【监护条件(是一个布尔表达式)】 / 动作 监护条件决定状态转换
活动图
- 一种特殊的状态图
- 展现了从一个活动到另一个活动
- 专注于系统的动态视图
- 对复杂用例中的业务处理流程进行建模
- 并发分岔后可以同时执行

构件图(组件图)
- 展现了一组构件之间的组织和依赖
- 专注于系统静态展现视图
- 与类图相关,把构件映射为一个或多个类、接口、协作
构件会有一个标记,类似一个大矩形和两个小矩形
- 供接口:依赖于需接口
- 需接口

部署图
- 面向对象系统的物理方面的建模方法
- 展现了运行时处理结点以及其中构件的配置
- 展现了软件和硬件之间的关系,在实施阶段使用

总结
静态建模:类图、对象图、用例图
动态建模:序列图(顺序图、时序图)、通信图、状态图、活动图
物理建模:构件图、部署图
交互图:序列图、通信图
