ソフトウェア詳細設計
プログラム構造化設計
プログラムをモジュールというひとまとまりの機能を持った単位に分割する事。
モジュールに分割する事で、大勢の人で分担してプログラムを開発できるようになる。また、モジュール単位でテストができるので、問題が起きても原因を特定しやすく、修正もモジュール内だけで済む。
<モジュールの独立性>
プログラムの信頼性と保守性を高めるには、1つのモジュールに入れる機能をできるだけ少なくし、各モジュールの独立性を高くする。
モジュールの独立性は、モジュール強度とモジュール結合度で評価する。
●モジュール強度
1つのモジュール内の機能同士の関連の強さを示す。
・暗号的強度:内部の機能同士に関連性が無い(独立性・強度1)
・論理的強度:関連した複数の機能を持ち、その中からどれか1つを選択するモジュール(独立性・強度2)
・時間的強度:機能が時間順に実行されるモジュール(独立性・強度3)
・手順的強度:機能が順番に実行されるモジュール(独立性・強度4)
・連絡的強度:内部の機能同士がデータを共有するモジュール(独立性・強度5)
・情報的強度:データを共有する機能を1つにまとめたモジュール(独立性・強度6)
・機能的強度:1つの機能だけから成るモジュール(独立性・強度7)
●モジュール結合度
モジュール同士の関係の強さを示す。
・内部結合:他のモジュールの内容を直接参照する。(独立性1・結合度6)
・共通結合:共通領域に定義したデータを参照する。(独立性2・結合度5)
・外部結合:外部宣言しているデータを共有する。(独立性3・結合度4)
・制御結合:制御パラメータを引数として渡し、モジュールの実行順序を制御する。(独立性4・結合度3)
・スタンプ結合:データ構造を引数として受け渡す。(独立性5・結合度2)
・データ結合:データ項目だけを引数として受け渡す。(独立性6・結合度1)