Asi*_*ara 5 diagram uml state-machine flowchart state-diagram
状态机图和流程图有何异同?
到目前为止,我发现状态图向我们展示了状态的实际变化,而不是像流程图中的过程或命令。
在状态图中,节点是状态,箭头对应于触发状态更改的事件。
在流程图中,节点是动作或决策,箭头对应于控制流,即接下来发生的事情。流程图不是UML。最接近的 UML 图是活动图,它允许您更精确地描述可以使用流程图等建模的所有内容(因为箭头也可以表示对象流)。
两者可以互补:流程图中的操作/决策可以触发导致状态变化的事件。但这不一定是一对一的:一个操作可能会导致多个状态更改,而流程图中没有任何证据表明这些可能会发生。
简短且简化的示例:
Order物体。它可能具有状态received, delivey in preparation, delivery complete, invoiced。这些状态中的每一个都告诉订单接下来会发生什么。这将是状态图的主题。Get an order from customer、Pick items of the orders from the inventory、 Send items to the customer、Are all items sent?、 如果是,Prepare and send invoice、 如果否,Find missing items然后返回Pick items ...并从那里继续。正如您所看到的:两者都可以讲述相同的故事,但从不同的角度和不同的细节。