ビジネスルール2つの視点

 現在、ビジネスルールを謳ったシステム開発といったとき、二つの視点があるように思います。ひとつは、ビジネスルール管理システム(BRMS)のベンダがよく言ういわゆる実装レベルでのアプローチ、そしてもうひとつは、上流の分析や設計から一貫してビジネスルールを明確に意識して行う「ビジネスルールアプローチ」です。もっとも、それぞれは相反するものではなく相補的、あるいはもっと言えば目指すところは一緒なのかもしれません。たとえて言えば、オブジェクト指向プログラミングとオブジェクト指向分析/オブジェクト指向設計との関係といったところでしょうか。「ビジネスルールアプローチ」で分析/設計から一貫して行い、実装時に抽出されたビジネスルールをそのままBRMSに載せるということは普通に行われます(むしろ推奨されています)。また、一方で実装レベルのビジネスルールといっても、当然分析、設計でルールを抽出してくるわけで、その意味ではビジネスルールによる表現が実装時にもっとも効果を発揮する部分を中心に「ビジネスルールアプローチ」を用いたとも言えるでしょう。

 さて、なぜここで同じようなことをあえて二つの視点と言ったのかと言うと、ビジネスルールを謳ったシステム開発を理解しようとしたとき、最近個人的には、上記の二つを分けて考えたほうが理解がしやすいのではないかと思い始めたからです。実装レベルでのビジネスルールを考えたとき、ルールによる仕様の表現が通常のプログラミングと比較して理解しやすく、変更が容易であることが強調される一方、Barbara von Halle や Ronald G. Rossが提唱するいわゆる「ビジネスルールアプローチ」では、ルールでのシステム仕様表現が、その拠ってたつところのビジネスポリシーやビジョンと自然につなげられることが強調され、より経営・ビジネスの視点に重点がおかれています。

 この二つの視点の違い、どこから来たのかというとそのルーツの違いからなのではないかと思っています。実装でのビジネスルールは、そもそも以前から使われていたルールベースのエンジンをビジネスルールを記述するのに利用したのが最初であり、一方、「ビジネスルールアプローチ」は、EAで有名なZachmanやRonald Ross, Barbara von Halleら が参加している Business Rules Group の活動がルーツとなっており、その志向はビジネスのモデリングに向かっていると言えましょう。

 今後、上記二つの視点を意識しながら少しずつビジネスルールとはなにか、ビジネスルールによるシステム開発のアプローチとは何かを考えていきたいと思います。