作成日 2011/1/23
最終更新日 2011/1/23

問題2.11(問題タイトル:オブジェクト指向設計開発のデメリット)

オブジェクト指向設計についての問題(中級レベル)です。

問題タイトル:オブジェクト指向設計開発のデメリット
重要度:★★★★☆(やや重要)
難易度:★★★☆☆(普通)


1.問題
2.解答・解説
3.参考文献


1.問題

問題タイトル:オブジェクト指向設計開発のデメリット
重要度:★★★★☆(やや重要)
難易度:★★★☆☆(普通)

問題:オブジェクト指向設計・プログラミングのデメリットとして正しいものを全て選択せよ。


 a.設計に必要な時間が増える
 b.テストに必要な時間が増える
 c.オブジェクト指向を理解している人が少なく、人員を集めるのが難しい
 d.デメリットはない

問題文終わり

このページのトップへ












注意:これ以上、下にスクロールすると解答・解説が見えちゃいます。

2.解答・解説

解答:a,c
解説:
 正しくオブジェクト指向設計を行うのであれば、その概要、特徴やメリットだけでなく、デメリットや制限事項も把握する必要があるため、今回出題しました。
 
 a.正しい。
 b.一般にテストに必要な時間・工数は減ります。
 c.正しい。説明が長くなるので後述します。
 d.それはない。多くの技術について言えることですが、「デメリットがない」ものは非常に少ないでしょう。
  例えば、エコ関連の商品だと、消費電力が少ないというメリットがある代わりに、初期導入コストが高いというデメリットがあるなど・・・。


 さて、「c.オブジェクト指向を理解している人が少なく、人員を集めるのが難しい」の説明ですが・・・。
 オブジェクト指向に関しまともな書籍が少ない(ソフトウェア工学の基礎を説明していない本が多すぎ)のが一番の原因だと思ってます。
 しかし、その問題が解決されたとしても勉強に時間がかかるという問題があり、それは解決できません。
 図1は、オブジェクト指向設計を行うのに必要な知識を図にしたものです。


図1 オブジェクト指向設計を行うのに必要な知識
上にあるものを行うためには下にある内容を理解している必要がある

 構造化設計をするためには構造化設計と構造化プログラミングを理解していればいいのです。(図にはないが、正確にはモジュール設計技法についての知識も多少必要だが、オブジェクト指向設計と比べると必要な知識は少ないと思う。)
 しかし、オブジェクト指向設計をするためには、それに加え、データ中心アプローチ、モジュール設計技法(モジュールの強度や結合度を含む)、プロジェクトマネジメント(品質やコストへの意識が必要だから)が必要です。
 ちなみに、オブジェクト指向設計をするのになぜ、構造化設計・構造化プログラミングの知識が必要かと言うと、オブジェクト指向設計・プログラミングであってもメソッドの中身の設計・プログラミングは構造化設計・プログラミングとなるためです。
 ・・・結局、オブジェクト指向設計というのは構造化設計・プログラミングに加え、他の知識が必要となるわけだから、勉強に時間がかかるのは当然なんですよ・・・。


 最後にですが、オブジェクト指向設計のデメリットですが、他には以下があります。
・設計がわかりにくくなることがある(継承によってソースが見難くなる、データ中心の考えが難しいなど)。
・処理時間の増大(ヒープメモリからのメモリの確保・解放やカプセル化による影響)

このページのトップへ

3.参考文献

 このページを作成する際に参考にしたページや、もっと勉強したい人向けの資料です。

番号

リンク先の名称

リンク先の説明

リンクした日

1 オブジェクト指向のメリットとデメリット - だるまのエクセルVBA オブジェクト指向のメリットとデメリットをその理由とともに説明しています。 2011/1/23


Prev Up Next  Top
このページのトップへ


このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方はメールをお願いします。

Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS 、Mac OS X は米国Apple Computer,Inc.の登録商標または商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

このホームページの作成者はこれらの会社とはいっさい関係がありません。