【用例图有哪些关系,这些关系有什么区别?】

UML(统一建模语言)用例图(Use Case Diagram) 中,主要有以下 四种关系,它们用于表示不同的行为之间的依赖性、扩展性和通用性


1. 主要关系

1.1 关联(Association)

表示“参与者(Actor)与用例(Use Case)之间的交互”,用实线表示。

🔹 适用场景

  • 用户系统功能 之间的交互。
  • 外部系统 作为一个参与者,交互特定的用例。

🔹 示例
银行 ATM 取款

[用户] —— (取款)
  • 用户取款 之间的 关联关系 表示用户可以执行取款操作。

1.2 泛化(Generalization)

表示“继承关系”,用带空心箭头的实线表示。

🔹 适用场景

  • 一个参与者(Actor)继承另一个参与者的行为(继承关系)。
  • 一个用例可以被另一个更具体的用例扩展(行为继承)。

🔹 示例
不同类型用户的登录

        [用户]──▷[注册用户]
                    └──▷[管理员]
  • 注册用户管理员 都是 用户 的特殊类型,它们继承 用户 的行为。
  • 管理员 可能有更多权限(如管理其他用户),而 注册用户 只能执行基本操作。

1.3 包含(Include)

表示“被多个用例复用的功能”,用带箭头的虚线,标注《include》 表示。

🔹 适用场景

  • 一个 用例 A 始终 需要另一个 用例 B 来完成一部分功能(强依赖)。
  • 用例 B 是一个可复用的公共功能

🔹 示例
在线支付

(在线购物) --《include》--> (验证支付信息)
(在线购物) --《include》--> (扣款)
  • “在线购物” 这个用例必须 包含 “验证支付信息”“扣款”,因为它们是购物的 必备功能

1.4 扩展(Extend)

表示“可选或有条件执行的功能”,用带箭头的虚线,标注《extend》 表示。

🔹 适用场景

  • “用例 A”特定条件 下才会触发 “用例 B”弱依赖)。
  • 可选功能或异常情况,例如 错误处理、特殊业务逻辑

🔹 示例
用户登录

(登录) --《extend》--> (两步验证)
  • “两步验证” 仅在特定情况下(如异地登录)才会触发,因此它扩展“登录” 的功能。

2. 关系选择指南

关系说明适用场景UML 表示方式
关联(Association)参与者与用例之间的交互用户执行系统功能实线
泛化(Generalization)继承,表示一种 “是…的一种” 关系子类继承父类的行为带空心箭头的实线
包含(Include)强依赖,公用子功能复用代码逻辑带箭头的虚线 + 《include》
扩展(Extend)弱依赖,可选功能特定条件下的行为带箭头的虚线 + 《extend》

3. 典型场景分析

📌 电子商务系统

(1) 用户购买商品
[用户]──▶(浏览商品)
      ├──▶(添加购物车)
      ├──▶(下单)──《include》──▶(支付)
                              ├──《extend》──▶(优惠券)
                              ├──《extend》──▶(分期付款)
  • 包含(Include)支付下单必要功能
  • 扩展(Extend)
    • 使用优惠券(可选)。
    • 分期付款(可选)。

📌 银行系统

(2) ATM 取款
[用户]──▶(插入卡片)
      ├──▶(输入密码)──《extend》──▶(密码错误)
      ├──▶(选择取款金额)──《include》──▶(余额检查)
      ├──▶(取款)
  • 包含(Include)余额检查取款必备步骤
  • 扩展(Extend):如果密码输入错误,触发错误处理

4. 结论

  • 用例图关系的选择 取决于功能的依赖性和可复用性
    • 必须执行的功能 → Include
    • 可选或特定情况下执行的功能 → Extend
    • 功能继承或角色继承 → Generalization
    • 普通的用户与功能关系 → Association

用例图的核心是“用户 + 功能 + 关系”,合理利用不同关系能清晰地描述系统功能和交互方式。💡

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值