我为游戏建模用例。
玩家可以恢复游戏并退回主菜单,但他们需要在执行这些操作之前暂停游戏。
在用例中它们看起来像什么?谁能解释一下呢?
答案 0 :(得分:2)
最优雅的解决方案可能是采用前提条件。
我会在所有需要暂停游戏以便执行游戏的用例中放置“游戏暂停”的前提条件。请注意,“暂停游戏”是一个单独的用例,与其他用户无关:
前提条件/后置条件是一种简单明了的机制,它可以简化模型并解耦用例,避免了总是使用连接器的需要。有时连接器是可以的,但是它们中的每一个都使得用例模型更复杂,更加严格,并且需要更多工作。
“暂停游戏”在我看来是经常使用的独立动作,不仅仅是为了能够进入主菜单。
基于扩展的解决方案:
第一眼看,这是一个合适的解决方案(用户可以暂停他的游戏然后最终恢复或进入主菜单):
不幸的是,只是第一眼就看到了。 :) 如果用户暂停他的游戏然后恢复它会发生什么!此操作将影响扩展的用例(游戏不再暂停),这应该永远不会发生!预期的行为是所有扩展的UC彼此独立并且在扩展的UC上(如在单独的线程中运行)。在这种情况下并非如此 - “恢复游戏”将“取消暂停”游戏,撤消扩展UC的效果,进而禁用所有其他扩展的UC(在这种情况下,“退出到主菜单”)。
为了解决这个问题,必须添加一些额外的规则,整个解决方案将变得过于模糊和不清楚。除了打破预期的扩展UC行为。
这就是为什么我发现前提条件很好 - 它们让所有的自由和可能性保持开放,模型开销少得多,而且模型清晰整洁。
扩展后,使用
答案 1 :(得分:0)
因此恢复和退出用例必须包含 暂停用例。 尝试对这句话进行建模并发布结果。