遷移状態 vs. 状態遷移

初めて状態遷移図というものを知らされたとき、その意味は直感的に理解するのだが、「遷移状態(transition state)」なのか「状態遷移(state transition)」なのか一瞬、迷ってしまったのを覚えている。状態遷移では「状態」に着目し、ある入力(イベント)を得て他の状態に移り変わることを表現する。化学や宇宙のドメインでは「遷移状態」という言葉をよく聞く。初期状態から目標状態へ変化していく際の経路と変化量「状態量」に着目している。経路途中の状態量を監視・制御することで目標状態へ導くのだろう。理論的なことは分からない。

ソフトウェアでも複雑な状態を扱う必要がある。その状態に達するための条件も複雑化している。すると目標状態だけでなく、目標状態へ推移している途中の状態量を把握することで、目標状態に達することができるのか、いつ達するのかを監視したり、目標に向かって制御する必要がある。状態遷移はcut-in/cut-outばかりではない。fade-in/fade-out、slide-in/slide-outもある。だから遷移状態も重要になる。

例えば在庫。状態は在庫あり、在庫なしだけか。発注点、安全在庫という状態を追加したとしてもそれだけか。もっと変化量「状態量」に着目することで、どういったカーブでピッキングされているかなどを含めて状態を語るべきではないか。すべての状態遷移では、遷移状態もあわせて考えるべき、つまり状態量に対するアクションもあわせて考えるべきだろう。せめて「状態量は考慮しなくてよい」程度のコメントは添えるべきだろう。