引言
在面向对象设计的领域中,UML 用例图中的 <include> 和 <extend> 关系是模块化功能需求、促进代码重用以及阐明复杂参与者-系统交互的基础支柱。若缺少这些结构,用例图往往会变得臃肿,难以维护,成为庞大的单体结构。

这些关系不仅仅是理论上的 UML 符号;它们是关键的工程工具。当与现代建模工具(如)结合使用时Visual Paradigm (VP),这些结构便从抽象概念转变为高效、精准的工作流程。本文探讨了这些关系的目的、它们对 IT 开发生命周期的变革性影响、优缺点、最佳实践以及 Visual Paradigm 如何利用人工智能和自动化技术来增强其有效性。
1. 核心目的与定义
理解方向性和流程语义是实现有效建模的第一步。

而<include>关系:强制重用
该关系表明,基础用例始终将包含用例的行为作为强制子程序纳入其中。它从其他用例中提取可重用的共享步骤,从而减少冗余。
-
语义:若缺少包含的行为,基础用例将不完整。
-
示例:“取现”(基础用例)始终需要“用户认证”(包含用例)才能进行任何资金操作。
-
符号表示:一条带标签的虚线箭头,标注为
<include>从基础用例指向包含用例(基础用例 → 包含用例)。(基础用例 → 包含用例)。 -
对开发人员的影响:包含关系直接映射到系统架构中的共享库、API 调用或服务层。
而<extend>关系:条件性扩展
该关系表示,扩展用例在明确定义的扩展点上,有条件地对基础用例进行增强。即使未发生扩展,基础用例依然保持完全功能性和独立性。
-
语义:用于可选行为、变体、错误路径或条件流程(例如,促销期间的特殊航班)。
-
示例:“应用优惠券”(扩展)仅在提供有效优惠券代码时才适用于“结账”(基础用例)。
-
符号表示:一条带标签的虚线箭头,标签为
<extend>指向从扩展用例指向基础用例。关键的是,基础用例必须在其椭圆内部定义特定的扩展点,位于其椭圆内部。 -
对开发人员的影响:扩展映射到功能开关、插件或仅在保护条件满足时才触发的特定执行分支。
2. 对IT开发流程的影响
正确应用<include>和<extend>将<include>和<extend>正确应用,会贯穿软件开发生命周期(SDLC)的每个阶段。Visual Paradigm 在此起到了倍增器的作用,将手动建模工作转化为可自动化的、可追溯的工程产物。
| 开发阶段 | <include>/<extend>的影响 | Visual Paradigm 加速 |
|---|---|---|
| 需求与分析 | 团队早期识别共享行为(include)和变体(extend),防止重叠。 | AI优化工具:分析纯文本需求或原始草图,基于UML最佳实践智能建议<include>和<extend>的正确使用,将分析时间减少高达70%。 |
| 设计与架构 | <include>映射到共享服务;<extend>则成为可插拔模块。 | 可追溯性引擎: Visual Paradigm 会自动维护可追溯性矩阵,将用例与下游的类图/顺序图以及生成的代码桩关联起来。 |
| 实现 | 通过 include 实现复用可消除代码重复;条件性 extend 支持插件。 | 事件流编辑器: 允许分析师在步骤中直接引用包含的用例,附加守卫条件,并为开发者生成机器可读的规范。 |
| 测试与维护 | 集中化的 include 意味着一个测试套件即可覆盖多个流程。 | 扩展与包含分析器: 可即时生成关系表和聚焦的子图。在需求演进时,非常适合用于回归测试和影响分析。 |
3. 优点、缺点及 Visual Paradigm 的缓解策略
虽然功能强大,但如果使用不当,这些关系会带来风险。Visual Paradigm 通过智能验证和自动化来应对常见陷阱。
✅ 优点
-
大规模复用与一致性: 通过分离公共逻辑(include),团队可避免在数十个用例中重复相同的认证或日志处理流程。
-
清晰、可扩展的核心流程: 核心系统保持稳定且可测试,而可选功能(扩展)可独立开发。
-
提升沟通效率: 为利益相关者提供了一种清晰的语言,使其能够理解 什么 会发生(include),以及 何时 额外步骤发生(extend)的情况。
⚠️ 挑战与 Visual Paradigm 解决方案
| 挑战 | 风险描述 | Visual Paradigm 如何缓解该问题 |
|---|---|---|
| 过度碎片化 | 误用会导致过度嵌套或过于细小且无关的用例(“意大利面式”用例)。 | AI 优化与验证规则: 该工具会标记错误的方向或不必要的碎片化,强制保持更清晰的模型结构。 |
| 复杂的导航 | 依赖关系的深度嵌套可能导致图表难以阅读。 | 分析与简化工具: VP的 扩展与包含用例分析器 可自动生成即时的关系摘要和独立的子视图,便于快速查阅。 |
| 文档开销 | 手动编写叙述和表格耗时且容易出错。 | 自动生成: VP可自动生成用例叙述、扩展点表格和完整的可追溯性报告。 |
| 学习曲线 | 手动UML语法与现代工作流程之间的差距较大。 | 引导式入门: 内置教程、模板(ATM、DMS)以及一个 AI聊天机器人 可实时引导用户完成正确的流程步骤。 |
4. 最佳实践:由Visual Paradigm增强的手动工作流程
要掌握这些关系,首先必须理解其逻辑,然后借助工具完美实现。
第一部分:手动编写的良好规则
-
识别复用: 扫描您的草稿主用例,找出强制共享步骤(触发
包含)与条件性步骤(触发扩展). -
尊重方向性: 切勿反转箭头。始终确保箭头从参与者/基础用例指向被包含的用例,从扩展用例指向基础用例。
-
明确定义点: 对于
<扩展>,每个扩展必须有一个明确命名的扩展点位于基础用例椭圆内部。如果没有此操作,链接将无效。 -
限制嵌套:保持用例深度较浅。如果某个关系需要多层抽象,请在场景中记录详细流程,而不是创建新的用例层级。
第二部分:Visual Paradigm 实施工作流程
Visual Paradigm 将这些抽象规则转化为具体且无错误的过程。
-
步骤 1:创建基础图
使用 VP Online 或桌面版,从图板中拖动参与者和用例。先建立主要流程,无需立即建立关系。 -
步骤 2:通过资源目录引入关系
将鼠标悬停在任意用例上,访问 资源目录。选择“包含 → 用例”或“扩展 → 用例”。VP 会自动生成正确的虚线箭头,并为扩展自动插入可编辑的扩展点。 -
步骤 3:定义扩展点与流程
双击基础用例。打开 用例详情窗口或特定的“扩展点”部分。在此处,您可以编写文本流程,并定义守卫条件(例如:“如果折扣 > 10%”)。 -
步骤 4:AI 驱动的优化
选择图表并调用 AI 用例图优化工具(或 AI 聊天机器人)。引擎会分析您的模型,检测结构改进的机会,建议缺失的关系,并应用 UML 最佳实践,立即生成优化版本。 -
步骤 5:分析复杂性
对于包含超过 10 个用例的图表,运行 扩展与包含用例分析器(工具 → 应用程序)。它会生成:-
可读性良好的关系表格。
-
针对任意选定的基础用例的聚焦子图。
-
可导出的 PlantUML 代码,用于版本控制和外部协作。
-
-
步骤6:可追溯性与文档化
生成正式报告。VP将用例与测试用例关联,导出影响矩阵,并创建包含嵌入式图表和扩展点矩阵的Word/PDF输出。 -
步骤7:协作迭代
为实现实时协作,请使用VP Online。版本历史记录使利益相关者能够即时查看变更的影响,确保在冲刺规划前达成一致。
5. 结论
<<include>>和<<extend>>关系不仅仅是UML的形式化内容;它们是可扩展系统工程的基石。它们实现了核心功能与可选变体之间的分离,既促进了代码复用,也提升了架构清晰度。
然而,这些概念的理论力量在实际应用中得到了最充分的体现。通过集成Visual Paradigm的专用功能——例如自动化的资源目录集成、AI驱动的优化、扩展与包含分析器以及集中式可追溯性——这些关系从抽象理论演变为流程化、低风险的工业标准。
采用这一现代方法的组织普遍报告称,利益相关者对齐速度更快,返工周期大幅减少,分析、开发与测试团队之间的交接更加清晰。在快速变革与AI增强设计的时代,利用Visual Paradigm将经典的UML技术转化为决定性的竞争优势。
用例图资源
- <<include>>与<<extend>>用例: Visual Paradigm博客的核心解释文章,详细说明了<<include>>与<<extend>>的定义、区别、示例(如无效密码场景),以及在用例图中何时应用<<include>>(强制复用)与<<extend>>(可选/条件插入)的时机。
- 什么是用例图?: Visual Paradigm官方指南,涵盖用例基础内容,设有专门章节和示例,讲解<<extend>>(可选行为)与<<include>>(通用行为复用),包括构造型、箭头方向以及实际的图示说明。
- 用例图教程: Visual Paradigm Online上的综合教程,解释在初步识别后如何使用<<include>>和<<extend>>来构建用例结构,包含逐步的结构化建议和示例图。
- 扩展与包含用例分析器: 功能页面介绍Visual Paradigm的专用工具,可分析复杂图表,生成关系表,可视化依赖关系,并简化对所有<<include>>和<<extend>>连接的理解,从而获得更深入的架构洞察。
- 如何绘制用例图?: Visual Paradigm用户指南,分步讲解如何使用资源目录创建<<extend>>和<<include>>关系,包括拖动箭头、定义扩展点的精确说明,以及避免常见符号错误的建议。
- 使用基础用例、<<include>>与<<extend>>构建用例结构:高效软件开发指南: Visual Paradigm提供的深入指南,讲解如何使用基础用例、<<include>>(共享功能)和<<extend>>(可选/条件)用例,为软件项目构建清晰且可维护的模型。
- 用例图中的<<extend>>与<<include>>对比——UML详解: 以AI为重点的Visual Paradigm文章,通过类比、箭头方向解释,以及说明其AI工具如何自动优化并修正图表中的<<include>>/<<extend>>关系。
- <<include>>与<<extend>>用例图模板: Visual Paradigm Online中可直接使用的模板页面,解释<<include>>(强制包含)与<<extend>>(带守卫的条件添加),并提供参考信息和示例用法。
- 网站(使用<<extend>>与<<include>>用例进行用例结构化): Visual Paradigm社区圈示例,展示在网站场景中,如何使用<<include>>处理通用流程,使用<<extend>>处理备选路径的实际结构化方法。
- 为何要聚焦于特定用例的<<include>>与<<extend>>关系?(扩展与包含用例分析器):一篇由AI增强的文章,解释了通过Visual Paradigm的Analyzer工具关注单个用例的价值,结合PlantUML集成,可快速分解关系并可视化依赖关系。










