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

自动售货机的UML状态-分支困境?,uml,diagram,state-machine,Uml,Diagram,State Machine,我正在尝试为自动售货机绘制UML状态图,可能是最基本的,但我是个初学者,还没有在互联网上找到合适的解决方案 任务:-自动售货机收到1、2和5美元,饮料价格为2美元$ -如果输入足够的钱并退还零钱,它就会分发饮料 -机器已通电和断电) 我标记了每个状态并转换了数字(状态=s1,2…,转换=p1,2…),以便在不绘制图形的情况下更容易回答 (如“p1错误,应写此”等) 这是我的图表: 问题: 它最终会回到空闲状态吗?在我看来,这更符合逻辑- 或者它必须在断电时进入最终状态(圆形黑点) 或者可以有两

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

任务:-自动售货机收到1、2和5美元,饮料价格为2美元$ -如果输入足够的钱并退还零钱,它就会分发饮料 -机器已通电和断电)

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

这是我的图表:

问题:

  • 它最终会回到空闲状态吗?在我看来,这更符合逻辑- 或者它必须在断电时进入最终状态(圆形黑点)

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

  • 应该在P3或P4之后,可能是两个分支

    • 可能是一家新的分行,插入了准确的价格金额(因此无需退款)
    • 如果有,放在哪里
  • 如果我理解这个原理,箭头上应该用这种形式写-正确吗

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

  • 我有什么基本的错误吗

  • 提前感谢,我感谢您的反馈

  • 你需要多少决赛就有多少决赛
  • 我会在等待(等待>案例)后将分配设置为可选状态,而=案例将直接进入选择。从逻辑的角度来看。当然,你可以让机器同时进行分配和更换。在这种情况下,你需要用叉子来分发和退款
  • 正确的
  • 您应该将断电建模为可随时触发的信号。可以在机器运行期间的任何时间断开电源,而不仅仅是在闲置时

  • 你用MS Paint制作了这个“图表”吗?你知道,有很多更简单的工具。@Geert-在paint.net中,它非常快速和简单,因为我经常使用它来处理其他东西-我只是添加了文本+箭头,并在最后用矩形圆角文本