用例图关系选型:多粒度用例间泛化关系的判定与展示
用例图展示与用例关系判定
一、用例图的展示方案
根据你的用例粒度分层,可通过以下方式清晰呈现:
- 分层布局+包含/扩展关系:
- 顶层用例
MA01(manage login and security):连接对应参与者(如普通用户),放在图的上层或左侧,代表导航到登录与安全界面的入口行为。 - 中层用例
MA03(Manage account details):用**包含关系(Include)**关联MA01——用户进入MA01界面后,管理账户详情是完成“管理凭证”目标的核心必要操作,MA01依赖MA03实现部分核心功能。 - 底层细化用例(如
MA03 001(change email)):若修改邮箱是“管理访问数据”的必选操作,用包含关系连接MA03;若为用户可选操作,则改用扩展关系(Extend)。
- 顶层用例
- 包分组优化:将MA03及其所有子用例(如MA03 001)归入名为「账户详情管理」的包中,MA01单独放入「登录安全管理」包,通过包划分让不同粒度的用例归类更清晰。
二、用例间的关系判定
先明确UML泛化关系的核心:父用例定义通用行为,子用例可完全替代父用例,且能在父用例基础上扩展/修改行为。结合你的用例描述:
- MA01与MA03:不属于泛化关系。MA01是界面导航的入口用例,MA03是该界面内的具体操作,二者是包含关系——MA01的完成依赖MA03的执行,MA03是MA01的必要组成部分。
- MA03与MA03 001:也不属于泛化关系。MA03的目标是“管理邮箱、密码等访问数据”,MA03 001是其中一项具体操作,属于MA03的子任务,因此是包含关系;只有当MA03是仅定义“管理访问数据”通用流程的抽象用例,而MA03 001是仅处理邮箱修改的具体实现时,才符合泛化关系定义,但根据你的描述,MA03是明确包含多类操作的具体用例,因此更适合用包含关系。
内容的提问来源于stack exchange,提问作者Can Kilic
相关产品推荐
相关产品推荐

