作成日 2012/5/26 最終更新日 2012/5/26
問題2.15(問題タイトル:アンチパターン)
オブジェクト指向設計についての問題(中級レベル)です。
問題タイトル:アンチパターン
重要度:★★★☆☆(普通)
難易度:★★★☆☆(普通)
問題タイトル:アンチパターン
重要度:★★★☆☆(普通)
難易度:★★★☆☆(普通)
問題:以下はアンチパターン名前と説明もしくは特徴の一覧である。a〜gをア〜キに正しく関連付けよ。
a.コピー&ペーストプログラミング
b.肥満児
c.機能的分解
d.車輪の再発明
e.溶岩流
f.スパゲティコード
g.文書軽視
ア.オブジェクトのメソッドに引数がなく、グローバル変数やクラスの静的変数を操作している。
イ.既に知られている解決方法などを採用しない。
ウ.プロトタイプのソースをそのまま流用した時に起こりやすい。
エ.ブラックボックス的再利用ではなく、ホワイトボックス的再利用を行っている。
オ.ドキュメントや設計書がなく、バックアップ、不測事態への考慮がない。
カ.一つのクラスに大量の(60以上)属性や操作がある。
キ.関数のような名前がついたクラスがある。
問題文終わり
注意:これ以上、下にスクロールすると解答・解説が見えちゃいます。
解答:a-エ、b-カ、c-キ、d-イ、e-ウ、f-ア、g-オ
※部分点は存在しませんよー。1つでも間違えたら0点です。
解説:
特にオブジェクト指向設計・プログラミングに関する部分を解説します。
a.エ
コピー&ペーストプログラミング
まあ、この名前は一度は聞いたことはあるのではないでしょうか?
部品化が適切に出来ていない場合に起こりえます。
まあ、難しい場合もあるのですが・・・。
b.カ
肥満児
機能の詰め込みづぎです。この場合、多くの場合、モジュールの強度が悪くなっています。
c.キ
機能的分解
データ中心で設計されていません。この場合も、多くの場合、モジュールの強度が悪くなっています。
d.イ
車輪の再発明
勉強不足ですね。
今回はアンチパターンに関しての問題ですが、デザインパターンについても勉強しましょう。また、既にあるライブラリ(例えばlog4cpp)のソースを見て、理解すると勉強になることがあります。
e.ウ
溶岩流
オブジェクト指向設計・プログラミングとしてコメントすることは特にありません。
f.ア
スパゲティコード
ちょっと難しかったかな?
この場合、モジュール間の結合度が悪く(強く)なってしまっています。
そうすると、修正やテストに多くの工数がかかるようになってしまいます。
g.オ
文書軽視
オブジェクト指向設計・プログラミングとしてコメントすることは特にありません。
このページを作成する際に参考にしたページや、もっと勉強したい人向けの資料です。
番号
著者名
書籍名
ISBN
1
W.J. ブラウン (著), 3,Hays W. McCormick (著), Raphael C. Malveau (著), Thomas J. Mowbray (著), William J. Brown (原著), 岩谷 宏 (翻訳)
アンチパターン―ソフトウェア危篤患者の救出
978-4797321388
このページの利用によって発生した、いかなる損害について、このホームページの作成者は責任を負いません。
このページの間違いや嘘を見つけた方、このページに書いて欲しい情報がある方は
メール をお願いします。
Microsoft 、Windows 、Visual Basic および Excel は米国Microsoft
Corporationの米国およびその他の国における登録商標または商標です。
ここではExcel® をエクセル、Visual Basic® for Applications をVBAと表記する場合があります。
Mac 、Mac OS
、Mac OS
X は米国Apple
Computer,Inc.の登録商標または商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。
このホームページの作成者はこれらの会社とはいっさい関係がありません。