统一建模语言(UML)完全指南

Unified Modeling Language (UML logo)

UML简介

统一建模语言(UML)是一种用于指定、可视化、构建和记录软件系统构件的标准语言。由对象管理组(OMG)创建,UML 1.0规范草案于1997年1月首次提交给OMG。

UML可以被描述为一种通用的可视化建模语言旨在:

  • 可视化软件系统

  • 指定系统需求和架构

  • 构建系统蓝图

  • 记录系统构件

重要提示:尽管UML通常用于建模软件系统,但其应用并不局限于这一范围。它也用于建模非软件系统,例如制造单元中的流程、业务工作流和组织结构。

UML不是一种编程语言,但可以使用工具通过UML图生成各种语言的代码。

UML的关键特性

  • UML是一种通用的建模语言。它最初旨在捕捉复杂软件和非软件系统的运行行为,如今已成为OMG标准。

  • UML提供了元素和组件,以支持复杂系统的需求。UML遵循面向对象的概念和方法论,因此通常使用这种图形化语言来建模面向对象的系统。

  • UML图从设计、实现、部署等不同视角绘制。从根本上说,UML可以被定义为一种建模语言,用于捕捉系统的架构、行为和结构方面的各个方面。

  • 对象是这个面向对象世界的关键。面向对象分析与设计的基本要求是高效地识别对象。之后,将职责分配给对象。一旦完成这项任务,设计便基于分析结果进行。

  • UML在面向对象分析与设计中起着重要作用;UML图用于建模设计,使UML成为现代软件工程中不可或缺的工具。


UML的目的

“一图胜千言”——这在讨论UML时完全适用。

面向对象的概念在UML出现之前就已提出。当时,尚无标准的方法论来组织和整合面向对象的开发。UML的出现正是为了填补这一空白。

UML开发的主要目标

  • 定义一种通用的建模语言所有建模者都可以使用,且易于理解与使用。

  • 专为开发者设计,但也对业务用户、普通大众以及任何对系统感兴趣的人开放对业务用户、普通大众以及任何对系统感兴趣的人开放。

    • 该系统可以是软件系统,也可以是非软件系统。

    • 必须明确的是UML不是一种开发方法——相反,它伴随开发过程,以促成成功系统的实现。

结论:UML的目标可以定义为一种简单的建模机制,用于在当今复杂的环境中对所有可能的实际系统进行建模。


使用UML建模架构视图:4+1视图

不同的用户与任何现实世界系统进行交互——开发者、测试人员、业务人员、分析师等。在设计系统之前,架构需从不同视角出发进行构建。最重要的是,从不同观察者的视角来可视化系统。我们理解得越深入,系统设计得就越出色。

这一组视图被称为软件架构的4+1视图。UML在定义系统不同视角方面发挥着重要作用。

Modeling structure views using UML

五种架构视图

视图 描述 是否必需?
用例视图(中心) 描述系统的功能、外部接口及其主要用户。包含用例模型。 ✅ 是
逻辑视图 描述系统在实现单元层面的结构。元素包括包、类和接口。展示依赖关系、接口实现以及部分与整体的关系。 ✅ 是
实现视图 描述开发工件在文件系统中的组织方式。元素包括文件和目录(配置项)。包含开发和部署工件。 可选
进程视图 描述运行时系统作为具有运行时行为和交互的元素的结构。包括进程、线程、EJB、servlet、DLL、数据存储和连接器。适用于性能和可靠性分析。 可选
部署视图 描述系统如何映射到硬件基础设施。 可选

附加视图

  • 数据视图:逻辑视图的特化。如果持久化是系统的一个重要方面,且设计模型到数据模型的转换不由持久化机制自动完成,则使用此视图。


UML 2 的 14 种图表类型

图表是 UML 的核心。这些图表大致分为两个主要类别:

📐 结构图(静态)

展示系统及其各部分在不同抽象和实现层次上的静态结构。

🔄 行为图(动态)

展示系统中对象的动态行为,描述为系统随时间发生的一系列变化。

UML diagram types


🔷 结构建模图

1. 类图

类图是 最流行的 UML 图表 被面向对象社区广泛使用的图表。它们描述系统中的对象及其关系。类图包括:

  • 具有属性和操作的类

  • 类之间的关系(关联、继承、依赖)

单个类图描述系统的特定方面,而类图的集合则代表整个系统。类图表示系统的 静态视图 系统,并且是唯一能直接映射到面向对象语言的 UML 图表。

类图示例

以下类图示例表示两个类——用户和附件。一个用户可以上传多个附件,因此这两个类通过关联连接,附件端的多重性为 0..* 作为附件端的多重性。

Class diagram example


2. 对象图

对象图是类图的一个实例。基本元素与类图相似,但对象图由对象和链接组成。它捕捉了系统在某一特定时刻的实例。

关键区别:类图表示由类及其关系组成的抽象模型。对象图表示某一时刻的具体实例——系统在某一时间点的详细状态快照。

对象图示例

以下对象图示例展示了当彼得(即用户)试图上传两个附件时,User类和Attachment类的对象实例“看起来像”什么。有两个实例规范用于将要上传的两个附件对象。

Object diagram example


3. 组件图

组件图是UML图的一种特殊类型,用于描述系统的静态实现视图。它们由库、文件、文件夹、可执行文件等物理组件构成。

用途:

  • 从实现角度使用

  • 多个组件图表示整个系统

  • 正向和逆向工程方法可以从组件图生成可执行文件

组件图示例

Component diagram example


4. 部署图

部署图描述了系统的静态部署视图。它们主要由系统工程师使用。它们由以下部分组成:

  • 节点(硬件元素)

  • 节点之间的关系

  • 部署在硬件上的软件组件

一个高效的部署图是软件应用开发中不可或缺的一部分。

部署图示例

Deployment diagram


5. 包图

包图是UML结构图的一种,用于展示包及其依赖关系包之间。模型图允许展示系统的不同视图,例如,作为多层(多级)应用程序模型。

包图示例

Package diagram


6. 组合结构图

组合结构图是UML 2.0新增的几种新构件之一。它类似于类图,是一种组件图,主要用于从微观视角对系统进行建模。微观视角,展示各个组成部分,而不是整个类。

关键元素:

  • 内部部件

  • 端口,用于部件之间或与外部世界进行交互

  • 部件或端口之间的连接器

组合结构是一组在运行时协同工作以实现某种目的的相互连接的元素。每个元素在协作中都有明确的角色。

组合结构图示例

Composite structure diagram


7. 配置文件图

配置文件图使您能够创建领域和平台特定的构造型并定义它们之间的关系。您可以:

  • 通过绘制构造型形状来创建构造型

  • 用组合或泛化关系将它们关联起来

  • 定义并可视化构造型的标记值

配置文件图示例

Profile diagram


🔶 行为建模图

8. 用例图

用例模型描述了系统的功能需求,以用例的形式进行描述。它是一种模型,包含:

  • 系统预期的功能(用例)

  • 其环境(参与者)

主要优势:

  • 将系统所需的功能与系统如何满足这些需求联系起来

  • 在高层设计中使用,以捕捉系统需求

  • 表示系统功能和流程

  • 在开发周期所有阶段使用的强大规划工具

用例图示例

Use case diagram


9. 状态机图

状态机图(也称为状态图、状态转换图或状态图)由大卫·哈雷尔开发,用于建模系统的动态特性系统。

目的:

  • 建模对象的整个生命周期

  • 定义对象所处的状态以及由事件触发的转换

  • 用于正向和逆向工程

注意:活动图是状态图的一种特殊类型。

状态机图示例

State machine diagram


10. 活动图

活动图是另一种重要的图表,用于描述动态行为。它由以下部分组成:

  • 活动、连接和关系

  • 建模所有类型的流程:并行、单一、并发等

用途:

  • 描述从一个活动到另一个活动的流程控制,无需消息传递

  • 建模业务需求的高层次视图

  • 旨在建模计算过程和组织流程(工作流)

活动图示例

Activity diagram


11. 顺序图

顺序图用于建模基于时间序列的物体协作它展示了在用例的特定场景中,对象如何与其他对象进行交互。

特性:

  • 可视化建模能力,可快速创建复杂的序列图

  • 某些工具可以从用例描述生成序列图

  • 专注于对象之间按时间顺序的消息交换

序列图示例

Sequence diagram


12. 通信图

与序列图类似,通信图对……进行建模用例的动态行为.

关键区别:与序列图相比,通信图更侧重于展示……对象之间的协作而不是时间序列。

它们在语义上是等价的,因此某些建模工具允许你从一个生成另一个。

通信图示例

Communication diagram example


13. 交互概览图

交互概览图关注的是……交互流程的概览交互。它是活动图的一种变体,其中:

  • 节点是交互或交互发生

  • 消息和生命线被隐藏

  • 你可以链接“真实”的图表,并在图表之间实现高度可导航性

交互概览图示例

Interaction overview diagram


14. 时序图

时序图展示了……对象在给定时间段内的行为它是序列图的一种特殊形式。

与顺序图的关键差异:

  • 坐标轴方向相反:时间从左向右增加

  • 生命线以垂直排列的独立单元格中显示

时序图示例

Timing diagram example


总结:为什么UML很重要

  • UML是非专有且对所有人开放它满足了用户和科学界的需求,这一点已通过其基础方法的实际应用经验得到证实。

  • 许多方法论专家、组织和工具供应商已承诺使用它。由于UML基于Booch、OMT、OOSE及其他领先方法的相似语义和表示法,并融合了UML合作伙伴的建议以及公众的反馈,因此其广泛采用应会非常顺利。

UML中“统一”的两个方面:

  1. 标准化:它有效地消除了以往方法建模语言之间许多通常无关紧要的差异。

  2. 集成:它统一了各种不同类型系统(业务与软件)、开发阶段(需求分析、设计和实现)以及内部概念之间的视角。


利用生成式AI将UML付诸实践

在现实世界的软件架构中应用UML原则可能具有挑战性。Visual Paradigm的AI驱动工具弥合了抽象需求与专业级图表之间的差距,帮助您在极短时间内可视化复杂系统。

🤖 AI驱动工具

💬 AI图表聊天机器人

通过自然对话实现即时绘图。非常适合快速捕捉用例视图和系统行为。

🌐 AI Web应用程序

逐步的AI引导工作流程,帮助您从简单的草图创建并演化出详细的实现视图。

⚡ AI图表生成器

直接在Visual Paradigm桌面端生成专业UML图表,确保完全符合OMG标准。

📝 OpenDocs

一个现代的知识管理系统,用于集中管理您的文档并嵌入实时生成的AI图表。

准备好现代化您的建模流程了吗?
探索AI绘图生态系统 →


Visual Paradigm Online UML图工具完整指南

使用简单易用的在线UML工具,轻松绘制UML图

Class diagram example


🎯 什么是Visual Paradigm Online?

Visual Paradigm Online 是一款功能强大的基于浏览器的UML建模工具,使开发人员、架构师和业务分析师能够在不安装软件的情况下创建专业的UML图。它具备直观的拖放功能、实时语法验证和云协作功能,弥合了简单绘图工具与企业级建模平台之间的差距。


📊 支持的UML图类型

Visual Paradigm Online 支持全部14种UML 2.x图类型,包括:

1. 类图

Class Diagram example: Car
类图 — 建模静态结构:类、属性、操作和关系。

2. 用例图

Use Case Diagram example: ATM
用例图 — 捕获功能需求和参与者交互。

3. 时序图

Sequence Diagram example: MVC Stereotypes
时序图 — 可视化对象交互和随时间的消息流。

4. 活动图

Activity Diagram example: Order processing
活动图 — 建模工作流程、业务流程和操作逻辑。

5. 部署图

Deployment Diagram example: Firewall and switch
部署图 — 将软件组件映射到物理基础设施。

6. 组件图

Component Diagram example: Web store
组件图 — 展示模块化架构和组件依赖关系。

7. 状态机图

State Machine Diagram example: Phone
状态机图— 定义对象状态、转换和事件驱动行为。

8. 包图

Package Diagram example: Sub-systems and packages
包图— 将模型元素组织到逻辑命名空间和模块中。


⚡ 快速且直观的绘图功能

使用直观的网络UML工具轻松绘制UML图。我们提供您快速绘制UML所需的一切,同时不牺牲工作质量和完整性。

Fast UML diagram

核心生产力功能:

  • ✅ 内联编辑形状名称和成员(属性、操作)的内联编辑

  • ✅ 资源目录用于快速创建形状

  • ✅ 组合形状并一起移动

  • ✅ 一键对齐和分布工具

  • ✅ 拖拽序列消息创建


🔧 高级编辑功能

类成员的内联编辑

类成员是可选择和可编辑的组件,由类形状内部管理,而非自由文本标签。

Inline editing of class members

易于使用的序列图编辑器

序列图使用专门的UML形状构建,而非矩形和箭头等基本形状。

Easy-to-use sequence diagram editor

跨图复用形状

将常用形状保留在调色板中,并在其他图中复用。这不仅能节省您重新制作的时间,还能使您的设计保持一致。

Re-use shapes in other diagrams

符号的混合使用

利用UML图示的强大功能,通过超越标准的符号混合使用,准确传达信息。您可以将任何类型的符号融入任何图表中,无论其是否符合标准。

Mixed use of notations

使用您自己的图形进行设计

Visual Paradigm支持来自各种标准的数百种图形类型,您还可以通过导入功能添加更多。您可以创建一个包含您以图像格式(例如SVG、JPG、PNG等)保存的模板的调色板,并在设计中使用它们。

Design with your own shapes

了解有关绘图功能的更多信息 →


🌐 远不止是一款UML软件

立即开始

以简单灵活的方式创建图表和图形。免费开始绘图

Flowchart Maker
System Design Tool (e.g. UML)
Cloud architecture design tool (e.g. AWS)

全面的图表库

🔧 技术图表

💼 业务图表

☁️ 云架构设计工具

🎨 额外工具


🏆 最佳UML工具,用于可视化建模

开始使用

免费试用Visual Paradigm

概览

UML (统一建模语言) 已成为建模软件系统的广泛使用的行业标准。然而,我们需要良好的流程和建模工具支持,才能充分发挥UML所提供的可视化建模能力。商业世界复杂、动态且变化迅速——不存在“一刀切”的方法论。Visual Paradigm为开发者提供了丰富的UML设计工具,以应对当今具有挑战性的项目需求。

Latest UML 2.x diagrams and notations support一款功能全面的UML工具,支持最新的UML 2.x图表和符号。

主要功能:

  • ✅ 类图

  • ✅ 将UML与BPMN集成

  • ✅ 从用例模型创建产品待办事项列表

  • ✅ 用例场景顺序图生成

  • ✅ 用例中的线框图

  • ✅ IDE 集成

  • ✅ ERD 与 UML 类图之间的同步

  • ✅ 文档生成

  • ✅ 在线沟通软件设计

  • ✅ 顺序图工具


🎯 解决常见挑战

❌ 基础网络绘图工具的局限性

  • 在一个图表中创建的元素无法被引用在其他地方或跨项目

  • 图表是孤立的片段缺乏可追溯性

  • 没有支持的工具集用于敏捷开发、代码工程或企业项目管理

❌ 传统工具(如 Visio)的局限性

  • 仅适用于简单图表

  • 缺乏高级编辑功能用于复杂布局

  • 生成独立的图表,无法随软件开发过程扩展

✅ Visual Paradigm 的解决方案

🧰 优秀的可视化建模工具集

  • 全面支持最新的 UML 2.x 标准包含全部 14 种图表类型

  • 集成支持相关标准:BPMN、思维导图、文本分析,ArchiMate、鱼骨图、PERT、甘特图、WBS、雷达图等

🔄 将UML与敏捷/Scrum流程集成

  • 无缝应用用例建模,配合敏捷开发通过故事地图

  • 将可视化模型(需求)发送至敏捷产品待办事项列表来自用例、活动图、BPMN任务或思维导图

  • 将大型需求(例如用例)转化为可管理的用户故事或史诗

  • 将故事分解为由任务管理器自动管理的任务任务管理器

💻 代码工程工具集

  • 生成代码从类图和状态图生成常用编程语言的代码

  • 生成数据库模式从ER图生成,并使用Hibernate框架

  • 主流IDE:Visual Studio、IntelliJ、NetBeans、Eclipse、Android Studio

🔗 模型间可追溯性

  • 支持模型可追溯性通过引用、子图、跨项目链接和注释

  • 生成序列图/活动图从用例场景生成

  • 通过线框工具

  • 通过模型转换器功能

📄 按需报告设计器

  • 拖放模型元素以创建自定义报告在 Word、PDF 或 HTML 中

  • 通过以下功能将图表嵌入企业文档中:填空式文档编辑器

👥 团队协作

  • 并发编辑支持自动版本控制和冲突解决

  • PostMania:通过云端在线评论和讨论图表

  • 以可视化方式组织参考文献和文档文件柜

🌐 在线网络图表与示例

  • 网络图表功能支持 BPMN、ArchiMate®、类图、用例图、序列图、流程图、PERT 图、ITIL、AWS 和 Azure 图表——无需额外费用即可使用

  • 在以下平台尝试示例图表:Visual Paradigm 社区圈用于学习和实验


🤖 基于人工智能的 UML 生成

Visual Paradigm 已集成生成式 AI,以自动化手动形状放置和结构规划。

✨ AI 功能:

  • 文本转图表:描述一个系统(例如“一个银行应用程序的登录流程”),AI 将立即生成技术准确的序列图或类图

  • 引导式 AI 向导:例如AI 辅助类图生成器将逐步引导您识别类、属性和关系

  • 智能优化: 使用聊天机器人风格的界面输入命令,例如“添加支付网关”或“将‘员工’重命名为‘职员’”,图表将实时更新

  • 自动化分析: AI 可以评估你的设计,识别缺失的参与者或提出架构改进建议


💰 定价与可用性

版本 描述 最适合
Visual Paradigm Online 基于浏览器的版本,便于快速、便捷地建模 个人、小型团队、教育用途
Visual Paradigm 桌面版 完整的专业套件,适用于高级工程和离线工作 企业团队、复杂项目
社区版 免费版本,仅限非商业用途 学生、爱好者、开源项目
专业版许可证 付费版本,具备高级功能和支持服务 商业团队、企业部署

💡 专业版许可证通常从约 $69 美元查看定价详情


🔗 参考列表

  1. 14 种 UML 图类型的概述: 全面指南,涵盖所有 UML 2.x 图类型及其在软件开发项目中的应用。

  2. Visual Paradigm:您的 UML 建模完整指南: 深入评测,涵盖从免费入门工具到高级 AI 驱动的 UML 建模解决方案

  3. 全面评测:Visual Paradigm 的 AI 图表生成功能: 对AI驱动的图表生成能力及实际应用案例的详细分析。

  4. UML工具功能: Visual Paradigm的UML建模功能和在线工具功能的官方功能概览。

  5. 什么是UML?: 基础指南,解释统一建模语言的概念、历史及行业应用。

  6. UML实用指南: 逐步教程,指导如何在实际软件项目中应用UML建模技术。

  7. UML建模软件、流程与工具: Visual Paradigm中有效建模工具、元素转换、语法验证及自定义属性的使用指南。

  8. 在线UML工具: 基于浏览器的UML绘图工具的功能页面,包含示例和教程。

  9. UML建模软件流程与工具: 对建模工作流程、工具集成及验证功能的详细说明。

  10. UML工具解决方案: 面向企业用户的Visual Paradigm UML建模解决方案概述,适用于软件架构与设计。

  11. AI驱动的UML图表生成指南: 教程,介绍如何利用生成式AI从自然语言提示中自动生成UML图表。

  12. AI概要图生成器更新: AI辅助UML图表生成功能的发布说明与功能更新。

  13. AI图表生成功能: 官方文档,介绍AI驱动的图表创建、优化与分析工具。

  14. AI辅助的UML类图生成器: 分步向导,借助AI指导生成类图,涵盖属性、操作和关系。

  15. 用例到活动图教程: 指导将用例场景转换为可执行的活动图,用于工作流建模。

  16. Visual Paradigm AI演示:类图生成: 视频演示,展示如何从文本需求自动生成AI驱动的类图。

  17. Visual Paradigm AI演示:序列图生成: 视频教程,展示如何使用自然语言描述和AI辅助生成序列图。


💡 准备好开始建模了吗?免费创建您的第一个UML图 →

Visual Paradigm 将直观的设计、企业级建模以及人工智能驱动的自动化相结合,帮助团队更好地可视化、沟通并构建软件系统。 🚀