UML 状态机图 - 并行进程

UML state machine diagram - parallel processes

我正在尝试为以下问题开发一个 UML 状态机图:

一台自动售货机有 3 个按钮:R 代表 return 金钱,A 和 B 代表饮料选择。 当自动售货机收到金额 x 时,用户可以在饮料之间进行选择。按 R returns 钱而不提供饮料。

如果在投入任何钱之前按下按钮 - 机器会发出警报信号。 如果按下 A 或 B 并插入 >= x 钱 - 将提供饮料。

服务完成后,会发出警报声通知用户。零钱得到 returned。取出饮料后,机器进入结束状态。

我的问题是我正在使用并行 'processes',我相信对于这种情况必须有一个简单的配置。有人可以 provide/guide 我有正确的想法以优雅的方式解决这个问题吗?

编辑:在使用@Chris Reynolds 的建议后,我想到了这个:

实际上这个状态机中没有并行进程*:

Collect money 和等待 AB 期间按下 R 按钮可达到状态 Return money。如果有钱,它会发出警报。如果没有其他警报的功劳,或者只是新的自我转换,您可以将行为添加到从 Collect money 的转换中。

*:假设一旦投入足够的钱,进一步的硬币接受将被阻止。

因此,如果所有产品的价格都相同,则状态机将大不相同。可以在这个table中捕获: