# モジュール分割 ## 定義 モジュール分割(modular decomposition)とは、複雑なソフトウェアシステムを独立して理解・開発・変更・テスト可能な構成要素(モジュール)へと分割する設計手法である。D. L. Parnas(1972)は、従来の「処理手順のステップや実行フロー(フローチャート)」に基づく分割基準を批判し、システムの中で将来変更される可能性の高い設計決定(データ構造の表現、ハードウェア依存部など)を各モジュールの秘密としてカプセル化する「情報隠蔽(information hiding)」をモジュール分割の根本基準として確立した。(Source: [[@1972__CACM__On the Criteria to Be Used in Decomposing Systems into Modules]]) ## 未解決の問い - モジュール境界を細かく定義することによるインターフェース変更オーバーヘッドと、粗粒度モジュールによる隠蔽不足のトレードオフを定量的に評価できるか。 - 分散マイクロサービスアーキテクチャにおけるサービス境界分割(DDDの境界づけられたコンテキスト)と Parnas の情報隠蔽基準の形式的対応関係。 ## 未編纂の観察 - ## 関連 - ソース: [[@1972__CACM__On the Criteria to Be Used in Decomposing Systems into Modules]] - 概念: [[情報隠蔽]] - 人物: [[David L. Parnas]] ## 出典 - D. L. Parnas, "On the Criteria to Be Used in Decomposing Systems into Modules", *Communications of the ACM*, 1972.