用例需要另一个用例

时间:2014-05-27 08:38:02

标签: uml use-case

我为游戏建模用例。

玩家可以恢复游戏并退回主菜单,但他们需要在执行这些操作之前暂停游戏。

在用例中它们看起来像什么?谁能解释一下呢?

2 个答案:

答案 0 :(得分:2)

最优雅的解决方案可能是采用前提条件

我会在所有需要暂停游戏以便执行游戏的用例中放置“游戏暂停”的前提条件。请注意,“暂停游戏”是一个单独的用例,与其他用户无关:

enter image description here

前提条件/后置条件是一种简单明了的机制,它可以简化模型并解耦用例,避免了总是使用连接器的需要。有时连接器是可以的,但是它们中的每一个都使得用例模型更复杂,更加严格,并且需要更多工作。

“暂停游戏”在我看来是经常使用的独立动作,不仅仅是为了能够进入主菜单。

基于扩展的解决方案:

第一眼看,这是一个合适的解决方案(用户可以暂停他的游戏然后最终恢复或进入主菜单):

enter image description here

不幸的是,只是第一眼就看到了。 :) 如果用户暂停他的游戏然后恢复它会发生什么!此操作将影响扩展的用例(游戏不再暂停),这应该永远不会发生!预期的行为是所有扩展的UC彼此独立并且在扩展的UC上(如在单独的线程中运行)。在这种情况下并非如此 - “恢复游戏”将“取消暂停”游戏,撤消扩展UC的效果,进而禁用所有其他扩展的UC(在这种情况下,“退出到主菜单”)。

为了解决这个问题,必须添加一些额外的规则,整个解决方案将变得过于模糊和不清楚。除了打破预期的扩展UC行为。

这就是为什么我发现前提条件很好 - 它们让所有的自由和可能性保持开放,模型开销少得多,而且模型清晰整洁。

扩展后,使用

答案 1 :(得分:0)

因此恢复退出用例必须包含 暂停用例。 尝试对这句话进行建模并发布结果。