モジュール強度 (cohesion) と結合度 (coupling) は AP 科目Aで必出。良い設計は『強度 高 + 結合度 低』が原則です。
モジュールの良し悪しを評価する2つの軸: ① 強度 (cohesion) = 1モジュール内の関連性の強さ、② 結合度 (coupling) = モジュール間の依存度の強さ。
強度って高いほうがいいの?
そうよ。
強度は『高い方が良い』。
機能的強度 (1モジュール = 1機能) が最強で、暗号的強度 (関係なく集めた) が最弱。
順番に: 機能的 > 情報的 > 連絡的 > 手順的 > 時間的 > 論理的 > 暗号的。
結合度は逆なんですかぁ?
はい、結合度は『低い方が良い』。
データ結合 (引数で値渡し) が最良で、内容結合 (他モジュールの内部を直接触る) が最悪。
順番に: データ結合 < スタンプ結合 < 制御結合 < 外部結合 < 共通結合 < 内容結合。
AP では『次の例はどの強度/結合度か』が頻出。
実例で覚えるのが一番。
たとえば: 全関数がグローバル変数 X を参照 → 共通結合、引数でフラグを渡して処理切替 → 制御結合、引数でデータのみ渡す → データ結合、というふうに。
これって実務でも使うの?
はい、SOLID原則の SRP (単一責任) と直結します。
SRP を守ると自然に強度が高く・結合度が低い設計になります。
良いコードレビューの観点でもあります。
確認クイズ
良いソフトウェアモジュール設計の原則として、最も適切な組合せはどれか。
- 強度: 低い方が良い / 結合度: 低い方が良い
- 強度: 高い方が良い / 結合度: 高い方が良い
- 強度: 高い方が良い / 結合度: 低い方が良い
- 強度: 低い方が良い / 結合度: 高い方が良い
こたえを見る
正解: 3. 強度: 高い方が良い / 結合度: 低い方が良い
良いモジュール設計は『強度 (cohesion) 高 + 結合度 (coupling) 低』。1モジュール内の関連性は強く、モジュール間の依存度は弱いほど、再利用性・保守性・テスト容易性が高くなります。SOLID の SRP・DIP の根底にある原則。