文章目录
- 前言
- 一、结构图(静态建模)
-
- [1.类图(Class Diagram)](#1.类图(Class Diagram))
- [2.对象图(Object Diagram)](#2.对象图(Object Diagram))
- [3.组件图(Component Diagram)](#3.组件图(Component Diagram))
- [4.部署图(Deployment Diagram)](#4.部署图(Deployment Diagram))
- [5.复合结构图(Composite Structure Diagram)](#5.复合结构图(Composite Structure Diagram))
- [6.包图(Package Diagram)](#6.包图(Package Diagram))
- [7.配置文件图(Profile Diagram)](#7.配置文件图(Profile Diagram))
- 二、行为图(动态建模)
-
- [8.用例图(Use Case Diagram)](#8.用例图(Use Case Diagram))
- [9.活动图(Activity Diagram)](#9.活动图(Activity Diagram))
- [10.状态机图(State Machine Diagram)](#10.状态机图(State Machine Diagram))
- [11.时序图(Sequence Diagram)](#11.时序图(Sequence Diagram))
- [12.通信图(Communication Diagram)](#12.通信图(Communication Diagram))
- [13.交互概览图(Interaction Overview Diagram)](#13.交互概览图(Interaction Overview Diagram))
- [14.时序图(Timing Diagram)](#14.时序图(Timing Diagram))
- 总结
前言
UML(统一建模语言)总共包含 14 种图,主要分为两大类:
- 结构图(Structural Diagrams) - 用于描述系统的静态结构
- 行为图(Behavioral Diagrams) - 用于描述系统的动态行为
一、结构图(静态建模)
结构图用于描述系统中对象、类、组件以及它们之间的关系,常见于架构设计和数据库建模。
1.类图(Class Diagram)
作用: 描述系统中的类、接口及其属性、方法,以及类之间的关系(继承、实现、关联、聚合、组合、依赖等)。
场景:
- 详细设计系统的类结构
- 展示面向对象设计的关键概念
- 数据库设计的概念模型
2.对象图(Object Diagram)
作用: 是类图的实例化,显示特定时刻的对象及其关系。
场景:
- 展示运行时对象的状态
- 进行调试或设计时的快照分析
3.组件图(Component Diagram)
作用: 描述系统的物理组件及其依赖关系,通常用于展示模块化设计。
场景:
- 软件架构设计
- 展示系统中的不同模块及其接口
4.部署图(Deployment Diagram)
作用: 展示系统的物理部署结构,描述硬件节点及其软件组件的分布情况。
场景:
- 展示系统的硬件架构
- 设计分布式系统的部署方式
5.复合结构图(Composite Structure Diagram)
作用: 描述一个类的内部结构,显示其组成部分及交互方式。
场景:
- 详细设计复杂类的内部结构
- 表现系统内部的协作关系
6.包图(Package Diagram)
作用: 用于组织 UML 模型中的元素,展示包与包之间的依赖关系。
场景:
- 组织大型系统的不同模块
- 展示类之间的逻辑分组
7.配置文件图(Profile Diagram)
作用: 用于扩展 UML 语言,以支持特定的领域建模。
场景:
- 定义 UML 的自定义扩展
- 适用于特定行业(如嵌入式系统)
二、行为图(动态建模)
行为图用于描述系统的动态行为,如流程、交互、状态变化等。
8.用例图(Use Case Diagram)
作用: 描述系统的功能需求,展示参与者(Actor)和用例(Use Case)之间的交互关系。
场景:
- 需求分析阶段,收集用户需求
- 展示系统功能的外部视角
9.活动图(Activity Diagram)
作用: 描述业务流程或操作流程,类似于流程图。
场景:
- 展示业务流程或工作流
- 详细描述系统内部的处理逻辑
10.状态机图(State Machine Diagram)
作用: 描述对象的状态变化及状态之间的转换条件。
场景:
- 设计状态驱动的系统,如协议处理、游戏逻辑
- 复杂对象的生命周期管理
11.时序图(Sequence Diagram)
作用: 描述对象之间的交互过程,关注消息的时间顺序。
场景:
- 设计系统中对象的交互流程
- 分析系统调用链
12.通信图(Communication Diagram)
作用: 与时序图类似,但更关注对象之间的静态关系,而非时间顺序。
场景:
- 设计对象的交互结构
- 分析系统组件之间的通信关系
13.交互概览图(Interaction Overview Diagram)
作用: 结合活动图和时序图,用于描述复杂的交互流程。
场景:
- 展示复杂交互的整体流程
- 适用于业务流程建模
14.时序图(Timing Diagram)
作用: 关注对象或组件的时间变化,通常用于实时系统建模。
场景:
- 设计嵌入式系统或硬件系统
- 分析时间敏感的交互
总结
类型 | UML 图 | 作用 | 使用场景 |
---|---|---|---|
结构图 | 类图 | 描述类及其关系 | 系统设计、数据库设计 |
对象图 | 类图的实例化 | 运行时快照、调试 | |
组件图 | 模块化设计 | 软件架构、模块依赖 | |
部署图 | 物理部署 | 分布式系统部署 | |
复合结构图 | 类的内部结构 | 复杂类的细节设计 | |
包图 | 组织 UML 模型 | 大型系统的模块化 | |
配置文件图 | UML 扩展 | 行业定制化建模 | |
行为图 | 用例图 | 功能需求 | 需求分析 |
活动图 | 业务流程 | 业务建模 | |
状态机图 | 状态变化 | 状态驱动系统 | |
时序图 | 对象交互(时间) | 系统调用分析 | |
通信图 | 对象交互(结构) | 组件通信 | |
交互概览图 | 复杂交互流程 | 业务流程分析 | |
时序图 | 时间变化 | 实时系统、嵌入式 |