在UML狀態機圖上,條件與轉換關聯。該轉換具有「trigger-signature [guard]/activity
」形式的3部分標籤。 Guard
是有條件的,並且爲了進行轉換必須評估爲真。轉換標籤的所有3個部分都是可選的。
從您的問題描述,我可以定義3種狀態爲「等待命令」,「準備命令」和「交付訂單」。從「等待訂單」過渡到「準備訂單」,並且該過渡可以標記爲「order placed [order is available] /
」。我選擇放棄這項活動,因爲從問題描述中,我沒有看到與此轉換相關的任何活動。你可以畫另一個標籤爲「order placed [order is unavailable]/refuse order
」的轉換。然而,這種轉變將從「等待訂單」開始,並返回到「等待訂單」,因爲當訂單被拒絕時我們不會更改狀態。在此轉換中,我包含了refuse order
活動,因爲我認爲有一些實際活動與拒絕訂單相關。
或者,我已經看到了包含決策鑽石的過渡,其中鑽石的箭頭標有trigger
,鑽石中的一個箭頭標記爲[guard]/activity
,而鑽石外的另一個箭頭標有[else]/activity
。但我不確定這是否是技術上正確的UML。
我認爲您在準備和交付狀態的條目活動中放入的條件非常好。因爲這些條件似乎與它們進入這些狀態時發生的活動相關聯,而不是任何狀態轉換。
查看示例http://www.uml-diagrams.org/examples/online-shopping-user-account-state-diagram-example.html?context=stm-examples和http://www.uml-diagrams .org/dicom-hosted-application-uml-state-machine-diagram-example.html?context = stm-examples – xmojmr