状態遷移図とは、デジタル回路やプログラムの設計などについて、各状態を頂点とし、ある状態から別の状態への遷移を辺としたグラフ構造で表現したものである。
状態遷移図の書き方には、主に有限オートマトンとUMLステートマシンの2種類がある
それぞれの例を下図に示す。
UMLステートマシン
- 状態には入場、退場、繰り返して実行するアクティビティを定義できる。
- 状態に自己遷移というトリガーが持てる。
- 自己遷移とは別に、単純にトリガーとして実行されるアクティビティも定義できる。
- 状態は階層的に状態を配置することができる。(コンポジット状態)
- 状態には、点線を引くことで直交状態を定義できる。直交状態とは、平行同時に動作する遷移。
- イベントには遷移条件やイベントが発動したときに実行するアクティビティを定義できる。
- コンポジット状態から出で戻るときに状態履歴を定義することで、以前のコンポジット内の状態に戻ることができる。