サンプル

<< 目次を表示 >>

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

サンプル

DMNについて、簡単なサンプルを利用し概要を紹介します。航空会社のチェックインカウンターでの予約を例とします。時間通りに飛行機が離陸することで、燃料やその他のペナルティなどの増加など、コストの増加を防ぐことができます。

 

上司からのメッセージが届き、エコノミークラスの座席がオーバーブッキングとなっていて、一部の乗客についてビジネスクラスあるいはファーストクラスにアップグレードして対応する必要が出てきました。では、どの乗客をアップグレード対象にするのでしょうか?この意思決定には、どのような条件を考慮する必要があるのでしょうか。この点について、意思決定要求図としてデシジョンモデルを記載してみました。

 

 

この図は問題を整理することに役立ちますが、チェックイン担当者はすべての条件を明確にして重み付けし、客観的な決定を下さなければなりません。ゴールドメンバーの乗客よりも、不満に思っている乗客を優先すべきか、あるいは到着後を考え乗り継ぎ便を予約している乗客を優先すべきか、等が考えられます。これらのルールはすべてデシジョンテーブル内に表現され、最終的にどの乗客が対象になるのか、アップグレード先はビジネスクラスなのかファーストクラスなのか、が決まります。これにより、意思決定が容易になり、ルールが明確に定義されて関係者が把握・同意しやすい形となります。今回の例では、話を単純にするために条件は2つのみとします。1つは乗客が過去1ヶ月間に搭乗した回数、もう1つはオーバーブッキングの人数です。

 

 

このテーブルは行と列で構成されています。列は大きく2つに分かれ、意思決定に必要な入力情報と、ルールが適用された結果の出力情報です。

 

このデシジョンテーブルはとても有用ですが、チェックイン窓口の担当者はこのデシジョンテーブルに従って、必要な全ての情報を抽出し、今すぐに答えをえることが必要です。もし、必要な全ての情報が集まったとしても、人間のミスで、このデシジョンテーブルで誤った行を参照してしまう可能性もあるでしょう。

 

Enterprise Architectでは、こうしたデシジョンテーブルからソースコードを自動生成し、アプリケーションとして実行することができます。これにより、デシジョンテーブルを手作業で適用する必要は無く、意思決定にあたり作業は不要になります。このソースコードをシステムに結合して利用することで、条件に該当する乗客が来た場合には、チェックイン担当者の画面に該当する旨を表示させるようにすることもできるでしょう。下の図は、業務担当者と技術担当者が、テーブルの定義が正しいかどうかをシミュレーションを通して確認している状況の例です。作成したモデルのテストには任意の数のユーザー定義のデータを利用することができます。

 

 

シミュレーションをステップ実行すると、それぞれの乗客(データ)が、デシジョンテーブルのどの行に該当したかを表示することができます。意思決定のルールが多数ある場合には、状況を把握しやすくなります。

 

 

意思決定のルールを変更する場合も同様です。例えばマーケティング部門が、長距離のフライトの乗客に何らかの報酬を出すことにした場合を考えます。意思決定要求図の内容は、新しい条件を含むように更新されます。デシジョンテーブルもそれに合わせて変更します。そして、ソースコードを再生成します。変更が終わり、システムに結合すると、新しいルールでアップグレード対象の乗客が決まります。ルールを把握するために、チェックイン担当者はデシジョンテーブルで状況を把握し続けることができます。