实践者评述与动手指南:通过用例建模可视化系统需求
🎯 新增引言:为什么用例图改变了我的软件设计方式
当我刚开始从事产品管理时,需求收集感觉就像徒手捕捉烟雾一样。利益相关者会用抽象的术语描述功能,开发人员则会有不同的理解,等到进入测试阶段时,我们才发现自己构建的东西根本没人真正需要。
这种情况在我发现 UML 用例图后发生了改变——特别是当我开始使用Visual Paradigm来让它们生动起来。

本指南不仅仅是一份枯燥的规范参考。它凝聚了某位实际使用者的经验,这位使用者曾用这些图表来协调跨职能团队、帮助新开发人员快速上手,并向非技术利益相关者清晰传达复杂的系统边界。无论你是业务分析师、项目经理、开发人员还是学生,你都能在正式符号定义之外获得实用的洞见。
让我们开始吧。
📐 UML 用例图符号:视觉词汇表
![]() |
|---|
| UML 用例图示例 |
用例图是 UML(统一建模语言)的核心组成部分,而 Visual Paradigm 在不牺牲精确性的前提下使其易于使用。以下是我在日常工作中依赖的完整符号工具包:
| 图标 | 名称 |
|---|---|
| 用例 | |
| 关联 | |
| 参与者 | |
| 系统 | |
| 包含 | |
| 扩展 | |
| 依赖 | |
| 泛化 | |
| 实现 | |
| 协作 |
| UML 用例图中可用的 UML 符号列表 |
|---|
🔍 深度解析:核心符号详解(结合真实场景)
用例
![]() |
|---|
| UML 用例 |
用例表示用户通过访问系统或软件应用所能达成的目标。在 Visual Paradigm 中,您可以通过在用例下创建子顺序图来使用子图功能,描述用户与系统之间的交互。您也可以使用事件流编辑器来描述用例场景。
💡 经验之谈:我总是从动词+名词的命名方式开始(“下单”、“生成报告”)——这能确保关注点放在用户成果上,而非系统内部结构。
OMG UML 规范
UML 中的用例是什么?根据 OMG 统一建模语言(OMG UML)规范(UML 超结构规范版本 2.4.1,第 606 页),用例是:
用例是系统执行的一组动作的规范,其结果是可观察的,并通常对系统的一个或多个参与者或其他利益相关者具有价值。
关联
![]() |
|---|
| UML 关联 |
参与者与用例之间可以建立关联,以表明该参与者参与了该用例。因此,关联对应于参与者与用例之间为实现用例而进行的一系列动作。
OMG UML 规范
UML 中的关联是什么?根据 OMG 统一建模语言(OMG UML)规范(UML 超结构规范版本 2.4.1,第 36 页),关联是:
关联描述了一组值指向类型化实例的元组集合。关联的一个实例称为链接。链接是每个关联端点都有一个值的元组,其中每个值都是该端点类型的实例。
…
关联指定了类型化实例之间可能发生的一种语义关系。它至少有两个端点,由属性表示,每个端点都连接到其类型的端点。关联的多个端点可以具有相同类型。
关联的一个端点属性,如果由端点类拥有,或为关联的可导航拥有端点,则表示该关联可以从对端导航;否则,该关联不能从对端导航。
参与者
![]() |
|---|
| UML 参与者 |
参与者是与系统交互的实体。尽管在大多数情况下,参与者用于表示系统的用户,但实际上参与者可以是任何需要与系统交换信息的事物。因此,参与者可以是人、计算机硬件、其他系统等。
请注意,参与者表示用户可以扮演的角色,而不是特定的用户。因此,在医院信息系统中,你可以将医生和患者作为参与者,但不应将约翰医生、布朗女士作为参与者。
💡 经验之谈:我见过团队在将“约翰管理员”建模为参与者时陷入困境。记住:建模角色,而不是具体的人。这能让您的图表更具可扩展性和可重用性。
OMG UML 规范
UML 中的参与者是什么?根据 OMG 统一建模语言(OMG UML)规范(UML 超结构规范版本 2.4.1),参与者是:
参与者指由用户或其他与主体交互的系统所扮演的角色。(此处“角色”一词为非正式使用,不一定意味着本规范其他部分中对该术语的技术定义。)
…
参与者建模的是与主体交互的实体所扮演的一种角色(例如,通过交换信号和数据),但该实体是主体外部的(即,参与者的一个实例不是其对应主体实例的一部分)。参与者可以表示人类用户、外部硬件或其他主体所扮演的角色。请注意,参与者不一定代表一个具体的物理实体,而只是与相关用例规范相关的某个实体的特定方面(即“角色”)。因此,一个物理实例可能扮演多个不同参与者的角色,反之,一个特定的参与者也可能由多个不同的实例扮演。
系统
![]() |
|---|
| UML 系统 |
系统的范围可以用一个系统(形状)来表示,有时也称为系统边界。系统的用例被放置在系统形状内部,而与系统交互的参与者则放在系统外部。系统中的用例构成了系统的全部需求。
OMG UML 规范
UML中的系统是什么?根据OMG统一建模语言(OMG UML)规范(UML超结构规范版本2.4.1,第608页),系统是:
如果显示了主体(或系统边界),用例椭圆在视觉上位于系统边界矩形内部。请注意,这并不一定意味着主体分类器拥有包含的用例,而仅仅表示该用例适用于该分类器。
包含
![]() |
|---|
| UML 包含 |
包含关系指定了包含用例的行为如何插入到基础用例所定义的行为中。
💡 经验之谈: 使用
<<包含>>用于强制性、可重用的步骤——例如在数十个流程中出现的“用户认证”。它减少了重复,使图表更清晰。
OMG UML 规范
UML中的包含是什么?根据OMG统一建模语言(OMG UML)规范(UML超结构规范版本2.4.1,第604页),包含是:
包含关系定义了一个用例包含另一个用例所定义的行为。
扩展
![]() |
|---|
| UML 扩展 |
扩展关系指定了扩展用例的行为如何插入到基础用例所定义的行为中。
💡 经验之谈: 保留
<<扩展>>用于可选或条件性行为——例如结账时的“应用折扣码”。它明确了核心功能与情境性功能的区别。
OMG UML 规范
UML中的扩展是什么?根据OMG统一建模语言(OMG UML)规范(UML超结构规范版本2.4.1,第601页),扩展是:
从扩展用例到被扩展用例的关系,指定了扩展用例中定义的行为如何以及在何时可以插入到被扩展用例所定义的行为中。
…
该关系表明,一个用例的行为可能被另一个(通常是补充性的)用例的行为所扩展。扩展在被扩展用例中定义的一个或多个特定扩展点处发生。然而请注意,被扩展用例是独立于扩展用例定义的,并且其意义不依赖于扩展用例。另一方面,扩展用例通常定义的行为本身可能并不一定具有独立意义。相反,扩展用例定义了一组模块化的行为增量,这些增量在特定条件下增强被扩展用例的执行。
请注意,同一个扩展用例可以扩展多个用例。此外,一个扩展用例本身也可能被其他用例扩展。
依赖
![]() |
|---|
| UML 依赖 |
依赖关系表示一个模型元素依赖于另一个模型元素来进行规范和/或实现。
OMG UML 规范
UML 中的依赖关系是什么?根据 OMG 统一建模语言(OMG UML)规范(UML 超结构规范版本 2.4.1,第 61 页),依赖关系是:
依赖关系是一种关系,表示一个或多个模型元素需要其他模型元素来完成其规范或实现。这意味着依赖元素的完整语义要么在语义上,要么在结构上依赖于供应者元素的定义。
泛化
![]() |
|---|
| UML 泛化 |
泛化关系用于表示同类型模型元素之间的继承关系。更具体的模型元素与更一般的模型元素共享相同的规范,但更具体的元素会额外携带更多细节。
OMG UML 规范
UML 中的泛化是什么?根据 OMG 统一建模语言(OMG UML)规范(UML 超结构规范版本 2.4.1,第 70 页),泛化是:
泛化是更一般分类器与更具体分类器之间的一种分类关系。具体分类器的每个实例也是更一般分类器的间接实例。因此,具体分类器继承了更一般分类器的特征。
实现
![]() |
|---|
| UML 实现 |
实现是一种规范与其具体实现之间的关系。
OMG UML 规范
UML 中的实现是什么?根据 OMG 统一建模语言(OMG UML)规范(UML 超结构规范版本 2.4.1,第 131 页),实现是:
实现是两组模型元素之间的一种特殊抽象关系,其中一组表示规范(供应者),另一组表示后者的实现(客户)。实现可用于建模逐步细化、优化、转换、模板、模型合成、框架组合等。
协作
![]() |
|---|
| UML 协作 |
OMG UML 规范
UML 中的协作是什么?根据 OMG 统一建模语言(OMG UML)规范(UML 超结构规范版本 2.4.1,第 174 页),协作是:
协作描述了一组协作元素(角色)的结构,每个角色执行特定功能,共同完成某种期望的功能。其主要目的是解释系统的工作方式,因此通常只包含被认为与解释相关的真实方面。因此,实际参与实例的身份或精确类别等细节被省略。
🚀 用例图教程:从概念到清晰
用例描述用户如何使用系统来实现特定目标。用例图由系统、相关的用例和参与者组成,并将它们相互关联,以可视化:描述的是什么?(系统),谁在使用系统?(参与者)以及参与者希望实现什么?(用例),因此,用例有助于确保从用户视角捕捉需求,从而开发出正确的系统。

UML 中的用例图是什么?
用例是一系列通常定义参与者角色与系统之间交互以实现目标的操作或事件步骤。用例是一种识别、澄清和组织系统需求的有用技术。用例由系统与用户之间可能的交互序列组成,用于定义需要实现的功能以及可能遇到的错误的解决方法。
虽然用例本身可能会深入探讨各种可能性的大量细节(例如,事件流和场景),但用例图可以帮助提供系统的高层次视图,以简化且图形化的方式展示系统实际必须完成的内容。
用例(或一组用例)具有以下特征:
-
组织功能需求
-
建模系统/参与者(用户)交互的目标
-
描述一个主要事件流(主要场景)以及可能的其他异常流(替代方案),也称为路径或用户场景
用例图符号
用例定义了外部参与者与系统之间的交互,以实现特定目标。用例图包含四个主要组成部分

参与者
参与者通常是根据其角色定义的与系统相关的个人。参与者可以是人,也可以是其他外部系统。
用例
用例描述了参与者如何使用系统来实现特定目标。用例通常由用户发起,以实现目标,描述了达成目标过程中涉及的活动和变体。
关系
参与者与用例之间以及参与者与用例之间的关系。
系统边界
系统边界定义了所关注的系统与其周围世界的关系。
用例图的优势
-
用例是一种强大的技术,用于获取和记录黑盒功能需求。
-
因为用例易于理解,并且由于它们使用自然语言编写,因此为与客户和用户沟通提供了极佳的方式。
-
用例可以通过将问题划分为主要用户功能(即用例)来帮助管理大型项目的复杂性,并从用户的角度指定应用程序。
-
用例场景通常由顺序图表示,涉及多个对象和类之间的协作,用例有助于识别连接这些对象和类的消息(操作以及所需的信息或数据——参数)。
-
用例为连接高层模型的验证(即参与者与一组协作对象之间的交互)和后续功能需求的验证(即白盒测试的蓝图)提供了良好基础。
-
用例驱动的方法为项目跟踪提供了可追溯的链接,其中关键开发活动(如用例的实现、测试和交付)均从用户的角度满足目标和需求。
如何绘制用例图?
可以通过以下步骤开发用例模型。
-
识别系统的参与者(用户角色)。
-
对于每一类用户,识别与系统相关的所有用户角色。
-
识别用户为实现这些目标而要求系统执行的任务。
-
为每个目标创建用例。
-
组织用例。
-
对用户进行优先级排序、评审、估算和验证。
💡 敏捷适应: 为了使用例方法更具“敏捷性”,不要一开始就详细描述所有用例。在产品待办事项列表中对它们进行优先级排序,并根据开发阶段的不同,以不同详细程度逐步完善用例——按需及时、恰到好处。
你还可以:
-
绘制包以对用例进行逻辑分类,将其归入相关的子系统中。

用例的结构化
UML 定义了用例之间关联的三种构造型:
<> 用例
使用 <> 关系的时机是在你完成所有主要用例的初步描述之后。现在你可以查看用例,识别用户与系统交互的常见序列。

<> 用例
扩展用例实际上就是基础用例的另一种执行路径。<> 用例通过在基础用例序列中概念性地插入额外的动作序列来实现这一点。

抽象与泛化用例
泛化用例是抽象的。由于包含不完整的信息,它无法被实例化。抽象用例的标题以斜体显示。

示例: 此示例展示了一个由多个业务用例(目标)组成的模型,体现了餐厅(业务系统)与其主要参与者之间的交互。
在初步识别出基础用例后,我们可以在第二轮优化中,通过 <> 和 <> 用例进一步对这些用例进行结构化,如下面图示所示:

业务用例
业务用例是用 与技术无关的术语来描述,将业务流程视为一个黑箱,描述由其业务参与者使用的业务流程;而普通用例通常在 系统功能层面上进行描述,并明确系统为用户提供的功能或服务。换句话说,业务用例代表了当前情况下需要手动完成的工作,它不一定由系统执行,也不一定在目标系统的范围内被自动化。

用例图示例
下图展示了一个 ATM 用例图示例,这是一个在教学用例图时非常经典的示例。

该 文档管理系统(DMS) 用例图示例展示了系统的参与者和用例。特别是,用例之间存在包含和扩展关系。

该 订单系统 下面的用例图示例展示了系统中涉及的参与者和用例:

🛠️ 我的 Visual Paradigm 工作流:真正节省时间的技巧
经过多年的建模,这是我简化后的 Visual Paradigm 方法:
快速入门
-
开始绘图: 转到
图表 > 新建并选择 用例图. -
添加元素: 使用左侧工具栏,将参与者或用例拖动到画布上。
-
快速建模: 将鼠标悬停在参与者上,使用资源目录(形状右上角的小图标)拖出新连接;这将自动创建并链接一个新的用例。
-
AI 生成: 您可以使用 AI 工具,通过提供您领域的一个简单文本描述(例如“ATM 系统”)来生成初始图表。
我依赖的高级功能
-
事件流: 右键单击一个用例并选择 用例详情 以编写用户旅程的逐步描述。
-
线框图: 将一个 线框图 直接链接到用例步骤,以可视化该特定操作的用户界面。
-
需求链接: 将用例连接到具体业务需求,以确保每个技术功能都有明确的目的。
💡 专业提示: 我总是将图表导出为SVG用于文档,导出为PNG用于演示。Visual Paradigm的导出选项让这一过程无缝衔接。
🎯 新结论:为何这超越了图表本身
用例图不仅仅是学术练习——它们是能够弥合差距的沟通工具。根据我的经验:
✅ 利益相关者终于看到了系统所做的事,而不会陷入技术术语的海洋。
✅ 开发人员获得了实现和测试的清晰边界。
✅ 质量保证团队可以直接从用例流程中推导出测试场景。
✅ 产品负责人根据参与者的目标来优先排序功能,而不仅仅是技术复杂性。
真正的力量不在于画出完美的椭圆和简笔画——而在于图表所引发的对话。当业务分析师、开发人员和最终用户都能指向同一个视觉图并说:‘是的,这就是我们要构建的’时,你就达成了共识。
Visual Paradigm降低了创建这些图表的门槛,同时不牺牲UML的严谨性。无论你是记录遗留系统的迁移,还是草拟一个全新项目,投入时间进行用例建模都能带来回报:减少返工、需求更清晰,团队也更满意。
从简单开始。频繁迭代。让图表随着你的理解不断演进。
📚 参考资料
- 什么是用例图?——用例图入门指南: 一份基础概述,解释了UML中用例图的目的、组成部分和优势,非常适合初学者和实践者。
- 如何识别IT系统的业务目标: 通过用例建模技术,将技术需求与业务目标对齐的实用指导。
- 使用Visual Paradigm Online的用例图入门指南: 使用Visual Paradigm云端工具创建用例图的逐步教程,包含截图和工作流程提示。
- 绘制用例图——用户指南: 官方文档,详细说明了在Visual Paradigm中构建用例图的机制,包括工具栏使用和元素属性。
- UML用例图教程(视频): 适合视觉学习者和团队培训的用例图概念与创建的视觉导览。
- UML用例图教程 – Lucidchart: 跨工具参考,解释用例符号、关系和最佳实践,并配有清晰的视觉示例。
- 用例图模板与示例 – Study.com: 提供模板、现实世界示例以及用例图组件说明的教育资源,适用于学术和专业用途。
- 编写有效的用例: 高级指南,介绍如何记录用例场景、事件流程,并将图表与详细规范关联。
- Visual Paradigm中的AI驱动图示生成: 展示如何使用AI工具,从自然语言描述中加速生成用例图。
- 用例图符号指南 – Visual Paradigm Circle: 用例图中支持的所有UML符号的全面参考,包含OMG规范摘录。
- 用例文档编写 – 用户指南: 在Visual Paradigm中丰富用例的说明、前置/后置条件以及替代流程的使用说明。
- Visual Paradigm用例工具概览: 产品页面突出展示Visual Paradigm用例建模功能,包括协作和导出选项。
- 用例图最佳实践(视频): 专家建议,帮助避免常见陷阱,并在敏捷和传统项目中最大化用例图的价值。
- 用例图在系统设计中的应用(视频): 将用例图应用于现实世界系统架构和需求收集的实际示例。











