ステートマシン図と遷移パス抽出

Enterprise Architectで作成したステートマシン図は、無料の「遷移パス抽出アドイン」を利用して内容を検証することができます。このアドインと、ステートマシン図に関するさまざまな機能と組み合わせて利用することで、設計を効率よく行い、また設計品質を向上させることができます。

実行方法

アドインをインストール後、「アドイン・拡張」リボン内の「アドイン」パネルにある「ウィンドウ」ボタンを押し、状態遷移パス抽出アドインの画面を開いてください。ステートマシン図を表示した状態で実行ボタン(緑色の矢印ボタン)を押してください。以下のような設定画面が表示されます。

条件の設定

この画面からは、以下のような設定ができます。

開始要素
遷移を開始する状態を指定します。
終了要素
遷移を終了する状態を指定します。
遷移数
遷移する回数を指定します。例えば、「2」を指定した場合、遷移開始となる状態から、2回遷移した先の状態が最終状態になります。遷移数は1から7の間の数値が指定できます。
指定値のみ
この項目のチェックを外した場合には、例えば指定状態から1回遷移後、遷移先がないような場合でも遷移数「2」の結果に含まれるようになります。この例で、1回遷移後にさらに遷移可能な状態がある場合には、この項目の設定にかかわらず、遷移数「2」の結果には含まれません。
状態の最大到達回数
それぞれの状態について、最大の到達回数を指定します。例えば、最大到達回数に「1」を指定した場合には、状態A→状態B→状態A のように同じ状態に2回到達するパスは抽出対象外となります。
遷移の最大到達回数
それぞれの遷移について、最大の到達回数を指定します。例えば、最大到達回数に「1」を指定した場合には、状態A→状態B→状態C→状態A→状態B のように同じ遷移(この例では状態A→状態B)に2回到達するパスは抽出対象外となります。
トリガの最大発行回数
それぞれのトリガについて、最大の発行回数を指定します。例えば、最大発行回数に「1」を指定した場合には、同じトリガを2回以上発行する必要があるパスは抽出対象外となります。
開始疑似状態も状態として扱う
開始疑似状態(黒丸)は、通常は1つの状態としては考慮しません。この項目にチェックを入れると、状態要素と同じように扱い、開始疑似状態からの遷移は1回の遷移としてカウントします。なお、「開始要素」として開始疑似状態を指定した場合には、この項目の設定にかかわらず、1つの状態として扱います。
抽出パスの最大長
対象のモデルに、状態A→状態B→状態Aのように循環する遷移がある場合には、抽出パスの長さが無限になってしまう場合があります。そのため、抽出パスの長さが一定値を超えた場合には、抽出処理を中断します。この値は、その判断条件となる値を変えることができます。

抽出結果の一覧

実行すると、以下のように抽出結果が一覧で表示されます。

この一覧内の項目をクリックすると、ステートマシン図内で遷移パスを確認することができます。濃い赤が起点となる状態で、薄い赤が経由する状態です。経由する遷移も赤色で表示されます。この一覧に表示された結果をクリックして遷移結果を確認し、意図しない遷移や考慮が必要な遷移がないかどうか、確認していきます。

なお、履歴要素がある場合にも対応していますが、深い履歴要素には対応していません。通常の履歴要素(浅い履歴)と同じ扱いとなります。

抽出結果を別形式で保存

実行した内容は、CSV形式やExcel形式で保存することができます。保存する際には、一覧の中から対象を指定することができます。ボタンですべての項目にチェックを入れ、ボタンですべての項目のチェックを外します。

このようにして出力した内容は、実際のアプリケーションのテスト項目としても活用できます。

Enterprise Architectのテスト項目として追加

「親要素のテスト項目に追加」を実行すると、対象のステートマシン図を保持する要素(例:状態マシン要素)がある場合に、その要素のテスト項目として追加されます。追加されたテスト項目は、「テストサブウィンドウ」で確認できます。

テスト項目書の生成

「テスト項目書の生成」を実行すると、対象のステートマシン図の内容からExcel形式でテスト項目書を生成します。この形式の出力の場合には、以下のように実際のテスト手順を出力することができます。

出力対象モデル:

生成結果:

(この画像は、イベント・ガードの内容を表示するE列およびF列を非表示にしています)

このテスト手順については、「トリガ」要素のノート欄に記述します。例えば、「ログイン」のトリガ要素のノート欄には以下のような記載があります。

このように、「テスト項目書の生成」の場合には、トリガ要素のノート欄に記載してある内容がExcelに出力されます。ガード条件による分岐がある場合には、ノート欄で「[はい]」のように、[と]の文字で囲って条件を明示し、その条件に該当する操作を記載して下さい。ガード条件による分岐がない場合には、条件の明示は不要です。ノート欄の内容が全てExcelに出力されます。

遷移パス抽出アドインのインストール・利用方法

遷移パス抽出アドインを利用するには、以下のリンクからアドインのファイルをダウンロードして下さい。インストール方法はこちらをご覧下さい
addin_STMTest.zip

このアドインは、Enterprise Architect13.0 ビルド1305以降で動作します。これより古いバージョン・ビルドでは動作しません。Excelは、2007・2010で動作確認しています。

利用例については、PDFドキュメント「ステートマシン図の整合性確保 マニュアル」をご覧ください。