【发布时间】:2020-11-30 11:13:33
【问题描述】:
【问题讨论】:
标签: uml use-case use-case-diagram
【问题讨论】:
标签: uml use-case use-case-diagram
«extend» 关系E - - -> B 表示 E 扩展了 B 的行为。B 具有独立于其扩展的含义,而 E 在 B 的上下文中添加行为。可能是相关的,但不是必须的。根据您的图表:
Register 扩展 Login。这意味着Login 是一个独立的用例,即使没有任何扩展也能提供价值。相反,Register 发生在Login 的上下文中,它本身就有意义。我知道Login 也允许Register 新用户。一个«include»关系B - - -> I意味着B行为总是包含I行为。 B需要我,但我可以独立于B。根据你的图表:
Authentication 包括 Login。所以Authentication 需要Login
Create order 包括 Authentication。因此,每次创建订单时,都会执行authentication,这需要Login。当然,这在高度安全的订购系统中是有意义的。但是对于正常的业务系统来说,这将意味着大量的强制登录。Search product 包括 View product。我理解当用户执行产品搜索时,可以查看搜索结果,并且可以直接导航到产品视图。但尚不清楚哪个演员与搜索互动。用例应该对用户有价值并对应一些用户目标:下订单肯定是一些用户的目标。但是登录真的是用户目标吗?实现其他目标不是需要一些详细的步骤吗?虽然 UML 不知道用例可能表示的交互(例如 argument in favor of a login use-case),但用例专家通常认为这是一种不好的做法(例如 argument against login use-cases)。
用例should not be misused for functional decomposition。因此,我建议仔细审查搜索和查看用例:这些是独立的吗?它们都为用户提供价值吗?还是一个只是另一个的功能细节?
【讨论】: