akon2.00βのよっぱらいの戯言

色しょく是食、食しょく是色 当サイトではアフィリエイトプログラムを利用して商品を紹介しています。

サービスとルール

DIコンテナはステートレスに作成しなければならない。つまり、サービスをステートレスになるまで、分解する必要がある。これがSOAの要である。では、どうやって分解するか。これはルール駆動で分解する。つまり、サービスがひとつの完結したルールになるまで分解する(ルールの正規化と呼ぶ)。

まず、ロバストネス分析をして、BCEを明確にする。Cが業務フロー、Eが業務ロジックとなってくれるとありがたいがまず単純には分解できない。さらに、いきなりロバストネス分析はできないので、ユースケース(記述、シナリオ)を書く。ここで、ユーザからルールをヒアリングするわけだが、システム化を望んでいるユーザに単刀直入に「ルールを教えてください」といって「はい、なになにです」と回答できるユーザは少ない。このフェーズは、ヒアリングテクニックに依存しているが、担当者に伝票と帳票を持ってきてもらって、それらの事前条件と事後条件をヒアリングする。これをもとルールを組み立てる。

  • ルール

ここでルールについて述べておく。業務フローを規定しているのも業務ロジックを規定しているのもルールである。問題は、文書化されていなかったり、例外ルールが黙認されていたり、そもそもルール化されていなかったり、担当者によってルールが異なっていたりすることである。実は、ユーザはこの不文律なり、矛盾するルールを外部の圧力でなくしたいと考えていたりする。見積もりにおける割引率は、担当者によってルールがあるので、パーソナライズが求められたりもする。この意味から、プロセスリエンジニアリングと大上段に構えずとも、システム化のために業務の改善を提案する必要がある。