モジュールの分割

各プログラムをモジュールと言う単位に分解・階層化させることをプログラムの構造化設計と言う

モジュール分割技法

  • データの流れに着目した手法
  • データの構造に着目した手法

モジュールに分ける利点と留意点

メリット

  • 作業が分担できる
  • 再利用が容易
  • 修正が一部で済む

留意点

  • モジュールの中にいろんな機能が詰め込まれる
  • モジュールの中身がやたらと他のモジュールに依存している

このようなものにならないようにしなければいけない

モジュールの分割技法

STS分割法

プログラムを「入力処理」「変換処理」「出力処理」の3つのモジュール構造に分割する手法。データの流れに沿って、その段階ごとに区切る感じ。

トランザクション分割法

プログラムを一連の処理単位に分割する方法

共通機能分割法

プログラム中の共通機能をモジュールとして分割する手法

モジュールの独立性を測る尺度

モジュールの独立性を測る尺度には「モジュール強度」と「モジュール結合度」の2つがある。

モジュール強度

モジュール内の機能が内部でどのように関連づいているかを示す尺度。「どれだけ機能的に特化できているか」を表していて、高いものほどモジュールの独立性が高くて好ましいとなる。

名称 強度 説明 独立性
機能的強度 強い 単一の機能を実行するためのモジュール。シンプルでわかりやすい故に強固。 高い
情報的強度
同一のデータ構造を扱う機能をひとつにまとめたモジュール。機能ごとに入出力が可能。
連絡的強度 複数の機能が逐次的に実行されるモジュール。一連の処理が連絡を取りながら加工するイメージ。
手順的強度 複数の機能が逐次的に実行されるモジュール。一連の処理だけをまとめたイメージ。
時間的強度 特定の時点で必要とされる複数の作業をまとめたモジュール
論理的強度 似ているんだけどちょっとだけ違う複数の機能を持つモジュール
暗号的強度 弱い 関連のない複数の機能を持つモジュール 低い

モジュール結合度

モジュールが他のモジュールとどのように結合するかを示す尺度。「どんなデータをやり取りすることで、他のモジュールと結合するのか」を表すもの。

これが弱いほど「モジュールの独立性が高くて好ましい」となる。

どんなデータを渡す?

  • 単一のデータ
  • データ構造

どんな手段で?

  • 引数で渡す
  • 大域的データで渡す
名称 結合度 説明 独立性
データ結合 弱い 単一のデータを引数として受け渡す 高い
スタンプ結合
データ構造を引数として受け渡す
制御結合 他のモジュールの動作を制御する目的で、引数として制御パラメータを受け渡しするモジュール
外部結合 単一のデータを大域的データとして受け渡すモジュール
共通結合 データ構造を大域的データとして受け渡すモジュール
内容結合 強い 他のモジュール内のデータを直接参照するモジュール 低い

 

タイトルとURLをコピーしました