作成日 2010/9/12
最終更新日 2011/4/24

問題1.2(問題タイトル:モジュールの強度と結合度)

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

問題タイトル:モジュールの強度と結合度
重要度:★★★★★(非常に重要)
難易度:★★★☆☆(普通)


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


1.問題

問題タイトル:モジュールの強度と結合度
重要度:★★★★★(非常に重要)
難易度:★★★☆☆(普通)

問題:a〜dのうち、プログラムの保守性が最も良いものはどれか?
 a.モジュールの強度(凝集度)、結合度ともに高い
 b.モジュールの強度(凝集度)が高く、結合度が低い
 c.モジュールの強度(凝集度)が低く、結合度が高い
 d.モジュールの強度(凝集度)、結合度ともに低い


問題文終わり

このページのトップへ












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

2.解答・解説

解答:b
解説:
 モジュールの強度(凝集度)、と結合度について理解しているかどうかを確認する問題です。
 モジュールの強度(凝集度)とは、モジュール(クラス)内の関連性の強さのことで、強い(関連性が強い)方が保守性がいいです。
 モジュールの結合度とは、モジュール(クラス)間の関連性の強さのことで、弱い方が保守性がいいです。

 なんで、オブジェクト指向の問題でこの問題を出題したのかと言うと、GRASPパターンのように、明示的に高凝集度、低結合度が言っている法則もあるわけだが、 そんなの関係なしに(オブジェクト指向以前のソフトウェア工学として)理解しておくべき内容であるからです。



 さて、問題の解説はこれくらいにして、よりステップアップするための内容について説明します。
 問題に、「保守性」とありました。この「保守性」をなんとなく、まあ、保守の行いやすさくらいで考えて使っている人は多いと思いますが、実はこの「保守性」はJIS X 0129-1で定義されているんです。
 JIS X 0129-1がどのようなものが見てみましょう。(※JIS X 0129-1は情報処理技術者試験の対策本にも載っています。受験を考えている人は、そちらも参照してください。)

表1 ソフトウェア品質特性(JIS X 0129-1 より)
品質特性品質副特性
機能性合目的性、正確性、相互運用性、標準適合性、セキュリティ
信頼性成熟性、障害許容性、回復性
使用性理解性、習得性、運用性
効率性時間効率性、資源効率性
保守性解析性、変更性、安定性、試験性
移植性環境適応性、設置性、規格適合性、置換性

 なにが伝えたかったかというと、「保守性」と言っても、実は、解析性、変更性、安定性、試験性とあるんです。プログラムを設計する際は品質副特性に何があったか考慮して設計するとより良い設計ができるのではないでしょうか?

 とりあえず、今回はここまで。
 本当は、モジュールの強度(凝集度)と結合度についても説明しても良かったのですが、参考文献1に書いてますので、そちらを参照してください。

このページのトップへ

3.参考文献

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

番号

リンク先の名称

リンク先の説明

リンクした日

1 オブジェクト指向とモジュールの凝集度、モジュールの結合度 - だるまのエクセルVBA モジュールの強度(凝集度)、結合度について説明しています 2010/9/12

番号

著者名

書籍名

ISBN

1 ITアシスト 3週間完全マスター 応用情報技術者 2010年版 978-4822284077
2 クレーグ・ラーマン (著), 依田 智夫 (監訳), 今野 睦 (監訳), 依田 光江 (翻訳) 実践UML 第3版 オブジェクト指向分析設計と反復型開発入門 978-4894716827


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.の登録商標または商標です。
OMG、UML、Unified Modeling Languageは、Object Management Groupの商標または登録商標です。
その他、社名および商品名、システム名称などは、一般に各社の商標または登録商標です。

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