# UML九图速查手册 > **用途**:考前快速回顾9种UML图的核心特征 --- ## 📊 九种UML图一句话定位 | 想表达什么? | 用什么图? | |--------------|-----------| | 系统能干什么? | **用例图** | | 系统里有哪些类?它们什么关系? | **类图** | | 某一刻对象的具体情况? | **对象图** | | 对象之间怎么按时间顺序交互? | **顺序图** | | 对象之间怎么在空间上协作? | **协作图** | | 一个对象的状态怎么变化? | **状态图** | | 一个业务流程步骤怎么走? | **活动图** | | 代码文件之间怎么依赖? | **组件图** | | 软件部署在哪些硬件上? | **部署图** | --- ## 🔗 九图分类 ``` UML图 ├── 功能模型:用例图 ├── 静态模型(结构):类图、对象图、包图 ├── 动态模型(行为):顺序图、协作图、状态图、活动图 └── 物理模型(实现):组件图、部署图 ``` --- ## 📋 九图完整对比表 | 图类型 | 分类 | 描述几个对象? | 强调 | 核心元素 | |--------|------|:---:|------|----------| | **用例图** | 功能 | 多 | 系统功能全景 | 参与者、用例、系统边界 | | **类图** | 静态结构 | 多 | 类的定义和关系 | 类、属性、操作、关系 | | **对象图** | 静态结构 | 多 | 某一时刻的快照 | 对象、属性值、链 | | **包图** | 静态结构 | 多 | 类的分组组织 | 包、依赖、泛化 | | **顺序图** | 动态交互 | 多 | 消息的时间顺序 | 对象、生命线、控制焦点、消息 | | **协作图** | 动态交互 | 多 | 对象的空间位置 | 对象、链、消息(带序号) | | **状态图** | 动态行为 | **1个** | 状态如何变迁 | 状态、转移、事件 | | **活动图** | 动态行为 | 多 | 流程步骤 | 活动、分支、泳道、分叉 | | **组件图** | 物理实现 | 多 | 代码文件组织 | 组件、接口、依赖 | | **部署图** | 物理实现 | 多 | 硬件拓扑 | 结点、组件、连接 | --- ## 🎨 各图关键语法速查 ### 用例图 - 参与者 = 火柴人 🧑 - 用例 = 椭圆 ○ - 系统边界 = 方框 □ - 关系:包含 `<>` (必然)、扩展 `<>` (条件) ### 类图 - 类 = 三格矩形(类名|属性|操作) - 可见性:`+`公有 `-`私有 `#`受保护 - 六大关系:关联(实线)、聚合(空心菱形)、组合(实心菱形)、依赖(虚线)、泛化(空心三角)、实现(虚线空心三角) ### 顺序图 - 对象 + 生命线(虚线) + 控制焦点(矩形条) + 消息(箭头) - 调用消息 = 实心箭头,异步消息 = 开放箭头 - 嵌套:1 → 1.1 → 1.1.1 ### 协作图 - 对象 + 链(实线) + 消息(带序号) - 必须标注消息序号!没有时间轴 ### 状态图 - 状态 = 圆角矩形,转移 = 箭头 - 事件/ [条件] / 动作 - 初始状态 ● → 终态 ⊙ ### 活动图 - 活动 = 圆角矩形 - 分支 = 菱形 ◇ - 分叉/汇合 = 粗横线 - 泳道 = 纵向分区 ### 组件图 - 组件 = 带<>的矩形 - 关系主要是依赖(虚线箭头) ### 部署图 - 结点 = 3D立方体 - 通信路径 = 实线 --- ## 📐 MVC版型速查 | 版型 | 图标 | 职责 | 例子 | |------|------|------|------| | <> 边界类 | 带竖线的圆 | 与外界交互 | 登录页面、购物车页面 | | <> 控制类 | 带箭头的圆 | 协调逻辑 | 订单处理、支付验证 | | <> 实体类 | 带横线的圆 | 持久化数据 | 用户、订单、商品 |