ソフトウェア開発-UML図 How-Tos

ステートマシン図:記号、構成要素と書く手順を紹介

edraw編集者
編集者: Edraw

ステートマシン図ってどういう時に利用するの?そんな疑問をお持ちの方へ。この記事では、ステートマシン図について、書き方などの詳細を例を挙げて記します。

1.ステートマシン図(状態遷移図)とは?

ステートマシン図とは、システムにおけるオブジェクトの状態がどういった場合にどう変化するかを表したものです。

システムにおいては、オブジェクトやクラスは初期状態からイベント(プログラムが実行されること)ごとに変化します。ステートマシン図では変化を引き起こす条件やイベントの内容までを明示します。

ステートマシン図とフローチャートの違いは、以下のように考えられています。

フローチャートは、処理の流れを最初から順に図に表したものです。

ステートマシン図は、オブジェクトの状態に関する図なのに対してフローチャートはシステムの流れ全体を表します。

特徴は違ってもシステムにおいて利用する図ではあり、併用することによって開発が効率よく進められます。ステートマシン図を見るとオブジェクトがどのように変化するかを一目で把握することができます。それによって、チームメンバーとのオブジェクトの動きについて確認、共有できるのです。ビジネスでのユースケースを考えるのに役に立ちます。

2.ステートマシン図のルール(記号と構成要素)

ステートマシン図においては、利用する記号は簡単です。

ステートマシン図 記号

ステートマシン図は、主に状態の遷移を四角と矢印を用いて表します。状態の記号は四角だけでなく、楕円で書かれる場合もあります。また、システム内で状態が終了とならない場合は終了点は記述する必要はありません。

3.ステートマシン図を書く手順

次に、ステートマシン図を実際に書いていきたいと思います。

ステートマシン図の例を挙げてみると、ある飲食店で人手が足りずアルバイトを募集している状態とします。バイト募集中を1つの状態として、人を採用出来たら人手不足は解消します。

この事例をもとにEdraxMaxを利用してステートマシン図を書いていきましょう。

①EdrawMaxを立ち上げる

EdrawMaxを立ち上げる

②ホーム画面を立ち上げてブロック図か基本フローチャート、もしくは空白の図面を選択する

ホーム画面を立ち上げてブロック図か基本フローチャート、もしくは空白の図面を選択する

③状態を書き出す

状態を書き出す

状態が変化する順に状態を1つずつあげていきます。

状態を表す四角は基本図形ライブラリの長方形、もしくは基本フローチャートライブラリの状態とします。ライブラリ内にない場合はもっと見るを押下してフローチャートと検索してチェックを付けてライブラリに追加します。

④状態の遷移に合わせて矢印でつなぐ

状態の遷移に合わせて矢印でつなぐ

矢印は、状態のオブジェクトを選択して、始点から遷移先の状態までをドラッグしてひきます

⑤矢印にイベントの内容を書く

矢印にイベントの内容を書く

状態が変化する時の条件、イベントの内容を矢印に書いていきます。条件などが何もない場合は自動遷移といい、書く必要は必要ありません。

⑥レイアウトを整える、コメントなどを挿入する

レイアウトを整える、コメントなどを挿入する

デザインタブにデザイン全般のメニュー、挿入タブにワードアートや図形などのライブラリが入っています

⑦ファイルをCntl+Sまたは保存ボタン押下で保存する

ファイルをCntl+Sまたは保存ボタン押下で保存する

ファイルがeddx形式でローカルコンピュータに保管されます。もしくは、外部ファイル形式で保存する場合は次の手順でします。

⑧エクスポートボタンを押下して保存する形式を選択して保存する

エクスポートボタンを押下して保存する形式を選択して保存する

EdrawMaxはワード、エクセルだけでなくVisio、PS/EPS形式にも変換できるのがポイントです。

ここで、ステートマシン図の入れ子について解説します。

例えば、バスの走行状態について考えます。

バスが、エンジンが駐車している状態から走行を始めます。

走行という状態の中でも、

①道を走行している状態

②一時停止している

③乗降中

という状態が考えられます。

ステートマシン図 バスの走行状態

そこで上の図のように、状態の図の中に更にステートマシン図を挿入する形として表現できるのです。

また、並行処理についても表現することができます。

今度は、コンビニの店員がお客様にレジでお会計するときを例にあげます。

待機している状態から、レジで業務をする状態に変わります。

さらにその中でも、

①商品をスキャンしてお会計を済ませる

②商品を袋に入れてお客様に渡す

という2つの状態になることが考えられます。

その場合は、1つの状態の四角の中に点線で仕切ってそれぞれのステートマシン図を並べて書く形となります。

ステートマシン図 並行処理

上記の図を参考にしていただきたいです。

EdrawMaxは、ビジネス、プライベート共に利用できるドローイングソフトです。無料でダウンロードできて、すぐに利用ができます。

ステートマシン図だけでなく、フローチャート、SWOT図などのテンプレートが多数あります。

描画したい図形やオブジェクトを思うがままに扱うことができ、少ない手順で作品が完成するのがポイントです。複雑な図などでも、手書きで書くと図にできることは限界があり、なおかつ時間がかかるため業務にかかる時間を取られてしまいます。

さらに、microsoft社のvisioとも連携していてファイルを取り込んで編集することも可能です。

有料会員になると、便利な機能が無制限で利用できるほかクラウドストレージでファイルを保管できます。ファイルを他メンバーと共有、編集できるためチーム開発にも向いています。

また、他のドローイングソフトよりもコスパがいいことも特徴です。会員登録はWEBのフォームより氏名やメールアドレスを入力するのみで簡単です。

4.ステートマシン図の活用事例

ステートマシン図を作成すると、システムにおいての状態遷移を一目で分かるようになります。

また、システムの詳細を分からない人にとっても理解がしやすく共通認識をもつのに有用です。その他メリットは、システムにおける機能の抜けや改善点を洗い出すのに利用できること。

ステートマシンを活用する例としては、プログラムの動作を定義するのに参考にできます。プログラムにおいては、処理において処理や変数を1まとまりのものと定義するオブジェクトという概念があります。ステートマシン図によって、オブジェクトの状態変化を定義することからオブジェクトに与えるコマンドを決定できます。

既存のシステムについての、オブジェクトの遷移について確認、見直しをする場合にも活用できるのがいいところ。

まとめ

ステートマシン図について、記事を読んでいただきありがとうございました。ステートマシン図を活用すると、システムを新たな観点から確認することができます。

また、ドローイングソフトを利用すると直感的に作図ができて便利です。是非、ダウンロードしていただきたいと思います。

関連記事