Skip to content.

Sections
Personal tools
You are here: Home » 技術文書 » オブジェクト指向 » オブジェクト指向の再定義 » オブジェクト指向の再定義[8]

Document Actions
オブジェクト指向の再定義[8] - 分析とは何か、設計とは何か
ソフトウェア開発を「問題解決」、と見ると、

問題→解




という活動だと考えられる。左の「問題」は、問題空間にあり、右の「解」は 解空間にある。設計とは、このマッピングを行なう活動だと考える。では、分 析とは何か。

実際には、(ソフトウェアでは特に)問題が複雑だったり曖昧だったりするこ とから、このままではうまく解けない。そこで、一旦、この「問題→解」とい う現実世界の問題をモデル化しよう、ということになる。「問題空間」、「解 空間」という空間と直行する空間軸として、上下に「モデル空間」と「現実空 間」を導入する。そうすると、4つの象限が現れる。その4つの象限に、現実空 間の「問題」と「解」、そして、モデル空間の「分析モデル」と「設計モデル」 を置く。ここで、分析モデル=モデル化された問題、設計モデル=モデル化さ れた解である。そして、問題→解という直線的な解き方ではなく、一旦モデル 空間に上って遠回りをしてみる。

     分析モデル→設計モデル
       ↑    ↓
       問題   解


問題を一旦モデル化する活動を「分析」と呼ぶ。成果物は、「モデル空間上の 問題」(分析モデル)だ。そして、モデル空間上で解決させる活動を、「設計」 と呼ぶ。成果物は、「モデル空間上の解」(設計モデル)だ。最後に、モデル 空間から現実空間へと逆変換する。これを実装と呼ぶ。成果物は解、すなわち (ソフトウェア開発であれば)動くコードである。

まとめると、設計とは、問題空間から解空間への変換である。ただし、一旦問 題をモデル化し(分析)、それをモデルで解決する(設計)。つまり、モデル 領域で変換する。そして、解のモデルを、再度現実領域にもどしてやる。これ で最終的な現実世界の解にたどりつく。

     分析モデル→<設計>→設計モデル
       ↑        ↓
      <分析>      <実装>
       ↑        ↓
       問題→<テスト>← 解

クリックすると拡大表示されます。


最後のミッシングリンクは、現実領域での、問題と解との突合せ、すなわ「テ スト」である。テストによって、「右回りの活動」がもともとの意図である「問 題→解決」と合っていることを示す。そう、この「テスト」こそが、問題に対 する解が正しいことの最終的保障になるのだ。
はじめにもどる



この記事への評価にご協力をお願いします。

良かった 普通 イマイチ