Diagram

ステートマシン図 (状態遷移図) チュートリアル


状態遷移図、別名ステートマシン図は、統一モデリング言語 (UML) を使用した行動図の一種で、さまざまなオブジェクト間の遷移を示すものです。共同作業が可能な Lucidchart の UML 作図ソフトウェアを使って、今すぐオリジナルのステートマシン図の作成を始めましょう。アカウント登録は無料です!

このページは2分で読めます

UML 図の作成には、ぜひ Lucidchart を試してみましょう。素早く、簡単に使えて、完全に無料です。

または
Google MarkGoogle 登録

登録により、Lucid Software のサービス利用規約プライバシーポリシーに同意します。

UML 状態遷移図とは?

ステートマシンとは、ある時点におけるオブジェクトのステータスを格納する任意のデバイスで、ステータスの変更や受信する入力データに基づき他のアクションを引き起こすことのできるものを指します。状態 (ステート) とは、あるオブジェクトが保持しうるさまざまな情報の組み合わせを指します。オブジェクトの振る舞い方を指すものではありません。オブジェクトの多様な状態を理解するためには、想定しうるすべての状態を視覚化し、それぞれの状態にオブジェクトがどう到達するかを示すことが有用です。これには、UML 状態図が役立ちます。

一般に、どの状態図も初期状態を示す塗りつぶしの円で始まり、最終状態を示す二重の円で終わります。ただし、明確な入口点と出口点はあるものの、状態図が事象の全体的な進行を表す上で常に最適の図であるとはいえません。むしろ、特定の種類の行動、とりわけある状態から別の状態への移行の図示に適した図です。

状態図は主に、状態と遷移を描出します。状態は、状態の名称ラベルの付いた角丸の長方形で示されます。遷移は1つの状態から別の状態へと流れる矢印で示され、状態の変化を表します。以下では、学生生活を示す簡単な図でこれらの要素の働きを紹介しています。Lucidchart の UML 作図ツールを使えば、あらゆるカスタムのステートマシン図を設計することができます。

ステートマシン図の用途

UML 図の大半と同様に、状態図にもさまざまな用途があります。主な用途は以下のようなものです。

  • 反応系におけるイベント駆動型のオブジェクトを示す。

  • ビジネスのコンテキストでユースケースのシナリオを図示する。

  • あるオブジェクトがそのライフタイム内でさまざまな状態を経由して移動する様を示す。

  • 単独のステートマシンの全体的な動作や一連のステートマシンの動作を示す。

Lucidchart を使えば、素早く、簡単に図を作成することができます。今すぐ無料のトライアルを開始して、作図と共同編集を始めましょう。

または
Google MarkGoogle 登録

登録により、Lucid Software のサービス利用規約プライバシーポリシーに同意します。

状態遷移図の記号と構成要素

状態図にはさまざまに異なる図形を使用することができます。他の図と組み合わせる場合であれば特にその傾向が強くなるでしょう。以下では、最も一般に使われる図形を紹介しています。

合成状態

ネストされた下位状態を持つ状態です。以下の大学の状態図の例を参照してください。この例の「Enrollment (登録)」は、登録プロセスにおけるさまざまな下位状態を含むため、複合状態となります。

選択擬似状態

潜在的な結果の分岐をもつ動的条件を示すひし形の記号。

事象 (Event)

遷移のトリガーとなるインスタンスで、該当する遷移の矢印の上に記されます。この例では、「classes end (授業の終了)」が、状態「Being taught (受講)」を終了させ、状態「Final exams (期末試験)」を開始させるトリガー事象となります。

出口点

オブジェクトが合成状態またはステートマシンを脱する点で、内部に X のある円で示されます。出口点は通常、プロセスが完了していないものの、エラーやその他の問題によりエスケープが必要となる場合に用いられます。

初期状態

プロセスの初期状態のマーカーで、黒塗りの円に遷移を示す矢印で表されます。

ガード

遷移を許可または停止するブール条件で、遷移を示す矢印の上に表示されます。

状態

オブジェクトの現在の性質を示す角丸の長方形。

下位状態

複合状態の領域内に含まれる状態を指します。以下の大学の状態図では、「Open for enrollment (登録可能)」はより大きな複合状態「Enrollment (登録)」の下位状態となります。

端子

中に塗りつぶしの丸のある円で、プロセスが終了したことを示します。

連絡管

1つの状態から他の状態へ向かう矢印で、状態の変化を示します。

遷移挙動

状態の遷移の結果として生じる挙動で、遷移を示す矢印の上に表示されます。

トリガー

オブジェクトを状態から状態へと能動的に移動させるメッセージの一種で、遷移の矢印の上に記されます。この例では、「Issue with reservation (予約における問題)」が、この人物をプロセスの次の段階ではなく、空港内の旅行代理店へと向かわせるトリガーとなります。

状態図の例

カレンダーの空き状況を示す状態図の例

このステートマシン図の例では、ある人がカレンダーに予定を入れるプロセスを示しています。複合状態「Check date (日付を確認)」では、システムがいくつかの異なる下位状態においてカレンダーの空き状況を確認します。カレンダー上の時間枠にすでに予定が入っている場合には、そのプロセスは中断します。カレンダーに空きがある場合には、カレンダーに予定が追加されます。

大学の状態図の例

この状態図では、大学の登録プロセスと授業を示しています。複合状態「Enrollment (登録)」は、学生が登録プロセスで体験するさまざまな下位状態で構成されます。登録が完了した学生は、「Being taught (受講)」へ進み、最終的には「Final exams (期末試験)」へと進みます。

空港でのチェックインの状態図の例

以下の例では、空港でのチェックインに必要な手順を簡略化して表しています。航空会社がプロセスを効率化し、不要なステップを除外する上で役立つ状態図です。


UML 図の作成には、ぜひ Lucidchart を試してみましょう。素早く、簡単に使えて、完全に無料です。