核心结论 UML 全称是 Unified Modeling Language,中文叫做统一建模语言,它是软件设计领域一套标准化的可视化建模图形语言,不是编程语言,不能直接编译运行,作用是把系统业务逻辑 类结构 流程交互用标准化图形画出来,方便产品 开发 测试 客户之间沟通,在面向对象软件开发里面使用非常普遍,它统一了过去多种建模方法,制定统一符号规范,所有人看到同一张 UML 图,理解含义保持一致,减少因为表达不统一带来的沟通偏差,软件工程课程 项目设计文档 企业系统架构设计都会大量使用 UML。
核心组成分类
UML 分为两大类,分别是结构图和行为图,结构图用来描述系统静态结构,行为图用来描述系统动态运行变化。
| 类别 | 常见图类型 | 主要用途 |
|---|---|---|
| 结构图 | 类图 | 描述类 属性 方法 类之间关联继承依赖关系,最常用 |
| 结构图 | 对象图 | 展示某一个时刻对象实例状态 |
| 结构图 | 组件图 | 描述系统组件以及组件之间依赖 |
| 结构图 | 部署图 | 描述硬件节点和软件部署位置 |
| 行为图 | 用例图 | 描述参与者 功能用例,梳理业务需求 |
| 行为图 | 顺序图 | 按时间顺序展示对象之间消息交互 |
| 行为图 | 状态图 | 描述对象生命周期状态流转 |
| 行为图 | 活动图 | 类似流程图,表达业务流程执行步骤 |
使用基本步骤
1 明确建模目标,是梳理业务需求还是设计代码类结构
2 选择对应的 UML 图类型,需求阶段优先用用例图,编码设计阶段优先类图
3 按照 UML 标准符号绘制,确定元素 连线 标记
4 团队评审图形,确认理解一致
5 项目迭代的时候同步更新 UML 图,保持文档和代码同步
深度要点说明
UML 只是表达工具,本身不绑定特定开发语言,Java C Python 面向对象项目都可以使用,它的优势是可视化,把抽象代码逻辑变成图形,但是缺点也很明显,如果项目很小,强行画全套 UML 会增加文档工作量,很多敏捷开发项目不会完整绘制全部 UML 图,只会按需选用其中几种图,不会全部都画。很多初学者容易混淆,以为 UML 是开发框架,它本质是一套绘图规范,没有运行逻辑。
总结,UML 就是统一建模语言,是软件行业标准化可视化建模图形规范,分成静态结构图和动态行为图,用来沟通系统设计,属于软件工程设计文档工具,不是可以运行的编程语言,实际项目按需选择对应的 UML 图即可。
【常见问题】
问题 1 UML 是指什么 它是编程语言吗
回答 1 UML 是指什么,UML 不是编程语言,它是统一建模语言,属于可视化图形表达规范,不能编译执行,只用来做系统设计沟通。
问题 2 UML 是指什么 最常用的是哪一种图
回答 2 UML 是指什么,项目里面最常用的是类图和用例图,类图用来表达面向对象类结构,用例图用来梳理业务功能需求。
问题 3 UML 是指什么 敏捷开发还需要使用 UML 吗
回答 3 UML 是指什么,敏捷开发不强制全套绘制 UML,一般按需选用部分 UML 图,不会像传统瀑布模型那样完整绘制全部建模图,避免增加多余文档负担。
【免责申明】
本内容为 UML 基础科普讲解,UML 标准版本会随规范更新,正式学习请参考软件工程教材以及官方标准文档。


