首页 > 解决方案 > 自动售货机的 UML 状态 - 分支困境?

问题描述

我正在尝试为自动售货机绘制 UML 状态图,可能是基本但我是初学者,还没有在互联网上找到合适的解决方案

任务: - 自动售货机收到 1,2 和 5 美元,饮料的价格是 2 美元 - 如果输入足够的钱,它会分发饮料并退还找零 - 机器有电源和电源关闭)

我标记了每个状态并转换了数字(STATES = s1,2 ...,TRANSITIONS = p1,2 ...),以便在不绘图的情况下更容易回答(例如“p1错误,应该写这个”等)

这是我的图表: 在此处输入图像描述

问题:

  1. 它最终是否会返回到空闲状态——在我看来这更合乎逻辑——或者它必须在断电时进入最终状态(圆形黑点)?

    或者可以有两个最终状态,所以 S5 进入另一个最终状态?

  2. 它应该在 P3 或 P4 之后可能是两个分支吗?

    • 可能是插入了确切价格金额的新分支(因此无需退款)
    • 如果是这样,放在哪里?
  3. 如果我理解原理,箭头上应该写成这种形式-对吗?

    触发事件[条件如果存在]/
    动作

  4. 我犯了任何基本错误吗?

在此先感谢,感谢任何反馈。

标签: umldiagramstate-machine

解决方案


  1. 您可以根据需要进行多次决赛。
  2. 我会在 Waiting 之后将 Dispensing 设为可选状态(对于 > 案例),而 = 案例将直接进入选择状态。只是从逻辑的角度来看。当然,您可以让机器同时进行分配和更换。在这种情况下,您需要分叉以分配和退款。
  3. 正确的
  4. 您应该将 Power off 建模为可以随时触发的 Signal。机器运行期间可以随时断开电源,而不仅仅是空闲时。

推荐阅读