uml
ステートマシン
状態遷移

状態遷移図(ステートマシン図)で過去の状態を記憶する

More than 1 year has passed since last update.

状態遷移図(ステートマシン図)の履歴状態について学んだので、備忘録として残して置く。

履歴状態(History)

状態遷移図で過去の状態を保持したい場合には履歴状態(History)を用いる。

OK

上の図を用いて、例を示す。
現在、(書き込みモード、入力不可)状態のときに、書き込みモード→閲覧モード→書き込みモードと遷移する場合を考える。
この場合、閲覧モードから遷移した書き込みモードのサブ状態は入力不可状態に遷移する。
これは履歴状態(History)により遷移前の状態を記憶していたからである。
履歴状態を状態遷移図で表現する場合は円の中にHと書かれた記号を用いる。


NG

ちなみに、僕は上の図のような書き方をして先輩に注意を受けた。
この書き方だと、1回目の書き込みモード遷移時、状態の履歴が残っていないのでどこに遷移するか分からないからである。


PLUS

また、履歴状態を用いる遷移と用いない遷移を使い分けることができる。
上の図の場合、書き込みモード⇄閲覧モード間の遷移では履歴状態を用いるが、書き込みモード⇄メニューモード間の遷移では履歴状態を保存しない。