继承但排除一个用例

Inherited but exclude one use case

这是我的用例。在此系统中,组织者 'Right' 比支持者多,因此 he/she 可以使用预算管理功能。那么在这种情况下,如何通过扩展 'View Main Dashboard' 用例来显示只有组织者可以访问预算管理?

您的用例图试图对用户界面进行建模,其中 View main dashboard 导致不同的软件功能,例如 Party control 等。这不是用例的方法。相反:

  • 每个用例都应该对应于一些参与者的更高层次的目标。目标应该独立于解决方案的外观。无论是基于文本的 UI 还是 GUI,无论是一个 windows 还是多个
  • ,目标都是一样的
  • 用例图不应表示任何序列。您的图表显示了某种顺序,首先是仪表板,然后是派对控制。用例图不应该依赖于任何顺序。
  • «include»«extend» 等虚线箭头是依赖关系,而不是顺序流。顺便说一句,扩展应该是相反的:箭头的目标是要扩展的用例。

为了回答您的问题,让我们忽略这些问题;假设您只有有效的用例和依赖项。 actor继承也有缺陷:

  • 组织者是支持者吗?嗯,可能有些人既是组织者又是支持者。在这种情况下,您应该考虑让两个演员完全独立:这与人无关,而是与他们的角色有关。
  • 你的图表讲述了另一个故事:如果Organizer是一个Supporter(继承,即箭头应该是一个大的空心三角形)这意味着每个Organizer总是一个Supporter.
  • 如果 Supporter 有目标而 Organizer 没有,那么您不应该使用继承。或者,如果你这样做,创建一个具有共同目标的伪演员,让每个角色成为共同点的专业化并添加相关目标。
  • 如果有几件事 Organizer 可以做而 Supporter 做不到,那么你可以保持原样,但从 [ 添加 link =14=] 到更专业的目标。