外部実行の状態マシンは、複雑な状態マシンについてソースコードを生成し、実行・シミュレーションするための強力な手段です。Enterprise Architectのシミュレーション機能でステートマシン図のシミュレーションを行うことと比較すると、外部実行の状態マシンの機能は実際のソースコードを生成し、コンパイル・実行する点が異なります。そのため、既存のライブラリやドライバなどと組み合わせたシミュレーションができます。シミュレーション中の状態の変化は、Enterprise Architect内で表示されます。ソースコードの生成や実行はEnterprise Architectから簡単に行うことができます。この機能は、いくつかのプログラム言語に対応し、それぞれのプログラム言語ごとに外部実行のステートマシン用のテンプレートがあります。必要に応じて、テンプレートの内容をカスタマイズできます。
外部実行の状態マシン機能の概要
外部実行の状態マシンの機能を利用するためには、いくつかの基本的な知識が必要となります。
ここでは、この機能を利用するために必要となる基本的な知識や操作・手順について概要を説明します。
項目 |
説明 |
クラス要素と状態マシンを構築する |
最初に、UMLのクラス要素と、そのクラス要素が持つ状態マシン要素を定義する必要があります。これが、ソースコードの実体と振る舞いを示すことになります。複数のクラスを作成することもできますが、それぞれのクラスに対して状態マシン要素を保持し、振る舞いを定義する必要があります。 |
外部実行の状態マシン要素を作成する |
クラスと状態マシン要素を定義したら、次に外部実行の状態マシンという種類の成果物要素を作成する必要があります。この要素は、動作対象となるクラスのインスタンスを関連づけるために利用します。また、インスタンスが持つ属性の初期値やインスタンス間の関連を定義するためにも利用します。 なお、1つのクラスから複数のインスタンスを作成し、外部実行の状態マシン要素に配置できます。これにより、必要に応じて異なる状態を持ち、やりとりをするようなシミュレーションを実現できます。 |
ソースコードを生成しビルドする |
生成可能な言語は、JavaScript, C, C++, Java, C#です。いずれの場合でも、このページで説明する機能を利用できます。 いずれの言語でも、モデルの内容からソースコードを生成しビルドを行います。また、生成の際には、Enterprise Architectが自動生成するソースファイル以外への変更は行いませんので、独自に作成したソースファイルが影響を受けることはありません。 ソースコードの生成時には、状態マシンを制御する独自のフレームワークのソースコードも出力します。これにより、実行可能なソースファイル群が出力されます。 |
状態マシンを動作させる |
ソースコードの生成とビルドが完了したら、実際の振る舞いを確認します。動作中にトリガ(イベント)を発行し、さまざまなシナリオに対する振る舞いを確認できます。JavaScript, C, C++, Java, C#のいずれの場合でもこの機能を利用できます。 |
状態マシンの動作を可視化する |
外部実行の状態マシンは、Enterprise Architectのシミュレーション機能と連動します。ステートマシン図上で、実行時の状態およびその振る舞いを確認できます。複数の状態マシンが同じ状態にある場合にも判別可能になっています。動作速度を調整できます。 |
状態マシンをデバッグする |
例えば、ある状態にあるべき場合にその状態とは異なる状態にある場合や、ある遷移が発生すべき場合に遷移しない場合など、デバッグを実行して動作の詳細を確認できます。この機能は、状態マシンのソースコード生成に対応しているすべての言語で利用できます。 |
注意: |
外部実行の状態マシンを利用したシミュレーション機能を利用するためには、ユニファイド版以上のエディションが必要です。 |