多角色UML用例图设计咨询:Guest、User、Editor的用例扩展
该场景UML用例图的正确设计方式
1. 参与者的泛化关系
- 用**泛化(Generalization)**关系明确参与者的权限继承逻辑:
User泛化自Guest(User是已登录的Guest,自动继承Guest的所有权限)Editor泛化自User(Editor是拥有特殊权限的User,自动继承User的所有权限)
2. 用例与参与者的关联
- 仅让
Guest与「阅读文章」用例建立直接关联,User和Editor通过泛化关系自动获得执行该用例的权限,无需重复关联。 User与「发表评论」用例建立关联;Editor同时与「发表评论」「编辑文章」用例建立关联。
3. 用例的扩展关系
- 将「发表评论」「编辑文章」标记为「阅读文章」的扩展用例:使用带箭头的虚线连接,箭头指向「阅读文章」,并标注
<<extend>>。 - 扩展关系表示这些功能是「阅读文章」过程中的可选操作,仅在满足特定条件(如用户已登录、拥有编辑权限)时才会触发。
常见设计误区修正
如果你的示例图存在以下问题,建议调整:
- 若重复给User、Editor关联「阅读文章」:属于冗余设计,泛化已覆盖权限继承,无需重复关联。
- 若未使用泛化区分参与者层级:会模糊权限继承逻辑,降低图的可读性。
- 若扩展关系箭头方向错误:扩展用例的箭头必须指向基础用例(即「阅读文章」),而非反向。
内容的提问来源于stack exchange,提问作者Gutek
相关产品推荐
相关产品推荐

