ウィリアムのいたずらの、まちあるき、たべあるき

ウィリアムのいたずらが、街歩き、食べ物、音楽等の個人的見解を主に書くブログです(たま~にコンピューター関係も)

オブジェクト指向がシステム開発の難易度を絶望的に上げることを、阿多氏の発言は予言してたかも?

2005-03-22 11:55:54 | 開発ネタ
前のブログで、「成果物を出力するものまで規定できれば、開発は楽になるし、ユーザーも開発費は低減できる(が、実は、これをちゃんとやることは、無理。」の理由、昨日に続く第二段!

 最近のシステム開発論は、オブジェクト指向に傾いている。このオブジェクト指向に切り替わるときに、実はシステムの開発内容が大きく変わった。
 そのことを、久保田達也さんや、波頭亮さんが、出てくる企画バトル番組が、10年以上前だったかなー?にあって、その番組に、昔のマイクソフトの社長(いまは、ソフトバンクBBの偉い人なのかな?)の阿多氏が出たことがあった。ちなみに、当時、阿多氏は、マーケティング部の人だったが。。。

 さらにちなみに、その番組のアシスタントは向井亜紀さん(だんなさんが、高田総統、で思い出した!このブログで、高田総統がインリンに小川直也と戦わせるって話書いたけど、結果は、インリンが勝ったらしい!?って、話を戻す)だった。




 で、その番組で、もう、発言した阿多氏も含め、だれも覚えてないと思うけど、そこで、おもしろいことを言ってだぞ!

 「それ以前の開発方法とちがって、最近(10年前の最近=オブジェクト指向)は、世界観全体を開発する」みたいなことをいってたんだ。

 つまり、いままでの開発というのは、開発したい部分を切り出して、そこだけ、入力と出力、開発に必要なロジックを切り出して、開発していた。いわば、システム開発できる部分を切り出して、開発していた。

 それに対して、オブジェクト指向っていうのは、モデル全体、そのモデルで表現される世界全体を開発してしまう、危険をはらんでいる。
 つまり、クラスをきってしまった場合、そのクラスが、出力にあんまり関係が無い話でも、どんどん深入りができる。
 ゲームプログラムなどでは、この深入りが面白いんだけど(登場人物のキャラクター、なんでそこまで決めるの?っていうやつ)、システム開発なんかだと、不必要なメソッドを作ったり(対称性を考えて、このメソッドを作っとこうとか)、不必要に深入りしたりする。




 具体例で、夕飯支援システムで考える。

 商品っていうクラスをきった場合、お店ごとに商品がちがうので、クラスとしては、商品クラスをつくって、その中に、マクドナルドの商品とか、石焼芋やの商品とかを派生させないと、うまく定義できない。
 で、マクドナルドの商品を、モデル化して、(セット商品とか、単品とかもわけて)それら、派生した商品それぞれに、発注するというメソッドを記述することになる。
 この商品、もちろん、お店によって、ぜんぜんちかうので、RDBでは定義できない。
 やるとしたら、XMLDBで定義するか。。。

 っていう感じになるけど、前のブログで書いたとおり、出力だけ考えたら、この商品、ここまで定義しなくていいし、そもそも、DBにする必要ないのよ!

 でも、クラスとして認識されると、ここまで、モデル化しないと、いけなくなるのよね。




 結局、出力に関係ないクラス定義に忙殺されて、全体をモデル化しようとしちゃって、肝心の開発の難易度を、絶望的にあげてしまうのよ。
 今のマクドナルド商品クラスのようにね(マクドナルドの商品をクラスにして、注文メソッドを作るのって、難しいよ!うそだと思ったら、書いてみ!)。昔だと、目的のはっきりしてない開発は、出来なかったんだけど、オブジェクト指向の場合、クラスと戯れることで、開発している気になるのよ。さっきの例だと、マクドナルドの商品クラスの開発のようなのをやってると、開発してる気になるのよ。出力には、関係ないんだよ!。


 最近のEAとかも、全社的に考える場合、お金を生み出さないような不必要な部分を考慮するために、結構たいへんな作業になってしまう危険があるのよ。
 EAを行う目的がはっきりしてないとね。

この記事についてブログを書く
  • X
  • Facebookでシェアする
  • はてなブックマークに追加する
  • LINEでシェアする
« 開発論から考えると、成功哲... | トップ | 要求仕様ではビジネスモデル... »
最新の画像もっと見る

開発ネタ」カテゴリの最新記事