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

<< 目次を表示 >>

ページ位置:  ソースコードの生成と読み込み > 振る舞いモデルからのソースコード生成 >

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

ステートマシン図からのソースコード生成の機能については、外部実行のステートマシン用の拡張テンプレートも利用できます。このテンプレートは、従来のテンプレートには含まれなかった、並行状態などにも対応しています。この新しいテンプレートは、Java, C, C++, C#, JavaScriptで利用できます。

 

 

利用手順:

リボン

ホーム > 設定 > オプション > プロジェクト > ソースコードの生成と読み込み > [言語名]

 

 

利用するテンプレートを切り替える

外部実行のステートマシン用の新しいテンプレートを利用する場合には、「拡張テンプレートの利用」をTrueに設定してください。Falseを指定すると、基本のテンプレートを利用します。

 

 

基本のテンプレートでの生成内容

クラス要素直下の状態マシン要素では、以下のような構造を持つソースコードを生成します。生成されたソースコードにより、状態の振る舞い(do, entry,exit)を実行するためのソースコードや、必要に応じて、状態遷移後の結果を生成します。

 

注意:

振る舞いモデルからのコード生成を有効にするためには、対象の状態マシン要素が、モデルブラウザで生成対象となるクラス要素の直下に子要素として配置されていなければなりません。

例えば、状態マシンをコード生成対象にするには、コード生成対象のクラス要素をダイアグラム内で右クリックし、「子ダイアグラムの追加 | 状態マシン」 を実行してステートマシン図を追加しなければなりません。

ソースコード生成の対象となる状態マシン要素は1つのみです。

 

項目

説明

enumの名前と生成内容

  • StateType - 状態マシン内の各状態が、このenumの定義として生成されます。
  • TransitionType - 状態遷移に影響のある遷移が、このenumの定義として生成されます。 例)上記ステートマシン図を含む状態マシン名がProcessOrderの場合、ProcessOrder_Delivered_to_ProcessOrder_Closed
  • CommandType - 状態が持ちうる振る舞いの種類(do, entry, exit)が、このenumの定義として生成されます。

属性の名前と生成内容

  • currState(型:StateType) - 現在の状態を保持するための変数です。
  • nextState(型:StateType) - 次の状態を保持するための変数です。そのときどきの状態遷移に応じた状態が変数に設定されます。
  • currTransition(型:TransitionType) - 現在の遷移を保持するための変数です。状態遷移に影響のある遷移に関する情報が、変数に設定されます。
  • transcend(型:Boolean) - 遷移が、異なる状態マシン間 (または サブマシン状態間)を越えて関係しているかどうかを通知するために使われるフラグです。
  • xx_history(型:StateType) - 状態マシン/サブマシン状態の各状態の履歴を保持する変数です。遷移が実行された最後の状態を保持します。

操作の名前と生成内容

  • StatesProc - 状態の一覧と操作に関する状態遷移の処理が生成されます。各状態の関数を呼び出すために、現在の状態が参照されます。
  • TransitionsProc - 遷移の一覧とその結果に関する遷移の処理が生成されます。それぞれの結果が呼ばれます。
  • <<State>> - 状態マシン配下にある各状態の操作です。これは、入力CommandTypeによる状態の振る舞いを示しています。また、その遷移も実行します。
  • initializeStateMachine - すべての属性を初期化する関数です。
  • runStateMachine - それぞれの状態を通じて繰り返し実行される関数です。そのときどきに応じて、その振る舞いや遷移を実行します。

 

このページでは、ステートマシン図からJavaのソースコードを生成したサンプルを掲載しています。

 

 

参照: