ビジネスマンのためのビジネスルール入門 #26

k.shirai

前回は、意思決定ロジックの仕様化の1つ目として、テーブル形式を活用したビジネスルールの記述方法を取り上げてみました。今回は、意思決定フローの定義と意思決定ロジックの共有化について少し触れてみたいと思います。

意思決定フロー
(クリックして拡大)

意思決定フローの定義

このブログシリーズの第10回目において、ビジネスプロセスとは異なり、意思決定にとってそのロジックを構成するルールの実行順序は問われないことをお話ししました。ただし、これは意思決定のビジネス要件レベルの話であり、設計や実装には必要となってきます。多くの商用BRMS製品では、ビジネス知識(つまりルールセット)内部の実行順序はその製品の独自アーキテクチャーによって決められています。具体的には、米国カーネギーメロン大学のチャールズ・フォーギー教授が提唱したRETEアルゴリズムを多くの商用BRMS製品は採用しています。

 

一方、ルールセットの実行順序は、システム設計者によって定義することができるようになっていることが多いようです。ルールセットの実行順序に唯一の正解はありませんが、意思決定要件がトップダウンから分解されていくのに対し、意思決定フローは反対にボトムアップから定義していくのが一般的だと思います。具体的には、意思決定要件ダイアグラムの最も下位にあるルールセットからスタートし、最も上位のルールセットで終わるという順序です。

ビジネス知識の共有
(クリックして拡大)

意思決定ロジックの共有

システム設計をしていくと、複数のタスクから頻繁に呼び出されるサブルーチンが存在することに気付く場合があるかもしれません。ビジネス知識(ルールセット)においても同じようなことが起こります。たとえば、図のように2つの意思決定タスクに必要とされる同一のビジネス知識(ルールセット)が見つかることがあります。このような場合、どのように設計したら良いのでしょうか?

 

重複部分が少ない場合は、あえて無視して別個のものとして取り扱うことができます。また、最初に実行された結果をシステム上のどこかに一時的に保存しておき、その後に実行された場合にその結果を再利用するという方法もありそうです。もし重複部分が多く、活用する商用BRMS製品の機能の1つとして共有機能があれば、それを活用することをお薦めします。その場合、BRMS製品のリポジトリ(ルールの保管庫)内のディレクトリ上に共有するルールセットのディレクトリを定義しておき、他のルールセットとの紐付けを行うことになります。

 

次回は、意思決定ロジックのシステマチックな改善について触れてみたいと思います。

 

(マーケティング担当:白井)

次のBlog

このブログは、弊社が提供するトレーニングコース「BRMS入門」からの抜粋です。ご関心のある方は、こちらをご覧ください。