de_DEen_USes_ESfa_IRfr_FRhi_INid_IDpl_PLpt_PTru_RUvizh_CN

敏捷团队的用例图:可视化系统行为的初学者指南

在快节奏的敏捷开发世界中,文档往往声誉不佳。它被视为缓慢、僵化且与实际代码脱节。然而,仍有一项工件对于协调利益相关者、定义范围以及推动用户故事不可或缺:那就是“用例图.

对于产品经理、业务分析师和敏捷团队而言,用例图并非为了创建完美的架构蓝图,而是为了沟通。它们提供了一张高层次的地图,展示“谁与系统交互,以及“什么他们能够实现的目标,而无需陷入技术层面的“如何实现”细节中。”

信息图,说明用例图如何协调敏捷利益相关者、定义范围并推动用户故事,而无需涉及技术实现细节。

本指南专为绝对初学者和敏捷实践者设计,旨在帮助他们利用用例图来澄清需求、识别缺失功能,并通过“Visual Paradigm.


📘 什么是用例图?(宏观视角)

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

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

用例图擅长之处:

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

  • 🗣️ 促进技术方与非技术方利益相关者之间的对话

  • 🧭 作为系统实际必须做什么的“蓝图”

  • 🔗 链接到详细规格说明、序列图或用户故事

它们未展示的内容(这也没关系):

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

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

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

⚠️ 从业者警示: 如果您的用例图包含超过20个用例,您可能误用了它。保持简洁。使用包来分组相关功能。让其他图表处理细节。


🧩 核心概念与符号:视觉参考指南

在绘制之前,您需要了解基本构建块。以下是完整的符号参考。每个元素都包含OMG UML官方规范的摘录,供需要形式化精确性的读者参考,但我们将重点介绍它们在敏捷环境中的实际应用。

UML 用例图示例

图标 名称 用途与我的实践笔记
蓝色椭圆形,表示 UML 图中的用例,从用户角度展示系统功能。 用例 表示可通过系统实现的用户目标。专业提示:将用例命名为动词-名词短语(如“下订单”或“生成报告”)以提高清晰度。
连接用例与参与者的实线,表示 UML 图中用于敏捷系统行为建模的关联关系。 关联 将参与者与其参与的用例连接起来。表示交互,而非数据流。
蓝色 UML 火柴人图标,表示参与者,是用例图中可视化系统行为和用户交互的关键符号。 参与者 与系统交互的外部实体。请记住:参与者代表角色(例如“客户”),而非具体的人(例如“约翰·多伊”)。
带有黑色横条的蓝色剪贴板图标,表示敏捷用例图中使用的 UML 系统符号元素。 系统 系统边界。用例位于内部,参与者位于外部。明确范围。
UML 包含关系符号,显示带有«include»构造型的虚线箭头,表示一个用例包含另一个用例。 包含 强制行为复用。基础用例始终执行被包含的用例。
UML 扩展关系符号,显示带有开放箭头和«extend»构造型标签的虚线箭头。 扩展 可选/条件行为。扩展仅在特定条件下于定义的扩展点执行。
带箭头的虚线,表示 UML 中系统元素之间的依赖关系。 依赖 一个元素在规范或实现上依赖于另一个元素。在用例图中应谨慎使用。
UML 泛化符号:带空心三角形箭头的实线,表示类之间的继承关系。 泛化 继承关系。具体分类器继承通用分类器的特性。
标有“实现”的蓝色三角形箭头虚线,表示 UML 图中接口与实现之间的依赖关系。 实现 将规范与其实现相连接。在类图/组件图中更为常见。
带有波浪边缘的蓝色 UML 协作图标,表示为敏捷团队提供的系统行为可视化。 协作 描述角色如何协作以实现功能。抽象掉实例细节。

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

用例

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

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

参与者

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

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

包含与扩展:关键区别

初学者最常犯的错误之一是混淆<<include>>和<<extend>>。以下是简单规则:

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

UML 包含
UML 扩展

💡 现实世界示例:

  • 下订单 包含 验证支付(始终必需)

  • 下订单 可被扩展为 应用促销码(仅当用户拥有代码时)


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

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

步骤 1:创建图表

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

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

  3. 单击 下一步.

  4. 输入图表名称和描述。该 位置字段可让您选择用于存储图表的模型。

  5. 单击 确定.

步骤 2:定义系统边界

要在用例图中创建系统,请选择 系统在图表工具栏上,然后在图表窗格中单击它。最后,在创建新系统时为其命名。
创建系统

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

步骤 3:添加参与者

要在用例图中绘制参与者,请选择 参与者在图表工具栏上,然后在图表窗格中单击它。最后,在创建新参与者时为其命名。
创建参与者

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

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

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

  1. 将鼠标悬停在源形状上(例如,一个参与者)。

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

  3. 松开鼠标按钮,直到它到达您希望的位置。

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

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

步骤 5:处理长用例名称

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

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

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

对于扩展:

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

  2. 在希望的位置松开鼠标按钮,并选择扩展 -> 用例.

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

创建扩展关系
对于包含:

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

  2. 选择包含 -> 用例.

  3. 为包含的用例命名。

包含关系已创建

步骤 7:使用包进行组织(如有需要)

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

  1. 选择包在图表工具栏上。

    创建包

  2. 拖动鼠标以创建一个包围这些用例的包。

    用包包围用例

  3. 最后,为包命名。

    命名包

附加内容:业务用例

UML 图表工具还支持表示业务参与者和业务用例。要将普通用例显示为业务用例,请执行以下操作:

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

    点击业务模型

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

    蓝色椭圆形,标注为“支付学费”,左侧边缘带有对角斜线,表示 UML 图中的业务用例。


📝 需求捕获:用例笔记与会议工作流

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

访问用例笔记

  1. 右键单击用例 →打开用例详情…

    在图中右键单击用例,并从上下文菜单中选择“打开用例详细信息”。

  2. 打开用例笔记选项卡。

    右键单击用例将打开详细信息,并高亮显示“用例备注”选项卡,以显示“分类归还图书”用例的备注。

结构化输入笔记

打开后,您将看到一个预定义的模板,包含四个要点:工作流, 业务逻辑, 决策,和后续跟进.
按照模板输入备注

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

  • 干系人关切:记录提出的异议或风险

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

处理嵌套笔记

可以通过创建多个嵌套笔记来记录不同类型的用例相关想法。按Tab键进行缩进,Shift+Tab键减少缩进。
嵌套备注

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

当干系人描述期望的系统行为时,您可以将笔记转换为正式的场景:

  1. 将鼠标悬停在包含行为描述的父级笔记项上。

    将鼠标指针移至备注项上方

  2. 点击项目符号旁边的向下箭头 → 事件流程 > 新建场景.

    创建新场景

  3. 完成:将生成一个新场景,其中笔记文本作为场景名称,子笔记作为步骤。

    已生成场景

🔁 我使用的迭代工作流:
会议 → 笔记 → 草稿场景 → 干系人评审 → 优化后的用例 → 关联的序列图


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

在多年将用例图应用于初创企业和企业项目后,以下是我为敏捷团队提炼的建议:

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

  • 您需要让业务利益相关者与开发人员就“什么”系统应该做什么”达成一致

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

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

  • 您正在为敏捷冲刺准备用户故事(用例 = 史诗级粒度)

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

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

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

  • 您的受众是 exclusively 偏好代码优先规范的开发人员

最终思考:

用例图并非追求完美——它们旨在“沟通”。一张能让大家达成共识的略有瑕疵的图表,远比一张“正确”却束之高阁、无人使用的图表更有价值。

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

从简单开始。根据反馈进行迭代。让图表随着您对问题领域的理解而演进。这正是用例建模成为战略优势的方式——而不仅仅是一项文档工作。


📚 Visual Paradigm 推荐资源

  1. 什么是 UML?:来自 Visual Paradigm 学习指南的初学者友好型 UML 概念、图表类型和建模原则介绍。
  2. 为什么要进行 UML 建模?:采用 UML 的实际理由,涵盖改善沟通、减少歧义以及提升设计文档质量等益处。
  3. 什么是用例图?:核心指南,解释用例图的目的、范围及其在行为型 UML 图表中的定位。
  4. 用例图符号指南:所有 UML 用例图符号、关系及 OMG 规范摘录的全面视觉参考。
  5. 如何在 UML 中绘制用例图:在 Visual Paradigm 中创建用例图的逐步教程,包括系统边界、参与者、关系和组织技巧。
  6. 输入用例会议记录:高级工作流指南,用于在用例笔记中记录利益相关者的讨论,并将其演变为正式的场景和需求。