Tutorialby SparxSystems JapanEnterprise Architect 日本語版
モデリング操作ガイド(ステートマシン図編)(2024/08/13 最終更新)

モデリング操作ガイド(ステートマシン図)

目次
1.

はじめに .......................................................................................................................... 32.

ステートマシン図でのモデリング .................................................................................. 4

3.

2.1.

イベント・ガード・アクションの設定 ................................................................... 42.2.

状態内部のアクションの設定 ................................................................................. 52.3.

内部遷移 .................................................................................................................. 6

2.4.

コンポジット状態の作成......................................................................................... 72.5.

並行状態 .................................................................................................................. 8

ステートマシン図での便利なテクニック・機能 ............................................................ 9
3.1.

3.1.1.

状態遷移表の表示 ............................................................................................ 9

3.1.2.

状態遷移表の表示書式の変更........................................................................ 103.1.3.

状態遷移表内での編集.................................................................................... 113.1.4.

状態遷移表の出力 .......................................................................................... 123.2.
4.

状態遷移表との連携 ................................................................................................ 9ステートマシン図からのソースコード生成 ......................................................... 12

ステートマシン図に関連する設定 ................................................................................ 13

Copyright (c) 2009-2024 Sparx Systems Japan2モデリング操作ガイド(ステートマシン図)

1. はじめにこのモデリング操作ガイドでは、個別の図や機能について、Enterprise Architect の機能の紹介や操作方法について説明します。モデリング操作ガイドは、以下のように内容ごとに分かれています。
・ 共通操作編・ クラス図・オブジェクト図編・ ユースケース編
・ アクティビティ図編
・ シーケンス図・コミュニケーション図編・ ステートマシン図編
本ドキュメントをご覧になる前に、「モデリング操作ガイド 共通操作編」をご覧ください。共通操作編で紹介されている内容は省略いたします。

なお、このドキュメントでは、UML の仕様・文法・記述方法についての説明はすべて省略しています。別途 UML について紹介している書籍などをご利用ください。
また、本ドキュメントは、ドキュメント執筆時の最新版を利用して作成されています。
そのため、それ以降のバージョンで画面構成や機能が多少変更になっている可能性もあります。相違点や不明な点がございましたら、サポート担当 support@sparxsystems.jp にご連絡ください。

Copyright (c) 2009-2024 Sparx Systems Japan3

モデリング操作ガイド(ステートマシン図)

2. ステートマシン図でのモデリング
この章では、ステートマシン図固有のモデリングの操作について紹介いたします。要素をダイアグラム内に配置する操作や要素間を接続する操作は、「モデリング操作ガイド 共通操作編」をご覧下さい。
また、ステートマシン図・状態遷移表や Enterprise Architect の機能を利用して状態遷移設計を行う方法について説明したドキュメント「ステートマシン図の整合性確保 マニュアル」もご覧ください。
https://www.sparxsystems.jp/products/EA/ea_documents.htm

2.1. イベント・ガード・アクションの設定遷移に対してガード条件などを設定する場合には、対象の遷移を選択し、プロパティサブウィンドウの「制約」タブから設定します。表示されるページでそれぞれの情報を入力することができます。
なお、一般的に「イベント」と呼ばれるものは、UML では「トリガ」と呼ばれます。このツールでも、「トリガ」と表現しています。

Copyright (c) 2009-2024 Sparx Systems Japan4

モデリング操作ガイド(ステートマシン図)

新規にトリガを追加する場合には、名前を入力後「保存」ボタンを押してください。作
成後、必要に応じて「種類」を指定してください。種類を指定する場合には、その種類に応じて、モデル内の他の項目を選択し、関連づけることができます。
(このドキュメントで説明している範囲内のモデリングであれば、種類の指定は必須ではありません。)
名前の欄の右横にある「...」(参照)のボタンを押して「トリガの選択」画面を表示し、既存のトリガを選択することもできます。名前を直接入力して「保存」ボタンを押す方法の場合には、トリガ要素が常に新規作成されます。既に存在するトリガと同じトリガを利用する場合には、参照ボタンを押して既存のトリガ要素を選択してください。
ガード条件および遷移時の効果(アクション)については、それぞれの欄に記入してください。

2.2. 状態内部のアクションの設定状態に対して入場時アクション(entry/…)やアクティビティ(do/…)などを指定する場合には、状態要素をダイアグラム内で右クリックして表示されるコンテキストメニューから「属性・操作と付属要素」→「操作」を選択します。クラスの操作を追加する場合と同じ属性・操作と付属要素サブウィンドウが表示されますが、内容が異なります。
(ショートカットキー「Ctrl+5」も便利です。)

ここで、追加したいアクションの「名前/コメント」欄に表示名を入力することで、状態についての追加情報を表示させることができます。例えば、entry アクションの名前に「パラメータ確認」と設定した場合の表示は以下の図のようになります。

Copyright (c) 2009-2024 Sparx Systems Japan5

モデリング操作ガイド(ステートマシン図)

作成したアクションに他の振る舞い要素を結びつける場合など、プロパティを設定する場合には、プロパティサブウィンドウを利用します。作成したアクションの振る舞いを文字で定義する場合には、コードエディタを利用します。対象のアクションを一覧内で右クリックし、「振る舞いの編集」を実行してください。
(ショートカットキー「Alt+7」も利用できます。)

2.3. 内部遷移状態に対して内部遷移を表現したい場合には、先ほどと同じ属性・操作と付属要素サブウィンドウを利用します。
「内部遷移」のタブの一覧を右クリックし「内部遷移の追加」を選択すると、下の図のように「不明なトリガ」(unknown_trigger)として項目が追加されます。この項目を選択すると、プロパティサブウィンドウからトリガやガードなどを指定することができます。

State1
トリガ [条件]

Copyright (c) 2009-2024 Sparx Systems Japan6

モデリング操作ガイド(ステートマシン図)

2.4. コンポジット状態の作成
コンポジット状態を作成するには、対象の状態要素を右クリックし、コンテキストメニ
ューから「子ダイアグラムの追加」→「子ダイアグラムを作成」を選択します。実行すると、状態要素の右下には下の図のようなアイコンが表示されます。この状態要素をダブルクリックすると、子ステートマシン図に移動することができます。
コンポジット状態

子ダイアグラムには、自動的に親状態を示すフレーム(枠)が表示されます。フレームが不要であれば、ダイアグラムの背景で右クリックして「ダイアグラムフレームの非表示」を選択してください。
なお、状態要素のサイズを大きくして、中に状態要素などを入れ子にする(サブ状態を作成する)こともできます。ダイアグラムの大きさや状況に応じて、最適な表現を利用してください。
親状態
子状態1

子状態2

開始終了

なお、上記のような「入れ子」にした場合には、中の要素を親状態の外側に出すことはできなくなります。入れ子状態を解除したい場合には、下の画像のようになっているモデ
ルブラウザ内での親子関係を解消してから(親状態の配下にある状態要素などをドラッグし、親と同じパッケージにドロップして同じ階層に移動させてから)、子の状態要素をダイアグラム内で移動し親要素の外に出して下さい。

Copyright (c) 2009-2024 Sparx Systems Japan7

モデリング操作ガイド(ステートマシン図)

2.5. 並行状態
ひとつの状態の中で、複数のサブ状態を持たせる場合には、並行状態の設定を行います。
状態を選択し、プロパティサブウィンドウの「領域」タブで適切な区画の名前を入力してください。

領域を 2 つ以上作成すると状態の中に区切り線が表示されますので、状態の中に状態を配置してください。区切り線はマウスでドラッグすることで、上下に移動することができます。
状態

Copyright (c) 2009-2024 Sparx Systems Japan8

モデリング操作ガイド(ステートマシン図)

3. ステートマシン図での便利なテクニック・機能
ステートマシン図を利用する上での便利な機能を紹介します。

3.1. 状態遷移表との連携
Enterprise Architect には、ステートマシン図の内容を状態遷移表の形式で表示する機能があります。この機能を利用すると、ステートマシン図と状態遷移表の両方の形式で、状態の遷移を設計・確認することができます。
ステートマシン図で設定した内容は、自動的に状態遷移表に反映されます。また、状態遷移表で設定した内容は、自動的にステートマシン図に反映されます。

3.1.1. 状態遷移表の表示
状態遷移表を表示するには、ステートマシン図の背景で右クリックし「状態遷移表」以下の項目を選択します。以下の選択肢から形式を選択できます。

Copyright (c) 2009-2024 Sparx Systems Japan9

モデリング操作ガイド(ステートマシン図)・ 状態遷移表 (状態-次の状態)
縦軸・横軸ともに状態要素が並ぶ状態遷移表が表示されます。
・ 状態遷移表 (状態-トリガ)
縦軸には状態が、横軸にはトリガ(イベント)が並ぶ状態遷移表が表示されます。
・ 状態遷移表 (トリガ-状態)
先ほどの選択肢と同じですが、縦軸が「トリガ」・横軸が「状態」になります。
なお、状態遷移表から別の形式の状態遷移表を表示する場合や、ステートマシン図に戻す場合の操作も同じです。ステートマシン図と状態遷移表を同時に表示することはできません。
3.1.2. 状態遷移表の表示書式の変更
状態遷移表の書式は、ある程度カスタマイズすることができます。状態遷移表の背景でダブルクリックするとプロパティ画面が表示されます。このプロパティ画面で、セルの幅や色などを変更することができます。

Copyright (c) 2009-2024 Sparx Systems Japan

10モデリング操作ガイド(ステートマシン図)

なお、セルや列・行の単位での細かい調整を行うことはできませんので、より細かい書式の設定が必要な場合には、後述する方法で状態遷移表の内容を CSV ファイルに出力し、Excel ファイルで編集するか、無料のアドイン「状態遷移表 Ex アドイン」が提供する Excel出力機能を利用して下さい。
https://www.sparxsystems.jp/products/EA/tech/Addins.htm#StateTableEx
3.1.3. 状態遷移表内での編集
状態遷移表の中では、さまざまな方法で編集することができます。編集した結果は、ステートマシン図に自動的に反映されます。
・ セルのドラッグ＆ドロップ
表示されているセル(遷移)を他のセルにドラッグ＆ドロップすることで、遷移の対象を変更したり、遷移が関係するトリガ(イベント)を変えたりすることができます。
(状態遷移表の形式に応じて動作が決まります。)
また、行・列の見出しも、状態を別の要素にドロップすることで、状態の「入れ子」を作成することができます。(解除は「状態」「次の状態」の文字列が表示されている位置にドロップするか、右クリックメニューを利用して下さい)・ F2 キー
セルや行・列の見出しを選択して F2 キーを押すことで、状態やトリガ・遷移などの名前を編集することができます。
・ 右クリック
セルや行・列を右クリックすることで、対象に応じた機能を呼び出すことができます。
・ 左上の領域に表示される+ボタン
表の左上の領域にマウスカーソルを移動すると、「+」マークのボタンが表示されます。
このボタンを押すことで、状態やトリガを追加することができます。
・ セルへの注記の追加
セルに「I」(無視)と「N」(不許可)の注記(文字)を追加することができます。状態遷移表を利用した網羅性の確保のチェックに有用です。
なお、ショートカットキーとして、I および N のキーが利用できます。注記を削除する場合には Delete キーです。
なお、状態遷移表で状態を新規に追加した場合には、ステートマシン図では適当な位置に配置されます。ステートマシン図を表示し、適切な場所に移動して下さい。

Copyright (c) 2009-2024 Sparx Systems Japan11

モデリング操作ガイド(ステートマシン図)

3.1.4. 状態遷移表の出力
状態遷移表の背景で右クリックし「状態遷移表を CSV ファイルに出力」を実行すること
で、表の内容を CSV ファイルに出力することができます。CSV ファイルは Excel で読み込
むことができますので、必要に応じて Excel で内容や書式を編集して下さい。
そのほか、「状態遷移表 Ex アドイン」を利用すると、Excel 形式で出力できます。
https://www.sparxsystems.jp/products/EA/tech/Addins.htm#StateTableEx
なお、状態遷移表自身を画像として他のツールに貼り付けることもできます。状態遷移
表全体を選択した状態で Ctrl+C を押してコピーし、Word などのアプリケーションでCtrl+V で「貼り付け」を実行して下さい。画像として貼り付けることができます。
(画像形式の場合には、内容を編集することはできません。)
3.1.5. 状態遷移表 Ex アドイン
状態遷移表 Ex アドインを利用すると、UML のステートマシン図と状態遷移表を同時に表示し、それぞれの編集で他方が自動的に更新されます。これにより、図と表がどのような関係にあるのかも把握しやすくなります。

3.2. ステートマシン図からのソースコード生成

Copyright (c) 2009-2024 Sparx Systems Japan12モデリング操作ガイド(ステートマシン図)

ユニファイド版あるいはアルティメット版を利用している場合には、ステートマシン図の内容をソースコードとして出力することができます。対象の言語は、C 言語・C++・Java・C#・VB.NET です。
なお、ソースコードに出力することのできるステートマシン図は、いくつか特定のルールがあり、そのルールに沿って作成する必要があります。設計レベルのステートマシン図をそのまま出力できるということではありません。
この機能の概要は、PDF ドキュメント「ステートマシン図からのコード生成 スタートアップマニュアル」をご覧下さい。
https://www.sparxsystems.jp/bin/docs/RTUML.pdf

4. ステートマシン図に関連する設定
ステートマシン図に固有の設定項目は特にありません。

Copyright (c) 2009-2024 Sparx Systems Japan13