状态机图与流程图的区别。

4

状态机图和流程图之间有何异同之处?

到目前为止,我发现状态图显示的是状态的实际变化,而不像流程图那样显示过程或命令。

2个回答

4
在状态图中,节点表示状态,箭头对应触发状态变化的事件。在流程图中,节点表示动作或决策,箭头对应控制流向,即接下来会发生什么。流程图不是UML。最接近的UML图是活动图,它能够更精确地建模比流程图多出来的一些内容(因为箭头还可以表示对象流)。两者可以互补:在流程图中的某个动作/决策可能会触发导致状态变化的事件。但并不是一一对应:一个动作可能会引起多个状态变化,而在流程图中并没有显示这些可能性。
简单例子: - 想象一个“订单”对象。它可能处于“已接收”、“准备交付”、“已交付”、“已开票”的状态之一。每个状态都描述了接下来可能会发生的事情。这是状态图的主题。 - 再想象一张流程图。其中按顺序发生了不同的动作:从客户那里“获取订单”、从库存中“选取订单所需物品”、将物品“发送给客户”、“所有物品都已发送吗?”如果是,就“准备并发送发票”;如果不是,则“查找缺失的物品”,然后回到“选取订单所需物品”并从那里继续进行。正如您看到的:两者都可以讲述同一个故事,但从不同角度和不同细节出发。

1

正如您所提到的,状态机图重点展示基于输入执行从哪个状态到哪个状态。

尽管状态机可以被视为流程图/活动图的一种特殊形式。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接