状态机图 VS 流程图

State Machine Diagram VS Flowchart

状态机图和流程图的异同点是什么?

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

如您所述,状态机图侧重于根据输入显示执行从哪个状态到哪个状态。

尽管状态机可以作为流程图/activity 图表的特殊形式处理。

在状态图中,节点是状态,箭头对应触发状态变化的事件。

在流程图中,节点是行动或决策,箭头对应控制流程,即接下来会发生什么。流程图不是UML。最接近的 UML 图是一个 activity 图,它允许您更精确地描述您可以使用流程图建模的所有内容等等(因为箭头也可以表示对象流)。

两者可以互补:流程图中的 action/decision 可以触发导致状态变化的事件。但这不一定是一对一的:一个动作可能会导致多个状态更改,而流程图中没有任何证据表明这些可能会发生。

简短的示例:

  • 想象一个 Order 对象。它可能具有状态 receiveddelivey in preparationdelivery completeinvoiced。这些状态中的每一个都说明了订单接下来会发生什么。那将是状态图的主题。
  • 想象一个流程图。这些是按顺序发生的不同操作:Get an order from customerPick items of the orders from the inventorySend items to the customerAre all items sent?,如果是,则 Prepare and send invoice,如果否,则 Find missing items 和然后返回 Pick items ... 并从那里继续。

如您所见:两者可以讲述同一个故事,但从不同的角度和不同的细节。