用例图回答的是“系统给谁提供什么功能”:参与者画在人形图标里,用例画在椭圆里,谁和哪个功能连线、功能之间是包含还是扩展,是画对的关键。它不表达步骤和时序,细节要配用例描述表来写。
先找参与者,再定用例
参与者是与系统交互的人或外部系统:学生、教师、管理员、支付平台。参与者不是“职位”,而是“和系统打交道的角色”,同一个人可以对应多个参与者。
用例是系统提供的一个完整功能,用动词短语命名:提交订单、导出报表、审核申请。不要用“用户管理”“课程模块”这类模块名,那是功能结构,不是用例。
- 参与者:人形图标,画在系统边界外
- 用例:椭圆,画在系统边界内
- 连线:参与者与它使用的用例相连
包含、扩展与泛化
包含(include)是必然执行的子功能:只要发生“选课”就一定包含“登录校验”;扩展(extend)是可选或条件触发的分支:“导出报表”可以扩展“打印”。别把两种关系画反:包含的箭头从基用例指向被包含用例,扩展的箭头从扩展用例指向基用例,方向正好相反。
泛化用在不同角色或用例的继承上,比如“教师”“学生”泛化出“注册用户”。论文里用不到就不画,不要为了显技法硬加。
排版与论文写法
参与者放两侧,核心用例放中间并画进系统边界框,边界框上方写系统名;连线尽量少交叉,公共用例(登录)放中间减少连线数量。
用例图只表达结构,每个关键用例配一张用例描述表:前置条件、基本流、扩展流、后置条件。答辩时评委问“这个用例怎么走”,答的是表,不是图。
常见问题
用例图要把所有功能都画上吗?
画主要功能即可,粒度到“一个参与者一次交互能完成的事”;字段校验、弹窗提示这类细节不单独成用例。
include 和 extend 的箭头方向记不住怎么办?
记一句话:箭头都指向“被依赖的那个”。基用例依赖被包含用例,所以 include 指向子用例;扩展用例依赖基用例,所以 extend 指向基用例。
用工具做一遍
打开工具 在线画用例图
打开对应工具,把教程里的例子换成你的论文内容。
