2004年 2月 1日 作成 | データ 設計法 (業務分析と概念設計) | >> 目次 (テーマ ごと) |
2008年 3月 1日 補遺 |
(1) 分析工程 (analysis)
以上の (一連の) 手順を総括して、SDLC (System Development Life Cycle) とよぶことがある。
ちなみに、システム を作るための プロセス・モデル は、waterfall モデル のみではない。
(1) 成長 モデル (evolutional model) 成長 モデルは、ソフトウェア の性質を以下の 2つの類型として分類する。
(1) P 型
P 型とは、仕様が当初から固まっていて変更がない性質をいい、E 型とは、仕様が のちになって 変更される性質をいう。「仕様を凍結する」waterfall モデルは、P 型向きであるが、E 型向きではない。E 型 ソフトウェア の作成は、仕様を凍結しないで、変更を是認して「工程を繰り返す」 という点に特徴がある。つまり、フィードバック (feedback) を前提にした やりかた である。したがって、プロジェクト の スケジュール が組みにくい。
螺旋 モデル は、waterfall モデル と成長 モデル を融合した やりかた である。
花弁 モデル は、ソフトウェア・データベース を構築する点に特徴がある。ソフトウェア・データベース のなかに 「情報 (SDLC の アウトプット)」 を集積して、その データベース を中核に置いて情報を参照・更新しながら、(SDLC の) それぞれの工程を任意に繰り返す。つまり、成長 モデル や螺旋 モデル を導入するための適用 モデル である。 契約 モデル は、発注者と受注者との間で合意される契約を基礎として、システム 作りの過程を管理する やりかた である。すなわち、発注者は、仕様・技術情報 (IT ミックス)・期限を示して、受注者は、成果物を納入する。 パフォーマンス・モデル の 「パフォーマンス」 というのは、「上演」 という意味である。つまり、パフォーマンス・モデル は、演劇のやりかた を適用している。「練習・実演・反省」 という過程が繰り返される、という考えかたである。OJT (on the job training) とか 「仕事の引継ぎ」 などの技術移転を配慮した考えかたである。
(1) トップダウン 手法(* 2)
(2) ボトムアップ 手法(* 3) これらの手法が特徴とする点は、「構造化概念 (structured analysis)」 である。しかも、「function」 を──「関数」 という意味ではなくて、「プロセス の作用」 という意味で使っているが──記述する やりかた である。そして、プロセス の構造化が、事業のやりかた を記述するためには、やりやすい、と思い込まれた (oversimplification) のであろう。
1つの構造として、1つの階のなかで (leveling) 扱われる モノ は、同じ範疇の モノ (整合的) でなければならない。 1970年代には、ER 手法 (チェン氏) と セット・アット・ア・タイム 法 (コッド 氏) が提示された。ER 手法は概念設計のなかで扱われ、セット・アット・ア・タイム 法は データベース 設計論として扱われている。いずれの手法も、「モノ」 と 「関係」 を前提にした考えかたであるが、ER 手法は、モノ を 「entity (主体集合)」 として考え、関係を 「relationship (関連)」 として考える点が特徴であり、セット・アット・ア・タイム 法は、モノ を (atomic な) 「属性集合」 として考え、関係を 「relation (関数)」 として考える点が特徴である。ER 手法では、主体集合を生成する判断規準として identifier が使われ、セット・アット・ア・タイム 法では、tuple を形成する判断規準として primary-key が使われる。いずれも、モノ を認知する判断規準を提示している。ただ、論点になるのは、identifier あるいは primary-key として、どのような データ を使うか、という点である。 コッド 正規形では、tuple の整合性を検証する規準として、「関数的依存関係 (functional dependency)」 が使われる。チェン ER では、しかじかの性質 (attribute) が、かくかくの主体に帰属するかどうか、という点を判断する規準はない。数理 モデル (コッド 正規形) は、認知基準も検証規準も提示できたが、関数を使ったがゆえに、(現実の データ を対象にした際に生じる) 「半順序」 が問題点になった。いっぽう、意味論 モデル (チェン ER) は、現実の事態を記述する際に、認知の規準を導入したが、(関連を記述するためには、現実の事態を対象としているので、) 関連を認知する規準を提示できなかった。 チェン ER が、「現実の事態を記述する」 意味論の技法として、概念設計のなかで使われるとすれば、上述した構造化手法に対して、アンチ・テーゼ となる。すなわち、(システム 作りのなかで、データベース 作りを主体にして考えるなら) チェン ER を作図してから (analysis 段階)、コッド 正規形 (design 段階) を作成する、という手順になる。ちなみに、逆の手順 (コッド 正規形 → チェン ER) は成立しない。 コッド 氏は、意味論を毛嫌いしていたそうである (小生も、意味論を毛嫌いしている)。数理 モデル を信奉する コッド 氏が、意味論を毛嫌いした理由は、おそらく、「(意味論では) 構造を検証する規準がない」 という点を嫌がったのではないでしょうか。およそ、モデル というなら、以下の 2点を実現していなければならない。
(1) 無矛盾性 (構造のなかで、A ∧ ¬A が起こらない、ということ)
チェン ER 手法が 「作図の作法」 であって、「作図の技術」 ではない、と非難される理由も──少なくとも、小生は、そう非難する一人であるが──、モデル としての 「完全性」 がないからである。
以上をまとめれば、analysis とよばれている やりかた が、いずれも、「技術」 ではない、ということである。したがって、これらを ダイアグラム の記述作法とよぶことは良いが、モデル とよぶことには、小生は合点がいかない。 もし、現実の事態 (事業) を対象にしないで、「情報」 を対象にしたら、仕事自体の有用性を判断できない、というのであれば、「情報」 を使う目的を調べれば、(仕事のなかで使う情報と事業の目的とを対比すれば) 仕事の有用性を判断できる、と言っておきましょう。 なお、小生は、job-analysis とか conceptual design に対して関心がない、という点を正直に述べておきます。
(* 1)
それぞれの モデル の詳細については、以下の文献を参照されたい。
(* 2)
(* 3)
ちなみに、小生は、ビジネスモデル 手法として、Holland 式を学習して、DFD では、Gane/Sarson 法を、decomposition では、Warinier/Orr を徹底的に教育された。それぞれの手法の文献も、丁寧に読んだ。したがって、それらの手法について、理論も技術も習得している。
(* 4) |
[ 補遺 ] (2008年 3月 1日)
前回述べたように、私 (佐藤正美) の立場は 「論理的意味論 (logical semantics)」 です。すなわち、私は、数学 (あるいは、ロジック) の観点に立って、「モデル」 を考えています。したがって、以下の 2点を提示しない やりかた を 私は 「モデル」 として認めない。
(1) 構文論 (生成規則)
ただし、私は、「概念設計」 の やりかた を知らない人たちが、私の考えかたに同調することを良しとしないので、「概念設計」 の やりかた には、どういう やりかた があるのかを一覧表示して、かつ、それぞれの やりかた を説明した原典を記載しました。ちなみに、私は、それらの原典の ほとんど を読んでいますし、本 エッセー のなかで記したように、それらの やりかた のいくつかを、かつて、実地に使ってきました。そして、それらの やりかた を捨てたという次第です。 「あなたが作成した 『構成』 は、『無矛盾で、完全である』」 本 エッセー のなかで示した SDLC を前提にするならば──しかも、「分析 → 設計 → 製造」 という waterfall を前提にするならば──、「製造」 が 「真」 であるためには、「設計」 が 「真」 でなければならないし、「設計」 が 「真」 であるためには、その前提となる 「分析」 が 「真」 でなければならない、というふうに要請するのは当然のことでしょう。なぜなら、われわれは、「製造」 では、コンピュータ のなかに、「現実的事態を モデル として記述した 『構成』」 を実装するのだから、その 「構成」 のなかに、矛盾をふくんでいることは回避されなければならないから。 「モデル」 の根底にある哲学まで遡って考えてみれば、「構成 (モノ と関係)」 の哲学として、関係主義 (関係が一次的、モノ は関係のなかの変数) と実体主義 (モノ が一次的、関係は 二次的) がありますが、私は、このふたつのあいだで 「揺れている」 ようです。さきほど、「真」 という ことば を使いましたが、「モデル」 では、規則 (生成規則、指示規則) に対応して、以下の 2つの 「真」 概念があります。
(1) 「導出的な L-真」 (生成規則のなかで争点になる 「真」) (2) の 「真」 は、経験論的な言語では──すなわち、現実的事態を記述する モデル では──、モデル のなかの記号が、かならず、現実的事態 (モノ) を指示することを要請した 「真理条件」 です。そして、データ 設計上、争点になるのは、「モノ」 として認知される対象はなにか、という点です。少なくとも、事業過程・管理過程を モデル 化するのであれば、それらの 「モノ」 は、ひとりの システム・エンジニア の視点で判断されるはずがない。この意味において、私は、システム・エンジニア が オノマシオロジー の やりかた を 「いまでも」 採用していることに対して疑問を抱いています。オノマシオロジー の やりかた は、1970年代に、コンピュータ が、いまだ、事業過程・管理過程のなかで使われていなかったときには 「ききめ」 があったでしょう──というのは、事業過程・管理過程の どの領域に対して、コンピュータ を使えば役立つかを調べなければならなかったので (ただし、それでも、私は、そういう調査では、「作業日報」 があれば充分だと思っていますが)。 本 エッセー のなかで述べましたが、私は、いわゆる 「概念設計」 の やりかた を認めていない。そういう言いかたが単なる独断とみなされる危険性があるのなら、以下のように言い換えても良いでしょう。すなわち、概念設計で示された 「構成」 が現実的事態を 「正しく」 記述しているという証明をしてくれないかぎり、私は概念設計を信用しない、と。 |
<< もどる | ベーシックス | すすむ >> | |
▼ データベースの基礎知識 |