参与者:与系统交互的外部角色,用小人图标表示。示例里的管理员就是参与者。
用例:系统为参与者提供的一项功能,用椭圆表示。例如学生管理、成绩审核、数据备份。
功能模块:把一组相关用例打包的椭圆节点,如示例里的「管理员功能模块」。参与者用实线箭头连到模块,模块再用 <<include>> 虚线箭头分到各个用例。
系统边界:把所有用例框起来的矩形,框外是参与者、框内是系统要做的事,框的左上角写系统名。
子系统:系统较大时,可在边界内再画矩形分组,每个子系统装一组相关用例。
关系
- 关联:参与者与用例、功能模块之间的实线,表示谁使用哪个功能;指向功能模块时实线带箭头
- 包含
<<include>>:虚线箭头,从主用例指向被包含用例,表示每次执行主用例都必然执行它;示例里「成绩管理」必然包含「成绩校验」
- 扩展
<<extends>>:虚线箭头,从扩展用例指向基础用例,表示特定条件下才发生的可选行为;写法是 扩展 -.extends.-> 基础,不自动反向,扩展用例排在外围一层
- 泛化:实线加空心三角箭头,仅用于参与者。写法是
子 --|> 父,如 管理员 --|> 用户
绘制步骤
- 先确定参与者,再列出每个参与者要使用的用例
- 画出系统边界,把用例放进框内、参与者放在框外
- 补上包含、扩展、泛化关系,检查每个用例至少与一个参与者相连