モジュール設計

参考文献

  • わかる!ソフトウェア設計トレーニング 足利聡太著

モジュールとは

何らかの基準で分類・命名されたソフトウェアの単位をモジュールと呼びます。

メンタルモデル( p79 )

メンタルモデルとは、開発者がソフトウェアモジュールに対して抱いている「どのような仕組みで動作するか」という期待・概念のことです。

モジュール化の目的:抽象化

モジュール化(抽象化)は、詳細な実装を利用者(親・呼び出し側)から隠蔽し、「本来の実装よりも簡易なメンタルモデル」 を提供することを目的としています。

モジュール化の指針( p32 )

呼び出し側(親)と呼び出される側(子)の結合度を下げ、関心事を分離するための指針です。

  1. 親の他の手順を隠蔽する(抽象的)
    • 意味: 子モジュールは、親が前後にどのような処理を行っているかを知る(依存する)必要がない状態にします。
    • 効果: 詳細な実装情報を減らし、親には「〇〇を実行する」という単純化されたメンタルモデルのみを提供します。
  2. 親の呼び出し意図を隠蔽する(汎用的)
    • 意味: 子モジュールは、「親が何のビジネス目的で自分を呼び出したか」という特定の文脈に依存しないように設計します。
    • 効果: 特定の文脈から独立させることで、他の場所でも再利用可能な汎用モジュールになります。

品質改善のプロセス( p58 )

モジュール設計の品質は、具体的に測定可能な目標と手段を設定することで改善されます。

  1. 目標を決める
    • 観測・測定可能な基準を設定する(例: 「モジュール間の依存度を下げ、変更影響範囲を特定しやすくする」など)。
  2. 手段を決める
    • 目標を達成するための具体的なアプローチを決定する(例: 「具象クラスではなくインターフェースに依存させる」「関心の分離を行う」など)。