今日は、プログラムの話です。
データ中心で業務アプリケーションの「プログラム単位=モジュール」を考えて見ます。
すでに何度か説明しているように、データ中心では、「データのあるところに処理がある」と考えます。
「データのあるところ」は、処理を行った結果の「データの組」を指します。そして、この「データの組」に対して処理をカプセル化して考え、1つのモジュールを導き出します。
では、どのようなデータの組が考えられるでしょうか。
1.画面や携帯電話からデータベースに登録した結果のデータの組
2.あるデータから別のデータを計算した結果のデータの組
3.データベースから画面や帳票に出力した結果のデータの組
4.エンティティの整合性をチェックした結果のデータの組
5.操作対象者の正しさを確認した結果のデータの組
6.実施した処理の記録を残すためのデータの組
プログラム処理を定義するためには「インプットデータとアウトプットデータ」の両方が必要です。たまたま処理結果のデータの組が同じになっても、インプットデータが異なれば、異なるモジュールとして認識します。
インプットデータ、アウトプットデータの両方が実装技術に独立に記述されていればいるほど、業務アプリケーションのモジュールは安定していると言えるでしょう。良く使うテクニックでは、読み書きを表す命令文を特定のOSやミドルウェアに依存しないようにしておきます。この場合、特定環境向けのアクセス専用モジュールを別途用意します。
ちょっとだけ考察。
処理(=機能)は端的に言えばDO(する)ですが、もう少し細かく言えば、「インプットを○○する、結果としてアウトプットがでる」と記述できます。
モジュールの1単位を考えるとき、データ中心は「アウトプットの何」の異同を重視し、オブジェクト指向は「○○する」の異同を重視しているような気がします。特別な根拠はありませんが、そんな気がします。
























