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
和等待 A
和 B
期间按下 R
按钮可达到状态 Return money
。如果有钱,它会发出警报。如果没有其他警报的功劳,或者只是新的自我转换,您可以将行为添加到从 Collect money
的转换中。
*:假设一旦投入足够的钱,进一步的硬币接受将被阻止。
因此,如果所有产品的价格都相同,则状态机将大不相同。可以在这个table中捕获:
我正在尝试为以下问题开发一个 UML 状态机图:
一台自动售货机有 3 个按钮:R 代表 return 金钱,A 和 B 代表饮料选择。 当自动售货机收到金额 x 时,用户可以在饮料之间进行选择。按 R returns 钱而不提供饮料。
如果在投入任何钱之前按下按钮 - 机器会发出警报信号。 如果按下 A 或 B 并插入 >= x 钱 - 将提供饮料。
服务完成后,会发出警报声通知用户。零钱得到 returned。取出饮料后,机器进入结束状态。
我的问题是我正在使用并行 'processes',我相信对于这种情况必须有一个简单的配置。有人可以 provide/guide 我有正确的想法以优雅的方式解决这个问题吗?
编辑:在使用@Chris Reynolds 的建议后,我想到了这个:
实际上这个状态机中没有并行进程*:
在 Collect money
和等待 A
和 B
期间按下 R
按钮可达到状态 Return money
。如果有钱,它会发出警报。如果没有其他警报的功劳,或者只是新的自我转换,您可以将行为添加到从 Collect money
的转换中。
*:假设一旦投入足够的钱,进一步的硬币接受将被阻止。
因此,如果所有产品的价格都相同,则状态机将大不相同。可以在这个table中捕获: