このウインドウを閉じる

All is well that ends well.

 
 プロトタイプ (prototyping) とは、本稼働用 (production run) システム を作る前に、実験的ではあるが、実際に稼働する プロトタイプ (原型) を作り評価する プロセス をいう。
 プロトタイプ の目的は、ユーザ 要件 (requirements) を明確にする点にあるとされているが、小生は、screen-painting を重視して、「インフォーマル・データ」 を捕捉することを目的にしている。(注 1)

 1980年代、プロトタイプ が提示された理由は、 SDLC (System Development Life Cycle) を前提にした waterfall モデルが現実にそぐわない、という点にあった [「ベーシックス」、2004年 2月 1日、284 ページ参照 ]。(注 2)

 さらに、1980年代なかば、CASE ツール(注 3)が提示されたとき、 SDLC において、上流工程用 ツール (Upper CASE ) と下流工程用 ツール (Lower CASE ) の接続が論点になって、Lower CASE の ジェネレータ が、プロトタイプ を搭載していて、Upper CASE (分析・設計 ツール)と Lower CASE (ジェネレータ) が、要件定義の手段を、それぞれ (べつべつに)、提示した。
 Upper CASE は、job-analysis の要件定義を提示し、Lower CASE は、プロトタイプ の要件定義を提示した。

 システム・エンジニア が、システム 化の対象になっている事業を的確に記述できないなら、前回、述べたように、エンドユーザ が作業日報を記述して、仕事の網羅性を検証して、EDP 化の対象を指示したならば、プロトタイプ を使うほうが、(システム・エンジニア が作成する曖昧な概念図に比べて、) 的確である。
 しかも、プロトタイプ は、(エンドユーザ が隠蔽している) インフォーマル・データ を、screen-painting を使って捕捉できる強みがある。

 プロトタイプ には、以下の 3つのやりかたがある。

 (1) 使い捨て型 (throw-away)
 (2) スケルトン 型 (nucleus、skelton)
 (3) コンポーネント 型 (component)

 1980年代では、技術的に、コンポーネン ト型は実現されていなかったので、ジェネレータ は、スケルトン 型を搭載していた。1990年代終わり頃から、プロダクト として、(プロトタイプ を配慮した) フレームワーク が マーケット に出てきて、プロトタイプ を使いながら、コンポーネント 型 プログラム 生成を実現できるようになった。

 Waterfall モデル が現実にそぐわないので、小生は、プロトタイプ を前提にした RAD(注 3)を、いままで (大型汎用機の環境および クライアント・サーバ 形態では)、実地に使ってきた。しかし、(情報が、インターネット を経由してやりとりされる) ウェッブ 環境のなかで、プロトタイプ を配慮した プロダクト がなかったので--実地の システム 作りと、システム 作りを支援するはずの プロダクト のあいだで、大きな乖離があって--、苛々していたのだが、 小生の或る クライアント が、或る フレームワーク を使って、 RAD を実現できることを検証してくれた。その クライアント が使った フレームワーク は、Webtribe (メディア 情報開発 株式会社)である。WebTribe には、Visual Frame という プロトタイプ を配慮した プロダクト が製品群のなかに用意されている。

 プロトタイプ は、エンドユーザ と ITの接点である。プロトタイプ は、エンドユーザ が、みずからの要件を、具体的に、指示して検証できる function である。

 システム を作る際、エンドユーザ の要件を的確に取り込む 1つの やりかた として、以下の手順を考えてみてほしい。

 (1) システム 化の対象 (事業) の網羅性を検証する。(作業日報の作成)
 (2) システム 化の対象のなかから、EDP 化対象を選ぶ。
 (3) EDP 化対象のなかから、プロトタイプ 対象を選ぶ。
 (4) プロトタイプ 画面(および他の画面・レポート)、帳票ならびに ファイルを
    対象にして、データベース 構造を作成する。
 (5) アトリビュート・リスト を作成する。
 (6) アルゴリズム の定義表を作成する。

 以上の作業は、どのような IT 技術を使おうが、事業を EDP 化する基本的な作業である。以上の作業が終わってから、ツール (フレームワーク) の使いかたが トピック となる。ユーザ 要件の取り込み (プロトタイプ) を配慮して、 RAD を実現する フレームワーク として、 Visual Frame と WebTribe を お薦めする。

 (2004年6月16日)

 
(注 1)
 フォーマル な コンピュータ・システム が信用できない数値を出力するので、エンドユーザ は、みずからの仕事を守るために、フォーマル な コンピュータ・システム とはべつに、インフォーマル な システム を作っている。そのために、実地の事業を制御している情報が、エンドユーザ の パソコン (あるいは、手作成の レポート) のなかに隠蔽されてしまっている。事業を実地に制御している インフォーマル な情報を フォーマル 化しなければ、いくら、最高の技術を使っても、コンピュータ・システム は信頼されない。
 インフォーマル な情報を取り込むためには、システム・エンジニア が曖昧な概念図を作成するよりも、エンドユーザ が、みずから、screen-painting したほうが良い。すべての画面を プロトタイプ の対象とするのではない。プロトタイプ の対象となる画面は、画面全体の 20%程度である。

(注 2)
  SDLC とは、System Development Life Cycle の略称。
 具体的には、システム作りの工程を、いくつかに割って--たとえば、分析工程・設計工程・製造工程など--、前の工程を、順次、凍結しながら、後の工程に進む やりかた である。

(注 3)
 CASE とは、Computer-Aided Software-Engineering の略称。
  SDLC の全自動化を狙ったが、実現できなかった。

(注 4)
  RAD とは、Rapid Application Development の略称。アプリケーション・プログラム を速く作る やりかた。
 当時 (1980年代)、 RAD を実現するために、ジェネレータ や簡易言語を使っていた。
 プロトタイプ は、 SDLC を前提にすれば、製造工程のなかで使うとされているが、プロトタイプ を最初の段階 (ユーザ 要件の捕捉) として使い、プロトタイプ を使って得られた実地の情報を前提にして、データ 構造を作る やりかた が、SDI/RAD である。
 的確な モデル (データ 構造) を前提にしないで、プログラム を速く作ることを狙えば、たびかさなる仕様変更の渦に落ち込んでしまう。プロトタイプ を使うなら、かならず、データ 構造は、最初の段階で作成されていなければならない。したがって、データ 構造は 、(プロトタイプ を前提にして、) 最初の段階で作られ、データ 構造を前提にして--的確なデータ構造が用意されていれば、従来の プログラム の ソース・コード は、70%くらい削減でき--、アルゴリズム を作成するので、 RAD は「高速 DOA 」ということができる。

  このウインドウを閉じる