DMNモジュールとクラス要素の連携

<< 目次を表示 >>

ページ位置:  その他の記法・モデリング > DMN >

DMNモジュールとクラス要素の連携

デシジョンモデルを作成し、シミュレーションを実行して内容についての確認し、さらにソースコードを生成してテストまでを実施したとします。

 

こうして作成したDMNモジュールをUMLのクラス要素と統合し、クラス要素からソースコード生成する場合にDMNモデルの内容を取り込むことができます。クラス要素に状態マシン要素を追加し、ステートマシン図で振る舞いを定義することで、外部実行のステートマシン機能とDMNのモジュールを連動させることができます。

 

このページでは、DMNモデルとUMLのクラス要素を連携させる概要を紹介します。

 

 

クラス要素

ここでは、クラスApplicantが定義され、その操作として AffordabilityForProduct があるとします。この操作は、対象者がローンを組むことができるかどうかを判定します。

 

その定義の一例が次のクラス要素です。

 

 

クラスApplicantには2つの属性があります。これらの属性の値は、対象者の月収や支出・既存のローンの返済や年齢・就職状況などから導き出される数値です。この例では、この範囲については省略し、属性の初期値として値を設定してあります。モデルテンプレートの「DMN Complete Example」には、この範囲の内容が含まれます。

 

 

DMNモデル

この例では、UMLのクラスと連携可能な2つのDMNモデルがあります。

 

このDMNモデルは借入金・利率・期間を元に月々の返済を計算します。入力データ・デシジョン・ビジネス知識モデルから構成されます。

 

 

このDMNモデルは対象者のリスクスコアを元に、ローンの毀損計数を導き出します。入力データ・2つのデシジョンと2つのビジネス知識モデルで構成されます。

 

 

注意:

この例は、DMNモデルとUMLのクラス要素を結びつける点に主眼を置いています。DMNについての詳細は説明しません。

モデルテンプレートの内容をご覧ください。

 

 

 

生成ボタンを押し、出力サブウィンドウの結果を確認します。

DMNモジュールのコンパイルに成功したとして話を進めます。

 

 

注意:

このモデルではビルトイン関数PMTを利用していますので、コンパイル時にはDMNライブラリを含める必要があります。

 

 

「生成」ボタンを押すと、出力サブウィンドウに、DMNモジュールのコンパイルに成功した旨のメッセージが表示されることを確認してください。

 

 

DMNとクラスの結びつけ

2つのDMNSimConfiguration要素をクラス図に配置します。

 

 

クイックリンク機能で、クラス要素から成果物要素に対して依存の接続を作成してください。

依存を作成すると、要素の属性や操作にリンクダイアログが自動的に表示されますので、DMNモジュールに結びつける操作を選択してください。

 

 

この動作は、以下のようになります。

 

 

 

結びつけが完了すると、操作の既定のコードの情報の編集時にインテリセンスで、DMNモジュールを入力可能になります。インテリセンスを呼び出す方法は以下のいずれかです。

 

 

インテリセンスでは、以下の内容が選択肢として表示されます。

 

これにより、ソースコードの記述中に容易にDMNでの定義内容を呼び出すことができます。

 

 

ここでは、Installment_Calculatorから Get_Required_monthly_installment() を設定しています。

 

これが操作の最終的な実装になります。

 

 

 

クラスのソースコード生成

クラスのソースコード生成の結果は次の通りです。

 

 

 

注意:

ステレオタイプdmnBindingの操作の場合には、ソースコード生成が上書きの場合でも同期の場合でも、常に内容が更新されます。

 

 

参照: