ログイン

ステートマシンチュートリアル

14分

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

UML の状態図とは?

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

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

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

また、Lucid のコードによるダイアグラム機能を使えば、これまで以上に速く、簡単に作成できます。Mermaid コードを使用してステートマシン図のカスタムモックアップを作成し、Lucidchart の文書に追加できます。

State Diagram Basic Example 500x281.png

状態図の用途

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

  • 反応系におけるイベント駆動型のオブジェクトを示す。
  • ビジネスのコンテキストでユースケースのシナリオを図示する。
  • あるオブジェクトがそのライフタイム内でさまざまな状態を経由して移動する様を示す。
  • 単独のステートマシンの全体的な動作や一連のステートマシンの動作を示す。

状態図の記号と構成要素

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

合成状態

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

選択擬似状態

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

Choice Pseudostate.png

イベント

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

Event Shape.png

出口点

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

Flow Final 35x26@2x.jpeg

初期状態

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

Final State Shape.png

ガード

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

状態

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

State Shape.png

下位状態

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

端子

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

End 35x35@2x.jpeg

移行

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

Transition Arrow.png

遷移挙動

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

トリガー

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

Trigger.png
 

状態図の例

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

State Diagram 525x626@2x.jpeg

大学の状態図の例

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

Enrollment Example.png

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

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

Airport Check in Example.png

UML でステートマシン図を作成する方法

ステートマシン図は、一般に状態図として知られており、プロセス内に存在するさまざまな状態を視覚化する便利な方法です。状態図は、管理者がプロセスの不要なステップを特定し、プロセスを効率化して顧客体験を向上させるのに役立ちます。

1. Lucidchart の利用を開始

自分でステートマシン図を作成するには、無料の Lucidchart アカウントに登録してください。登録後、空白の文書を開き、UML 図形ライブラリを有効にします。ウィンドウ左上の [図形] をクリックして、[UML] にチェックを入れます。すると、UML 図形ライブラリがウィンドウの左側に表示されます。下へスクロールして状態図ライブラリを探し、黒い円をドラッグして配置してダイアグラムの作成を開始します。この円は初期状態を表します。

2. 構成要素の特定

ダイアグラムの目的と、その図で表現する要素を明確にしましょう。目的を定める際の参考として、状態図の主な用途を以下に示します。

  • 物体がある状態からある状態へ移る様子を描写する。

  • リアクティブシステムにおけるイベント駆動型オブジェクトの仕組みを示す。

  • ユースケースのシーケンスをビジネスシナリオにどのように適用できるかを検証する。

  • 複雑なステートマシンまたは一連のステートマシンの概要を提供する。

状態図を構成する主な要素は、状態と遷移です。ダイアグラムに含める必要のある状態をすべて洗い出しましょう。プロセスの進行に伴ってユーザーが経験するあらゆる状態を考慮し、その後、ユーザーがその状態へ至る遷移やイベントについて検討します。例えば、以下のカレンダー状態図のスニペットでは、「Appointment added (予定追加済み)」という状態に到達するために、まず予定をカレンダーに追加する必要があります。

State Diagram Transitions Example Snippet 319x346.png
 

3. 図形の追加

マウスを始点の円の上にカーソルを合わせると赤い点が表示されるので、そのいずれかをドラッグして、遷移矢印を作成します。これは、状態の変化を示し、業務フローの方向を指し示す図形です。矢印を作成すると、エディターが自動的に新しい図形を選択して接続するよう促します。状態の図形である角丸長方形を選択してください。

State Diagram Step 1 277x147.png

ラベル図形

次に、状態をクリックして名前を入力し、ラベルを付けます。遷移矢印にメッセージを作成するには、テキストを追加したい線をダブルクリックします。イベントやトリガーについては、遷移矢印のすぐ上にテキストボックスをドラッグして配置することもできます。

選択肢の追加

遷移に複数のオプションを表現する必要がある場合は、疑似状態を示すために菱形の図形を選択してください。この図形から複数の遷移矢印を描くことができます。

Choice Pseudostate.png

図の完成

状態図 (より複雑なダイアグラムでは、ステートマシンのいずれか) が完成したら、最終状態を示す枠付きの円を選択してください。

State Diagram Step 2 400x239.png

図の書式設定

Lucidchart では、ダイアグラムの細部までカスタマイズできるため、統一感のあるプロフェッショナルな仕上がりを実現できます。基本構造を作成した後は、線や図形の色、サイズ、方向を簡単に変更できます。

State Diagram Scheduling System 740x860.png
 

4. 公開、実装、共有

ステートマシン図の本当の価値は、作成後に発揮されます。作成したダイアグラムを同僚やクラスメートなどと共有し、共同で作業できるためです。文書をダウンロードするには、[ファイル] > [形式を指定してダウンロード] をクリックし、希望するファイル形式を選択します。

Lucidchart のインテグレーションを利用すれば、完成したダイアグラムをお気に入りのアプリケーションに追加することもできます。Microsoft や Google Suite の文書、あるいは Confluence のような社内共有プラットフォームにダイアグラムを含めることができます。

他のユーザーとダイアグラムを共同編集できるようにするには、ウィンドウ右上にあるオレンジ色の [共有] ボタンをクリックします。設定した権限に応じて、Lucidchart ユーザーが文書を閲覧したり編集したりできます。また、アカウントを持たないユーザーでも、ステートマシン図を閲覧できます。

図の作成に必要なすべて

Lucidchart を使えば、洗練された美しい図を無料で作成できます。どんな図にも対応できる機能を完備したツールで、今すぐアカウントを作成して図の作成を始められます。

無料ではじめる

ステートマシンのテンプレートと例

UML ステートマシン図

料金:

無料

UML ステートマシン図, 料金: 無料

UML 表記を使用したクラス図

料金:

有料アカウント

UML 表記を使用したクラス図, 料金: 有料アカウント

よくあるご質問

UML ステートマシン図は、さまざまなオブジェクト間の遷移を示す行動図の一種です。イベントや条件に応じて、オブジェクトがそのライフサイクルの中でどのように異なる状態へ移行していくかを示します。

主な記号としては、初期状態を表す黒い円、状態を表す角丸長方形、遷移を表す矢印、終了状態を表す真ん中が塗りつぶされた二重の円、選択疑似状態を表す菱形があります。

無料の Lucidchart アカウントにご登録いただき、UML 図形ライブラリを有効にし、含める必要のある状態と遷移を特定し、ライブラリからキャンバスに図形をドラッグし、遷移矢印で接続し、各要素にラベルを付けてください。

複合状態とは、下位状態が入れ子になっている状態のことで、より大きな状態の中でより詳細なプロセスを示すことができます。

イベントとは、遷移を引き起こす事象であり、遷移矢印の上にラベルとして記載されます。一方、トリガーとは、オブジェクトをある状態から別の状態へと能動的に移行させるメッセージの一種です。

状態図は、リアクティブシステムにおけるイベント駆動型オブジェクトの表現や、ビジネスコンテキストでのユースケースシナリオの説明、オブジェクトがどのように状態を遷移するかの説明、ステートマシン全体の動作の表示に使用されます。

選択疑似状態は菱形の記号で表され、結果が複数に分岐する動的な条件を示します。これによって、1つの地点から複数の遷移先を選択できるようになります。

はい、[共有] をクリックすると、設定した権限に応じて、他のユーザーにダイアグラムの閲覧や編集を許可できます。

UML 図の作成に必要なすべての機能

オンライン UML 作図ツールに加え、 Lucidchart はサポートやトレーニングリソースも提供しており、あらゆる図に挑戦できるよう支援しています。

作図を開始する