桜井です。
ご指摘いただいたポインタですが、
半分くらいは読んだことがあるものでしたが、その他は
読んだことが無くて、しかもいい本のようでしたので、
勉強したいと思います。ありがとうございます。
> 村山です.
>
> > 実装を(完全にではなくても或る程度は)抽象化しないのならば、
> > それはそもそも設計と呼ぶに値しませんよね。
> ここまでは字義通りには同意.
>
> > 実装そのものの字面を変えただけです。
> >
> > 実装のことしか考えないなら、
> > それは設計ではなく実装であるわけで。
> JavaVM仕様書を読んだことがありますか?
> 実装に可能な限り触れず,且つ実装のことを考慮した書き方になってます.
> :
> 仕様や設計といえども実装と無関係ではありえません.
このあたりで村山さんの主張が分かったような気がしました。
つまり、以下のような理解でよろしいでしょうか。
------------------
○OOPとOOAとOODは何が違うから違うのか?
OOAとOODは上流工程で生まれた、上流工程のための分析・設計手法であり、
実装のことを一切考慮していないため机上の空論である。
一方、OOPは実装から生まれた技術であり、実践的な技術である。
実装時の情報を含んだ設計はOOPに含まれる。
つまり、実装時の情報を含むか含まないかが大きな違い。
○なぜ同列に並べて話をしてはいけないのか
OOAとOODは実装のことを何も考えていない人たちのための理論であり、
実装しなければ形にならないソフトウエア開発にとって、何の役にも立たない。
一方、OOPは実装を中心に考えられた技術であり、役に立つ。
よって、役に立たないものと役に立つものを同列に並べて話をするのは、
役に立たないOOAやOODが、あたかも役に立つような印象を与えるので良くない。
----------------
OOAとOODの定義や成り立ちが上記のようであれば、村山さんの主張に納得できます。
村山さんの主張に従えば、おそらく自分の考える分析・設計はすべてOOPに含まれて
しまうのだと思います。
しかし、自分にとって「実装を知らない人が設計を行う」という現象が信じられません。
自分は半分学生でアルバイト的なソフトウエア開発を行っていますが、そんなことは
不可能だと思っています。例えが適切でないかもしれませんが、波動方程式を知らない
哲学者が量子力学について語っているようなもので、そんなことでお金をもらっている
人がいるとはにわかには信じられません。
本当に、そんなことがあるのでしょうか。