什么是UML?
UML(Unified Modeling Language,统一建模语言)是一种标准化的建模语言,用于软件系统的:
- 可视化
- 说明
- 构建
- 文档化
UML的特点
| 特点 | 描述 |
|---|---|
| 可视化 | 提供标准的图形化表示方法 |
| 标准化 | 业界通用的建模标准 |
| 文档化 | 完整的系统设计文档 |
UML发展历史
| 时间 | 事件描述 |
|---|---|
| 1994--1996 | Grady Booch、James Rumbaugh 和 Ivar Jacobson 开发 |
| 1997 | 被 OMG(对象管理组织)采纳为标准 |
| 2005 | ISO/IEC 19501 国际标准发布 |
| 2017 | UML 2.5.1 版本发布 |
UML图分类结构
UML图分为两大类:结构图 和 行为图
结构图(Structure Diagrams)
- 类图(Class Diagram)
- 轮廓图(Outline Diagram)
- 组合结构图(Composite Structure Diagram)
- 组件图(Component Diagram)
- 对象图(Object Diagram)
- 部署图(Deployment Diagram)
- 包图(Package Diagram)
行为图(Behavior Diagrams)
- 活动图(Activity Diagram)
- 用例图(Use Case Diagram)
- 状态机图(State Machine Diagram)
- 交互图(Interaction Diagram)
- 序列图(Sequence Diagram)
- 通讯图(Communication Diagram)
- 交互概览图(Interaction Overview Diagram)
- 时序图(Timing Diagram)
UML图类型区别与用途总结
结构图(Structure Diagrams)
| 图类型 | 主要用途与特点 |
|---|---|
| 类图 | 描述类、属性、方法及类之间的关系,是面向对象设计的核心图。用于静态结构建模。 |
| 对象图 | 展示某一时刻类的实例及其关系,强调对象状态快照,常用于调试或示例说明。 |
| 组件图 | 展示系统的模块组成及依赖关系,适用于软件架构设计,强调模块间接口。 |
| 部署图 | 描述系统在硬件环境中的部署结构,展示节点、设备及其连接关系。 |
| 包图 | 用于组织模型元素,展示包之间的依赖关系,适合大型系统的模块化管理。 |
| 复合结构图 | 展示类的内部结构及其协作关系,适合复杂组件或嵌套结构的建模。 |
行为图(Behavior Diagrams)
| 图类型 | 主要用途与特点 |
|---|---|
| 用例图 | 展示系统功能与用户(参与者)之间的交互,常用于需求分析阶段。 |
| 活动图 | 表示流程或操作的步骤序列,适合建模业务流程、算法逻辑或工作流。 |
| 状态图 | 描述对象生命周期中的状态变化,适合状态驱动型系统,如嵌入式或控制系统。 |
| 序列图 | 展示对象之间按时间顺序的消息交互,强调时间线与调用顺序,适合分析交互过程。 |
| 通讯图 | 展示对象之间的协作关系和消息流,强调结构而非时间顺序,适合补充序列图。 |
| 交互概览图 | 综合多个交互图,展示复杂交互流程的整体结构,适合高层次交互建模。 |
| 时序图 | 展示对象状态随时间变化的图示,强调时间约束与同步,适合实时系统建模。 |
分类对比简析
- 结构图:关注系统的静态结构,如类、组件、部署等,适合架构设计与模块划分。
- 行为图:关注系统的动态行为,如流程、交互、状态变化,适合需求分析与行为建模。