Enterprise Architectでデシジョンモデルの構築

<< 目次を表示 >>

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

Enterprise Architectでデシジョンモデルの構築

前述の「デシジョンモデリングの例」では、デシジョンテーブルを利用して意思決定をモデル化する方法を紹介しました。デシジョンテーブルでは、テーブル内の入力値が考慮中の入力値と一致する行を検索し、特定の出力結果を与えることで、意思決定がなされていました。

 

次にEnterprise Architectでこうしたモデルを作成する方法をみていきましょう。例として、航空会社のキャビンアップグレードの意思決定モデルを作成する過程を順を追ってみていきます。

 

この例には多くのモデル要素が含まれています。例えば、入力データ要素、入力データ(データ型の定義)を記述するための項目定義、意思決定要素、デシジョンテーブル定義を保持しているビジネス知識モデル要素などがあります。

 

 

意思決定要求図を作成する

以下、シンプルな意思決定要求図(DRD)の作成手順を紹介します。この例では、モデルウィザードは使用せず、モデルを最初から作成します。

 

#

操作方法

1

Enterprise Architectの画面右上の「すべてのパースペクティブ」ボタンから「要求 > 意思決定モデリング」を選択します。

(モデルウィザードが表示されますが、この例では使用しませんので、モデルウィザードを閉じます。)

2

新しいDMN図を作成します。「航空会社キャビンアップグレード」という名前を付けます。

3

ダイアグラムツールボックスを使用して、ダイアグラムにデシジョン要素を配置します。タイプとして「呼び出し」を選択します。この要素は、ビジネス知識モデル要素からデシジョンを呼び出すために使います。デシジョン要素の名前は「アップグレードキャビンの決定」にします。

(参考:シミュレーションの入力パラメータ)

4

入力データ要素をダイアグラムに配置します。入力データ要素の名前を「乗客」にします。

5

もうひとつ入力データ要素をダイアグラムに配置します。この入力データ要素は「キャビン状況」という名前にします。

6

ビジネス知識モデル要素をダイアグラムに配置します。タイプは「デシジョンテーブル」を選択します。この入力データ要素は「キャビンアップグレード方針」という名前にします。

7

デシジョン要素「アップグレードキャビンの決定」から入力データ要素「乗客」へ「情報要求」の接続を描画します。

8

デシジョン要素「アップグレードキャビンの決定」から入力データ要素「キャビン状況」への「情報要求」の接続を描画します。

9

デシジョン要素「アップグレードキャビンの決定」からビジネス知識モデル要素「キャビンアップグレード方針」へ「知識要求」の接続を描画します。

 

 

この段階で、次のようなシンプルな意思決定要求図になります。

 

 

ここまで作成したら、モデルを構成する各要素の詳細を設定します。

 

 

デシジョンテーブルを定義する

ビジネス知識モデル要素「キャビンアップグレード方針」をダブルクリックすると、「DMN表現」ウィンドウが表示され、空のデシジョンテーブルが表示されます。ここで、キャビンアップグレード方針のルールを定義します。

 

 

デフォルトの新しいデシジョンテーブルには、2つの入力列と1つの出力列、ヘッダー行と3つの空のルール行があります。

 

表の左端の列には、「適用方針」とルール番号が表示されます。

 

デフォルトでは、「適用方針」は「ユニーク」(U)です。「ユニーク」は、この例で使用する方針なので、そのままにしておきます。

 

「適用方針」の詳細については、「デシジョンテーブルの適用方針」のページを参照してください。

 

 

デシジョンテーブルの入力と出力に名前をつけてタイプを定義する

#

操作方法

1

「DMN表現」ウィンドウのツールバーで、「パラメータの編集」ボタンをクリックします。

「パラメータの編集」ダイアログが表示されます。

2

パラメータ「Input 1」を「オーバーブッキング乗客数」に置き換えます。

このパラメータのタイプを「number」に設定します。

3

パラメータ「Input 2」を「乗客あたりの先月のフライト数」に置き換えます。

このパラメータのタイプを「number」に設定します。

「パラメータの編集」ダイアログを閉じます。

4

列1で評価される入力表現を編集します。

ヘッダーセル(「Input 1」が表示されているセル)を選択し、もう一度クリックするか、F2を押して「編集」モードに入ります。セル内のテキストを全て選択し、スペースキーを押します。入力パラメータのリストが表示されます。「オーバーブッキング乗客数」を選択し、Enterを押します。列1の表現は「オーバーブッキング乗客数」に設定されました。

注意: 各列で評価される入力表現は通常、対応する入力パラメータを使用するだけですが、複雑な表現も使用できます。

5

列1の表現を右クリックして、データ型を「number」に設定します。

6

列2で評価される入力表現を編集します。

セル内のテキストを全て選択し、スペースを押します。入力パラメータのリストが表示されます。「乗客あたりの先月のフライト数」を選択し、Enterを押します。

列2の表現は「乗客当たりの先月のフライト数」に設定されました。

7

列2の表現を右クリックして、データ型を「number」に設定します。

8

デシジョンテーブルの出力の名前を編集します。

「Output 1」を「アップグレードキャビン」に置き換えて、Enterを押します。

9

デシジョンの出力のデータ型を設定します。

出力列のヘッダーを右クリックして、「string」を選択します。

10

デシジョンの出力の選択可能な値を設定します。

出力列ヘッダーのすぐ下(ただし行1の上)のセルで、出力の選択可能な値を定義します。「ビジネスクラス, ファーストクラス」と入力します。

なお、データ型が「string」として指定されていれば、値を引用符で囲む必要はありません。

 

 

デシジョンテーブルのルールを定義する

次の画像のとおりにテーブルのセルに値を入力します。

 

 

セルをクリックして選択し、もう一度クリックすると編集できます。

 

コピーする行を選択して('Shift +クリック'で追加選択可能)、右クリックして「ルールをクリップボードにコピー」を選択し、右クリックして「クリップボードからルールを貼り付け」選択すると、既存のルールをコピーして貼り付けることができます。

 

ルールの編集が終わったら、「デシジョンテーブルの保存」ボタンをクリックします。

 

最後に、「評価」ボタン  をクリックして、テーブル内のルールにエラーがないか確認します。

 

 

アイテム定義要素を作成する

各入力データ要素に1つずつ、計2つのアイテム定義要素をダイアグラムに追加します。1つの要素に「乗客定義」、もう1つの要素に「キャビン状況定義」という名前を付けます。

 

 

「乗客定義」のアイテム定義要素をダブルクリックして、定義を編集します。「DMN表現」ウィンドウが表示されます。

 

 

セル「乗客定義」を右クリックして、「子コンポーネントの追加」を選択します。子コンポーネントの名前を「先月のフライト数」に設定し、そのデータ型を「number」に設定します。「デシジョンテーブルの保存」ボタンをクリックして、変更を保存します。

 

同様に、「キャビン状況定義」のアイテム定義要素を編集して、「オーバーブッキング乗客数」という名前の子コンポーネントを追加し、そのデータ型を「number」に設定します。変更を保存します。

 

 

各入力データ要素のデータ型を指定する

入力データ要素「乗客」を選択します。プロパティウィンドウで、プロパティ 'typeRef'を選択し、参照ボタン[...]をクリックします。

 

 

データ型としてアイテム定義の 「乗客定義」を選択します。「OK」をクリックします。

 

同様に、「キャビン状況」のデータ型として「キャビン状況定義」を指定します。

 

 

デシジョン要素への入力を指定する

デシジョン要素「アップグレードキャビンの決定」を選択します。

 

「DMN表現」ウィンドウで、最初の列に「オーバーブッキング乗客数」というテキストを含むテーブル行に移動します。この行の2列目のセルをクリックして、スペースキーを押します。入力可能な値のリストが表示されます。「キャビン状況.オーバーブッキング乗客数」を選択しEnterを押します。選択した内容がセルに書き込まれます。

 

テーブルの2番目の行「乗客当たりの先月のフライト数」に対してもこのプロセスを繰り返し、「乗客.先月のフライト数」を選択します。

 

「デシジョンテーブルの保存」ボタンをクリックします。

 

「評価」ボタンをクリックします。

 

 

データセットを定義する

デシジョンモデルの「正確性」はテストすることが可能です。一連の代表的なデータセットを使用してシミュレーションを実行し、いかなる状況においても正しい結果になることを確かめることが可能です。

 

データ値の範囲内で、さまざまな名前で多くのデータセットを作成できます。

 

データセットの1つをデフォルト値として設定できます。

 

次に、入力データ要素ごとにデータセットを作成します。

 

#

説明

1

入力データ要素「乗客」をダブルクリックします。

「DMN表現」ウィンドウが表示されます。

2

「DMN表現」ウィンドウで、「データセットの編集」ボタンをクリックします。

「DMNアイテム定義のデータセットの編集」ウィンドウが表示されます。

3

「新規」 ボタンをクリックします。

新しいデータセットが作成されます。

4

必要に応じて、データセットの名前を上書きします。

タイプは「number」のままにします。例としてValueに3を入力します。

「OK」をクリックします。

5

入力データ要素 ‘キャビン状況'に対しても同様の操作を行います。例としてValueに4を入力します。

 

 

「シミュレーションの設定」の成果物を追加する

ダイアグラムツールボックスの「DMN 要素と接続」グループにある「シミュレーションの設定」の成果物を選択します。これをダイアグラムにドロップします。

 

ダイアグラムで「シミュレーションの設定」の成果物をダブルクリックすると、DMNシミュレーションウィンドウが開きます。

 

このウィンドウから、完成したデシジョンモデルのシミュレーションを実行できます。検証の実行、コードの生成、テストモジュールの生成も可能です。

 

#

説明

1

DMNシミュレーションウィンドウのツールバーにあるテキストフィールドに移動します。

2

ドロップダウンリストの下矢印をクリックします。

リストが表示され、この「シミュレーションの設定」に関連付けられたパッケージ内のすべてのデシジョンサービスとすべてのデシジョン要素が表示されます。今回の例でリストに表示されるのは「アップグレードキャビンの決定」だけです。

3

「アップグレードキャビンの決定」を選択します。

4

ウィンドウの本体に、デシジョンと選択されたデシジョンに入力が可能な入力データ要素が表示されます。

「保存」ボタンをクリックします。

5

「Value」列を使用して、入力値として定義済みデータセットの1つを選択し、「実行」ボタン をクリックすると、選択したデータセットを使用してシミュレーションを実行できます。

 

 

参照: