自动售货机的UML状态-分支机构困境?

时间:2018-10-19 10:46:44

标签: uml diagram state-machine

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

任务:自动售货机收到1,2和5美元,饮料价格为2美元 -如果输入了足够的钱并且退款有变化,它会分配饮料 -机器已打开电源,然后关闭电源)

我标记了每个状态并转换了数字(STATES = s1,2 ...,TRANSITIONS = p1,2 ...),以使其更容易回答而无需绘制 (例如“ p1错误,应该写成这样”等)

这是我的图: enter image description here

问题:

  1. 它最终返回IDLE吗?在我看来,这更合乎逻辑- 还是必须在关闭电源后进入最终状态(黑点)?

    还是有两个最终状态,所以S5进入了另一个最终状态?

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

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

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

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

在此先感谢您的反馈。

1 个答案:

答案 0 :(得分:1)

  1. 您可以根据需要拥有多个决赛。
  2. 在等待之后(对于>情况),我将使点胶处于可选状态,而=情况将直接进入选择状态。仅从逻辑角度来看。当然,您可以使机器并行分配和更换。在这种情况下,您需要分摊并退款。
  3. 正确
  4. 您应该将“关闭电源”建模为可以随时触发的信号。在机器运行期间的任何时间都可以断开电源,而不仅仅是在机器空闲时。