モジュールを管理することができる大きさにしないといけません。
一般的にソースプログラム(プログラミング)だと1ページということがありますが、あまり小さいと小単位の機能を実現することができない場合があります。
モジュールを細分化したら個々のモジュールが簡単になってしまいますが、インターフェースが複雑になってしまうのでモジュールを制御する「プログラム構造」の設計に負担が掛かってしまいます。
逆に細分化が浅いときは、インターフェースの設計が少なくて済むのですが、モジュール単体の機能が増加し汎用性が少なくなってしまいます。
理想としては「単一データが単一の入口から」「単一データが単一の出口に」というのが、現実的に複数データをやり取りすることが多くなるので、できればインターフェース要素は2~3要素ぐらいが良いと思われます。
モジュール間のインターフェースを簡単にすれば、モジュールの独立性を高めることができるので「モジュール間のインターフェース」を結合の尺度として分類することができます。
結合度の弱い「データ結合」が一番良いでしょう。
内容結合:他のモジュールのデータを直接アクセスする。
共有結合:共通の外部データ構造にアクセスする。
外部結合:共通データの不必要なデータをマスクする。
制御結合:モジュール機能の制御データを渡す。
スタンプ結合:データ構造をパラメータとして渡す。
データ結合:単体データをパラメータとして渡す。
モジュールは明確な機能1つを持つように分解することが良く、もしも複数の機能を1つのモジュールにまとめるなら、個々の機能は互いに関連性がないといけません。
「モジュール内部の関連性」をモジュール強度として分類することができ、強度が強い程、モジュールの機能が明確で独立性が高くなります。
偶然的:モジュール内の機能間に関係がないこと。
論理的:似た複数の機能を持っていること。
時間的:論理的で時間の近接する複数の機能を持っていること。
手順的:複数の機能を順次実行すること。
連絡的:手順的で機能間にデータの関連があること。
情報的:1つのデータ構造を複数の機能が扱うこと。
機能的:1つの機能だけを持っていること。
最終更新日:2022/12/12
このサイトはリンクフリーです。