软件设计师 · UML · 用例图

UML 用例图 include 和 extend 怎么区分?

include 和 extend 是用例图里最容易被考生记反的一组。其实不用先纠结箭头方向,先看业务语义:这个行为是不是每次都要发生?是不是多个用例共同复用?还是只有满足条件时才触发?

软件设计师专题 软考题库编辑部 持续更新

include 偏必做,extend 偏条件触发

include 表示基础用例执行时一定会包含的公共行为。比如“借书”每次都要“验证读者身份”,这个验证动作就更像 include。它不是可选插件,而是基础流程的一部分。

extend 表示在特定条件下对基础用例进行扩展。比如借书时如果发现欠费,才触发“缴纳欠费”。不是每次借书都发生,所以更像 extend。

关系判断口径典型场景
include每次都要做、公共复用登录前验证身份、提交前校验必填项
extend满足条件才发生欠费时缴费、异常时补充处理
参与者系统外部的角色用户、管理员、第三方系统
用例系统提供的功能目标借书、下单、查询成绩

参与者不是一定等于人

用例图里的参与者是系统外部与系统交互的角色,可以是人,也可以是外部系统、设备或组织。比如支付平台、短信网关、认证系统,都可能作为参与者出现。

很多题会把“管理员”“用户”“第三方支付系统”放在一起考。判断时不要被名字限制,只要它在系统边界外,并与系统发生交互,就可以是参与者。

别把用例图当流程图

用例图回答的是“谁使用系统完成什么目标”,不是一步一步怎么执行。如果题干强调填写、审批、分支、并行,那更像活动图;如果强调对象之间消息顺序,那更像时序图。

所以用例图适合需求分析早期梳理系统边界和功能,不适合详细描述内部算法、数据库表结构或服务器部署。

相关题目解析

下面这些题目和本专题的判断方法关联较强,适合读完概念后回到具体题干里校验理解。