▲ このウインドウを閉じる |
Oaks may fall when reeds stand the storm. |
(1) 現行の画面・帳票を インプット として、T字形 ER 図を作成する。
(1) 再構築の目的 (再構築が実現しなければならない目的)
(1) T字形 ER 図 (1) SWAT チーム の人数は、10人とする。
(2) [ 1,000,000 ステップ くらいの アプリケーション・システム なら、]
それを実現するためには、まず、プログラム の作成量を、大幅に削減しなければならなかった。幸い、適切な データ 構造が用意されていれば、(手続き型言語を使って作成してきた) プログラム の ソース・コード の 70%を削減することができる [ この数値は、実態調査をした報告値である ]。(注 7) 大型汎用機の環境や クライアント・サーバ 形態では、小生は、プログラム の再利用を考えてはいなかった。(プログラム の ソース・コード を大幅に削減して、しかも、ソース・コード は、「nested-IF」 のない構成なので、) 「プログラム は使い捨て」 という考えかたをしていた。そういう やりかた をしてきて、システム 作りの生産性は、従来比、平均 3倍を実現してきた--或る クライアント では、従来比 8倍という報告もあった。 2000年頃から、(コンポーネント を使った Java プログラム 生成の) フレームワーク が出てきて、「プログラム の再利用」 が論点になってきた。小生の クライアント が、「フレームワーク を使って、RAD ができるどうか」 を検証しているが、コンポーネント を使って、生産性を、どのくらい向上できるか、という点は、今回、測量していない。(注 8) プログラミング・パラダイム として、以下の 2つを考えることができる。
(1) 構造的 プログラミング 複数の ファイル を読み込んで、レポート などの アウトプット を手続き型言語を使って作成する際、構造的 プログラミング が多く用いられてきた。 構造的 プログラミング は、ソリューション を第一義に考えて、ソリューション を手続き的に変換して、変数のなかに値を代入し、1つずつの ステップ を実行する やりかた である。1つずつの ステップ を実行する際、「場合分け」 を網羅して、コントロール・フロー は、「判断 (IF) と繰返し (ループ 制御)」 の操作を基本とする。「データ の型 (構造化)」 は、問題に即応した型が定義される。 いっぽう、「抽象 データ 型」 は、データ に固有な操作も同時に扱い、データ と プロセス を カプセル 化する やりかた である。
「アルゴリズム の定義表」 のなかに記述される (テーブル の 「関係」 のなかで成立する--すなわち、複数の テーブル を対象にした--) プロセス は、できうるかぎり、(JOIN および PROJECTION を使って、) データ に対する I/O のみで終わるように配慮しているが、系列 (関係) のなかでしか検証できない バリデーション・ルール もあれば、系列 (関係) のなかでしか成立しない アルゴリズム も、多々、ある。 モジュール 化は、「再利用」 を目的にしているのではなくて、(環境が変化したら、) 修正しやすい構造を作ることが目的ではないか。
おそらく、(フレームワーク を使う ユーザ にしてみれば、) 論点になるのは、「アルゴリズム の定義表」 が、コンポーネント を使って速く作ることができるかどうか、という点にあるのではないか--あるいは、「アルゴリズム の定義表」 を、コンポーネント を使って作ることができないとしても、それ以外の プロセス (プロトタイプ 作成や画面作成とか、アトリビュート・リスト の入力とか) が、コンポーネント を使って生産性を高めることができれば、フレームワーク は有用である。
(注 2)
(注 3)
(注 4)
(注 5)
(注 6)
(注 7)
(注8)
|
▼ このウインドウを閉じる |