状态机图和流程图有什么区别和相似之处?
到目前为止,我发现状态图向我们显示了状态的实际变化,而不是流程图中的过程或命令。
在状态图中,节点是状态,箭头对应于触发状态更改的事件。
在流程图中,节点是动作或决策,箭头对应于控制流,即接下来会发生什么。流程图不是 UML。最接近的 UML 图是一个活动图,它允许您更精确地描述您可以用流程图建模的所有内容(因为箭头也可以表示对象流)。
两者可以互补:流程图中的操作 / 决策可能会触发导致状态更改的事件。但这不一定是一对一的:一个动作可能会导致多个状态更改,而流程图中没有任何证据表明可能会发生这些更改。
简短和简化的例子:
想象一个Order
对象。它可能有状态received
,delivey in preparation
,delivery complete
,invoiced
。这些状态中的每一个都告诉接下来会发生什么。这将是 astate 图的主题。
想象一个流程图。这些是按顺序发生的不同操作: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 ...
并从那里继续。
如您所见:两者都可以讲述相同的故事,但是从不同的角度讲不同的细节。
正如您所提到的,状态机图专注于显示从哪个状态到哪个状态的执行基于输入。
虽然状态机可以作为流程图 / 活动图的专门形式来处理。
本站系公益性非盈利分享网址,本文来自用户投稿,不代表码文网立场,如若转载,请注明出处
评论列表(54条)