de_DEen_USes_ESfa_IRfr_FRhi_INid_IDjapl_PLpt_PTru_RUvizh_CNzh_TW

使用 Visual Paradigm 掌握 UML 用例图

实践者的实战评测与全面指南:帮助您理解、创建并利用用例图,实现有效的系统需求建模


🎯 新增引言

当我第一次在软件工程课程中接触到 UML 用例图时,我得承认——我感到不知所措。小人儿、椭圆、带构造型的虚线箭头,比如<<include>><<extend>>……感觉就像在学习一种秘密语言。但在参与了多个实际项目,并深入使用 Visual Paradigm 等工具后,我逐渐认识到用例图是需求工程中最具威力却最被低估的产物之一。

本指南从一个与你处境相同的人的角度出发:一位试图弥合利益相关者期望与技术实现之间差距的产品专业人士、开发者或学生。无论您是在记录新功能、协调跨职能团队,还是准备认证考试,这份全面的指南都将帮助您不仅学会绘制用例图,更关键的是学会以用例的思维去思考。

我们将涵盖:

  • ✅ 用例图真正是什么(以及它们不是什么)

  • ✅ 基于 OMG UML 规范的可视化符号参考

  • ✅ 在 Visual Paradigm 中分步创建流程

  • ✅ 保持图表简洁有效的专业技巧

  • ✅ 如何记录会议笔记并将其转化为可执行的场景

让我们开始吧。


📘 什么是用例图?(整体概览)

一个用例图在最简单的层面上,是用户与系统交互的表示,展示了用户与不同用例之间的关系。一个UML用例图是正在开发的新软件程序的主要系统/软件需求形式。

Use Case Diagram in UML Diagram Hierarchy

💡 来自实践经验的关键洞察: 用例指定了系统的预期行为(做什么),而不是实现它的具体方法(怎么做)。这种关注点的分离正是它们在利益相关者沟通中如此有价值的原因。

用例图的优势在于:

  • 🎯 提供系统功能的高层级、终端用户视角

  • 🗣️ 促进技术人员与非技术人员之间的沟通

  • 🧭 作为系统实际需要完成功能的“蓝图”

  • 🔗 与详细规范、顺序图或用户故事相链接

它们不展示的内容(这没有关系):

  • ❌ 实现目标时步骤的执行顺序

  • ❌ 详细的用户界面流程或数据库模式

  • ❌ 实现逻辑或算法复杂性

⚠️ 实践者警告: 如果你的用例图包含超过20个用例,你很可能使用不当。保持简洁。使用包来分组相关功能。让其他图表处理细节。


🧩 用例图符号:视觉参考指南

Sample UML use case diagram

以下是我在书签中保存的完整符号参考。每个元素都包含官方OMG UML规范摘录,供需要正式精确性的读者使用。

图标 名称 用途与我的实用建议
用例 表示可通过系统实现的用户目标。实用提示:将用例命名为动词-名词短语,如“下单”或“生成报告”,以提高清晰度。
关联 连接参与者与他们参与的用例。表示交互关系,而非数据流。
参与者 与系统交互的外部实体。记住:参与者代表的是角色(例如“客户”),而不是具体的人(例如“约翰·多伊”)。
系统 系统边界。用例位于内部;参与者位于外部。明确范围。
包含 强制行为重用。基础用例总是执行被包含的用例。
扩展 可选/条件性行为。扩展仅在特定条件和定义的扩展点上执行。
依赖 一个元素依赖另一个元素进行规范或实现。在用例图中应谨慎使用。
泛化 继承关系。具体分类器继承一般分类器的特征。
实现 将规范与其实现关联起来。在类图或组件图中更为常见。
协作 描述角色如何协作以实现功能。抽象了实例的细节。

🔍 深入剖析:核心符号详解

用例

UML use case

用例表示用户通过访问系统或软件应用程序可以实现的目标。在 Visual Paradigm 中,您可以通过在用例下创建子序列图来使用子图功能,描述用例中用户与系统之间的交互。您还可以使用事件流编辑器来描述用例场景。

OMG UML 规范:
“用例是系统执行的一组动作的规范,这些动作产生一个可观测的结果,通常对一个或多个参与者或其他利益相关者具有价值。”
— UML 超结构规范 v2.4.1,第606页

参与者

UML actor

参与者是与系统交互的实体。尽管在大多数情况下,参与者用于表示系统的用户,但实际上参与者可以是任何需要与系统交换信息的事物。因此,参与者可以是人、计算机硬件、其他系统等。

OMG UML 规范:
“参与者指定了由用户或其他与主体交互的系统所扮演的角色……参与者建模的是与主体交互但外部于主体的实体所扮演的角色类型。”
— UML 超结构规范 v2.4.1

包含与扩展:关键区别

关系 何时使用 方向 我的经验法则
<<包含>> 当行为是 总是 必需 基础 → 包含 “此步骤是主流程的必需步骤”
<<扩展>> 当行为是 条件性的或可选的 扩展 → 基础 “只有在满足X条件时才会发生”

UML include
UML extend

💡 现实世界示例:

  • 下单 包含 验证付款 (总是必需)

  • 下单 可由……扩展 应用促销码 (仅当用户有优惠码时)


🛠️ 如何绘制用例图:我的Visual Paradigm工作流程

在测试了多个UML工具后,我选择了Visual Paradigm,因为它在严谨性和易用性之间取得了平衡。以下是经过实战检验的工作流程:

步骤1:创建图表

  1. 选择 图表 > 新建 从应用程序工具栏中选择。

  2. 在 新建图表 窗口中,选择 用例图.

  3. 点击 下一步.

  4. 输入图表名称和描述。 位置 字段可让您选择一个模型来存储图表。

  5. 点击 确定.

步骤 2:定义系统边界

要在用例图中创建系统,请选择 系统 在图表工具栏上,然后点击图表区域。最后,在创建后为新系统命名。

Create a system

✅ 最佳实践:清晰命名您的系统(例如,“电子商务平台”而非“System1”)。这将成为您的作用域锚点。

步骤 3:添加参与者

要在用例图中绘制参与者,请选择 参与者 在图表工具栏上,然后点击图表区域。最后,在创建后为新参与者命名。

Create an actor

🎯 专业提示:先从主要参与者(发起用例的参与者)开始,然后添加次要参与者(支持系统的角色或系统)。

步骤 4:创建用例(智能方式)

除了通过图表工具栏创建用例外,您还可以通过资源目录创建用例:

  1. 将鼠标移到源形状上(例如一个参与者)。

  2. 按下 资源目录按钮并将其拖出。

    Resource Catalog

  3. 释放鼠标按钮,直到它到达您偏好的位置。

  4. 选择 关联 -> 用例 来自资源目录。

    To create a use case

  5. 源形状和新创建的用例已连接。最后,为新创建的用例命名。

    Use Case created

步骤 5:处理过长的用例名称

如果用例太宽,可以通过拖动填充的选择器来调整其大小,以获得更好的显示效果。结果,用例名称将自动换行。

Resize a use case

⌨️ 键盘快捷键:按下 Alt + Enter 以手动强制换行。

步骤 6:添加 <> 和 <> 关系

对于扩展:

  1. 将鼠标移到用例上,按下并拖出其 资源目录按钮。

  2. 在偏好的位置释放鼠标按钮,然后选择 扩展 -> 用例.

  3. 为新用例命名并定义扩展点。

Create an extend relationship

对于包含:

  1. 采用相同的从资源目录拖拽方法。

  2. 选择 包含 -> 用例.

  3. 命名包含的用例。

Include relationship is created

步骤 7:使用包进行组织(必要时)

当图中存在大量用例时,可以使用包来对其进行组织。

  1. 选择  在图示工具栏上。
    Create a package

  2. 拖动鼠标以创建一个包围这些用例的包。
    Surround use cases with package

  3. 最后,为包命名。
    Name the package

附加功能:业务用例

UML 图表工具还支持业务参与者和用例的表示。要将普通用例显示为业务用例:

  1. 右键单击一个用例并选择 模型元素属性 > 业务模型.
    Click Business Model

  2. 选择后,用例的左侧边缘将显示一条额外的斜线。


📝 需求捕获:用例备注与会议流程

彻底改变我需求流程的一个功能: 用例备注。虽然与用户会面是需求捕获的重要部分,但多次会议对于明确用户真正需求至关重要。用例备注旨在帮助您记录需求捕获会议期间的讨论内容。

访问用例备注

  1. 右键单击用例 → 打开用例详细信息…

  2. 打开 用例备注 选项卡。

以结构化方式输入备注

打开后,您将看到一个包含四个要点的预设模板: 工作流程业务逻辑决策,以及后续事项.

Entering a note by following the template

✏️ 我的模板增强: 我添加了两个自定义部分:

  • 利益相关方关切: 记录提出的异议或风险

  • 验收标准: 尽早起草可测试的条件

使用嵌套笔记

通过创建多个嵌套笔记,可以记录各种与用例相关的想法。按 Tab 来缩进, Shift+Tab 来减少缩进。

Nested notes

🚀 从笔记到场景:一键演化

当利益相关方描述期望的系统行为时,您可以将笔记转换为正式的场景:

  1. 将鼠标悬停在包含行为描述的父级笔记项目上。
    Moving mouse pointer over a note item

  2. 点击项目符号旁边的下箭头 → 事件流程 > 转为新场景.
    Creating a new scenario

  3. 看吧:一个新的场景已生成,笔记文本作为场景名称,子笔记作为步骤。
    Scenario produced

🔁 我使用的迭代工作流程:
会议 → 笔记 → 草拟场景 → 利益相关方评审 → 优化用例 → 关联的时序图


🎯 新结论:何时使用(以及何时跳过)用例图

在多年应用于初创企业和企业项目中的用例图之后,这是我提炼出的建议:

✅ 在以下情况使用用例图:

  • 你需要让业务利益相关者和开发人员达成一致,关于系统应该做什么系统应该做什么

  • 你正在为新产品或重大功能发布记录范围

  • 你希望尽早识别缺失的参与者或边缘情况的交互

  • 你正在为敏捷冲刺准备用户故事(用例 = 巨大级别的粒度)

❌ 在以下情况考虑替代方案:

  • 你正在建模高度技术性、内部系统的交互(可尝试组件图或部署图)

  • 你需要指定实时行为或并发性(状态机或序列图更合适)

  • 你的受众仅限于偏好以代码为先的规范的开发人员

最终思考:

用例图并非追求完美——它们关乎沟通。一个略显不完美的图,只要能让所有人达成一致,就远比一个“正确”却闲置在仓库中无人使用的图更有价值。

🌟 我的黄金法则:如果你无法在5分钟内向非技术利益相关者解释你的用例图,那就进一步简化它。

从简单开始。通过反馈进行迭代。让图表随着你对问题空间的理解而不断演进。这才是用例建模成为战略优势的方式——而不仅仅是一项文档工作。


📚 参考资料

  1. 什么是用例?:维基百科的基础文章,将用例定义为系统动作的规范,这些动作能为利益相关者产生可观测且有价值的结果。
  2. 统一建模语言(UML):UML作为标准化建模语言的概述,用于可视化、规范、构建和记录软件系统。
  3. 什么是UML?:来自Visual Paradigm学习指南的初学者友好型介绍,涵盖UML概念、图类型和建模原则。
  4. 为何采用UML建模?:采用UML的实用理由,涵盖改善沟通、减少歧义以及提升设计文档质量等优势。
  5. 什么是用例图?: 核心指南,解释用例图在行为性UML图中的目的、范围和定位。
  6. 用例图符号指南: 所有UML用例图符号、关系及OMG规范摘录的全面视觉参考。
  7. 如何在UML中绘制用例图: 逐步教程,介绍如何在Visual Paradigm中创建用例图,包括系统边界、参与者、关系和组织技巧。
  8. 输入用例会议笔记: 高级工作流程指南,用于在用例笔记中捕获利益相关者的讨论,并将其演变为正式的场景和需求。