You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

用例图中Extend与Generalization的区别及应用咨询

用例中Extend与泛化(Generalization)的区别及应用

先把最核心的区别掰明白:

1. 泛化(Generalization):「是一个」的继承关系

这就是你熟悉的参与者泛化逻辑,放到用例里也完全适用——子用例是父用例的特殊版本,会继承父用例所有的流程、约束,还能在这个基础上修改细节或新增内容。
比如:父用例是「提交订单」,子用例「提交VIP订单」就是它的特殊版——继承普通提交的所有步骤,额外多了「自动抵扣会员优惠券」的操作;还有「提交企业订单」,继承核心流程后,加了「生成企业发票」的步骤。
这种关系适合多个用例核心目标一致,仅实现细节有差异的场景。

2. Extend(扩展):「可选附加」的增强关系

和泛化完全不同,Extend是给基础用例加「可选的外挂功能」——基础用例自己能独立跑完整个流程,扩展用例只有满足特定条件时才会触发,属于额外的补充行为。
比如:基础用例是「浏览商品详情」,扩展用例「收藏商品」,你不收藏也能正常看完详情;只有当你点击收藏按钮(触发条件),才会执行收藏的流程。
这种关系适合某个功能不是核心流程必须项,只是可选附加操作的场景。


再回答你最关心的问题:泛化完全可以用到用例上
用例泛化的逻辑和参与者泛化一致,都是用「带空心三角的实线」连接父用例和子用例,子用例继承父用例的所有特性,同时做特殊化修改。

举个实际例子:
父用例是「用户登录系统」,核心流程是「验证身份 → 进入系统」。

  • 子用例「账号密码登录」:继承核心流程,补充「输入账号密码」的前置步骤;
  • 子用例「短信验证码登录」:继承核心流程,把「输入账号密码」换成「输入手机号+验证码」;
  • 子用例「微信授权登录」:继承核心流程,把验证步骤换成「跳转微信授权页面 → 验证授权信息」。
    这样设计能清晰体现三个登录用例都是「用户登录系统」的特殊实现,共享核心目标,又各有不同的执行路径。

最后结合你贴的图补充下(因无法展示外链图片,这里描述通用图示逻辑):

  • 第一张图应该是Extend关系示例:基础用例和扩展用例之间用带箭头的虚线连接,虚线上标注<<extend>>,箭头指向扩展用例,代表基础用例可触发该可选扩展行为;
  • 第二张图应该是泛化关系示例:父用例在上,子用例在下,用带空心三角的实线连接,三角指向父用例,代表子用例继承父用例特性。

内容的提问来源于stack exchange,提问作者Smth_Unknown

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.29 07:57:40