UML

本文最后更新于 2025年8月29日 上午

什么是UML?

UML(Unified Modeling Language,统一建模语言)是一种标准化的、可视化的建模语言,用于对软件系统进行说明、构造、可视化和文档化。

UML特性

统一

UML由国际对象管理组织(OMG)制定和维护,是全球软件行业公认的标准。一种统一的表达方法,让(产品经理、架构师、开发者、测试人员)能方便地交流。

建模

UML是一种通用的可视化建模语言,它有标准的图形符号和文字来对系统进行建模用于对软件进行描述、可视化处理、构造和建立软件系统制品的文档。

语言

UML是一种语言,它有自己的标准表示规则,又不像编程语言,例如:Java、C#,而是一种分析设计语言。UML专注于建模,不依赖于任何特定的编程语言。

为什么要使用UML?

在没有可视化模型的情况下:

  • 沟通成本高:仅靠口头或文字描述复杂系统,容易产生误解。
  • 设计缺陷发现晚:代码写完后才发现结构性问题,修改成本巨大。
  • 文档缺失或过时:软件完成后缺乏有效文档,后期维护和新人上手极其困难。

UML通过提供一套标准的图形符号,让所有相关人员(产品经理、架构师、开发者、测试人员)都能在同一张“地图” 上讨论同一个系统,确保大家对系统的理解是一致的,从而极大地提高软件开发的效率和质量。

UML主要图表类型

结构图(静态图)- 描述系统的静态结构

这类图描述系统中有哪些元素,以及它们之间的静态关系,不涉及随时间变化的行为。

类图(Class Diagram)

最常用、最核心的图

描述系统内的类、类的属性、方法以及类与类之间的关系(如关联、继承、依赖等)。它是面向对象分析和设计的核心。

  • 好比建筑的结构图,标明了有哪些房间、房间里的设施以及房间之间的连接关系。

对象图(Object Diagram)

类图的一个实例,展示在某一时刻系统内对象的具体状态和关系。

  • 好比一栋楼在某个特定时刻的住户快照。

组件图(Component Diagram)

描述系统的物理组件(如库、文件、可执行程序)及其之间的依赖关系。用于规划和构建系统。

  • 好比汽车的零部件图,显示了发动机、变速箱、车轮等组件如何装配。

部署图(Deployment Diagram)

描述软件组件如何部署到硬件节点(如服务器、计算机)上,以及节点之间的连接。

  • 好比部署蓝图,标明了哪台服务器运行哪个软件,服务器之间如何联网。

复合结构图(Composite Structure Diagram)

展示类或组件的内部结构。

包图(Package Diagram)

用于对模型元素进行分组,管理大型系统的复杂度,类似于文件系统中的文件夹。

行为图(动态图)- 描述系统的动态行为

这类图描述系统中元素如何协作和互动,以及随时间变化的行为。

用例图(Use Case Diagram)

从用户视角描述系统功能。展示系统外的参与者(Actor)与系统提供的用例(Use Case)之间的关系。常用于需求分析阶段。

  • 好比系统的功能菜单,描述了用户能用它来做什么。

活动图(Activity Diagram)

描述业务或操作的工作流程,类似于流程图,展示了活动的顺序流和并行流。

  • 好比公司的业务流程手册,一步步说明了请假、报销等流程如何推进。

状态机图(State Machine Diagram)

描述一个对象在其生命周期内所经历的状态序列,以及如何响应各种事件从而发生状态变迁。

  • 好比描述一个“订单”对象的状态:从“已下单”到“已付款”再到“已发货”、“已完成”。

顺序图(Sequence Diagram)

最常用的交互图。强调消息的时间顺序,展示对象之间如何在一段时间内进行交互。

  • 好比一场对话的记录,清楚地显示了谁在什么时候对谁说了什么。

通信图(Communication Diagram)

强调对象之间的组织结构及其之间的链接上的消息流,是顺序图的另一种表现形式。

时序图(Timing Diagram)

一种特殊的交互图,专注于状态变化的具体时间约束。

交互概览图(Interaction Overview Diagram)

活动图和顺序图的混合体,用于概述交互流程。


UML
http://example.com/2025/08/25/设计模式/UML/
作者
Charles
发布于
2025年8月25日
许可协议