PlantUML ステート図: 注文ライフサイクル

PlantUMLステート図でエンティティのライフサイクルをモデル化。ECやワークフローシステムの注文状態、遷移、ガード、アクションを追跡。

State Diagrams

詳細な説明

注文ライフサイクルのステート図

ステート図はエンティティがイベントに応じて異なる状態を遷移するライフサイクルをモデル化します。注文管理、ワークフローエンジン、ステータス追跡を持つあらゆるシステムに不可欠です。

基本的な注文状態

@startuml
title 注文ライフサイクル

[*] --> 下書き

下書き --> 送信済み : submit()
下書き --> キャンセル : cancel()

送信済み --> 処理中 : accept()
送信済み --> キャンセル : cancel()

処理中 --> 出荷済み : ship()
出荷済み --> 配達完了 : confirmDelivery()
出荷済み --> 返品 : initiateReturn()

配達完了 --> [*]
返品 --> 返金済み : processRefund()
返金済み --> [*]
キャンセル --> [*]

@enduml

開始状態と終了状態

[*]は初期状態(矢印が出る時)と最終状態(矢印が入る時)の両方を表します。

ガードとアクション

送信済み --> 処理中 : accept() [paymentValid] / reserveInventory()

ガード(角括弧内)は遷移が発火するために真でなければならない条件です。アクション(スラッシュの後)は遷移中に実行される副作用です。

複合状態

state 処理中 {
  [*] --> 検証中
  検証中 --> ピッキング : validated
  ピッキング --> 梱包 : picked
  梱包 --> 出荷準備完了 : packed
  出荷準備完了 --> [*]
}

複合状態にはサブ状態が含まれます。

エントリ・イグジットアクション

state 出荷済み {
  entry / sendTrackingEmail()
  exit / logDeliveryAttempt()
}

ユースケース

EC向け注文管理システムの設計、サポートシステムのチケットワークフローのモデル化、組み込みシステムのステートマシンのドキュメント、承認ワークフローのビジネスルール検証。

試してみる — PlantUML Editor

フルツールを開く