見出し | OOP
モジュール設計
参考文献
- わかる!ソフトウェア設計トレーニング 足利聡太著
モジュールとは
何らかの基準で分類・命名されたソフトウェアの単位をモジュールと呼びます。
メンタルモデル( p79 )
メンタルモデルとは、開発者がソフトウェアモジュールに対して抱いている「どのような仕組みで動作するか」という期待・概念のことです。
モジュール化の目的:抽象化
モジュール化(抽象化)は、詳細な実装を利用者(親・呼び出し側)から隠蔽し、「本来の実装よりも簡易なメンタルモデル」 を提供することを目的としています。
モジュール化の指針( p32 )
呼び出し側(親)と呼び出される側(子)の結合度を下げ、関心事を分離するための指針です。
- 親の他の手順を隠蔽する(抽象的)
- 意味: 子モジュールは、親が前後にどのような処理を行っているかを知る(依存する)必要がない状態にします。
- 効果: 詳細な実装情報を減らし、親には「〇〇を実行する」という単純化されたメンタルモデルのみを提供します。
- 親の呼び出し意図を隠蔽する(汎用的)
- 意味: 子モジュールは、「親が何のビジネス目的で自分を呼び出したか」という特定の文脈に依存しないように設計します。
- 効果: 特定の文脈から独立させることで、他の場所でも再利用可能な汎用モジュールになります。
品質改善のプロセス( p58 )
モジュール設計の品質は、具体的に測定可能な目標と手段を設定することで改善されます。
- 目標を決める
- 観測・測定可能な基準を設定する(例: 「モジュール間の依存度を下げ、変更影響範囲を特定しやすくする」など)。
- 手段を決める
- 目標を達成するための具体的なアプローチを決定する(例: 「具象クラスではなくインターフェースに依存させる」「関心の分離を行う」など)。