システム開発 PR

【応用情報】モジュール結合度について分かりやすく解説

記事内に商品プロモーションを含む場合があります

この記事ではモジュール結合度についてIT初心者にも分かりやすく解説します。

モジュール結合度

  • モジュールはプログラムを構成する部品。
  • 最もモジュール間の関係性が低いのは、単一なデータを引数として受け渡しするデータ結合

応用情報ではモジュール結合度に関する問題が出題されます。是非最後までご覧ください。

モジュールとは

プログラムを作るとき、全ての処理を一気に作るのではなく、
ある程度の処理のまとまりで分割して作ります。このまとまり達をモジュールと言います。
モジュールはプログラムを構成する部品のようなものですね。

プログラムをモジュールに分割するメリットは
①作業の分担ができる、②再利用が可能、③修正が一部で良くなる、などがあります。

モジュールの分け方は色々あります。
入力処理→編集処理→出力処理で分ける方法や、処理毎に分ける方法があります。

モジュール結合度

プログラムは複数のモジュール同士が協力し合って動きますが、
モジュール同士が依存しすぎるとモジュールが持つメリットを潰すことになります

プログラムをモジュールに分割するメリットには
①作業の分担ができる、②再利用が可能、③修正が一部で良くなる、がありましたが、
例えば、モジュールBの処理がモジュールAに依存し過ぎていると、
①モジュールAとBを分けて作ることが出来ない
②モジュールBを他のモジュールと一緒に使えない
③モジュールAの修正をするとき、モジュールBも修正しないといけない
みたいに、逆にモジュールで分けない方が良いじゃん!という状況になってしまいます。

モジュールが他のモジュールとどのように依存するかを示す尺度をモジュール結合度と呼び、モジュールの分割を考えるとき、モジュール結合度が重要な指標になります。
モジュール結合度は弱い方が良いとされています

モジュール間のデータの渡し方

モジュール結合度はモジュール間のデータの渡し方によって決まります
モジュール間のデータの渡し方は、
①どんなデータを渡すのか?②どのようにデータを渡すのか?の2つを考えます。

単一のデータよりデータ構造を渡す方が、モジュール結合度は強くなります。
データ構造を構成するデータのうち、どれか1つでも抜けてしまうとモジュールが動かない可能性があるので、データ構造でデータの受渡しをするモジュールは依存度が高いと言えます。

また、引数で渡すより大域的なデータを渡す方が、モジュール結合度は強くなります。
引数でデータを受け渡す場合、渡すモジュールと受け取るモジュールの2者間でやり取りが完結します。しかし、大域的なデータを渡す場合、全モジュールが更新可能な共通域を使ってやり取りするため、複数のモジュールと関わりが発生するという意味で依存度が高くなり、モジュール結合度が強くなります。

以上を踏まえて、モジュール結合とモジュール結合度の関係は次のようになります。

制御結合の「他のモジュールの処理を制御するデータ」とは、条件分岐に影響を与えるデータのことです。受け取るデータによって処理の内容が変わってしまうので、モジュール結合度は高くなります。

応用情報技術者試験での出題例

令和6年度春期問46

応用情報技術者
午前試験 
令和6年度春期問46

モジュール結合度に関する記述のうち,適切なものはどれか。

ア あるモジュールがCALL命令を使用せずにJUMP命令でほかのモジュールを呼び出すとき,このモジュール間の関係は,外部結合である。

イ 実行する機能や論理を決定するために引数を受け渡すとき,このモジュール間の関係は,内部結合である。

ウ 大域的な単一のデータ項目を参照するモジュール間の関係は,制御結合である。

エ 大域的なデータを参照するモジュール間の関係は,共通結合である。

正解と解説

正解は”エ”

ア 内部結合です
イ 制御結合です
ウ 外部結合です
エ 共通結合です

令和5年度春期問46

応用情報技術者
午前試験 
令和5年度春期問46

モジュールの独立性を高めるには,モジュール結合度を低くする必要がある。モジュール間の情報の受渡し方法のうち,モジュール結合度が最も低いものはどれか。

ア 共通域に定義したデータを関係するモジュールが参照する。
イ 制御パラメータを引数として渡し,モジュールの実行順序を制御する。
ウ 入出力に必要なデータ項目だけをモジュール間の引数として渡す。
エ 必要なデータを外部宣言して共有する。

正解と解説

正解は”ウ”

最もモジュール結合度が低いのはデータ結合で、データ結合の説明はウです。

令和4年度春期問46

応用情報技術者
午前試験 
令和4年度春期問46

モジュールの独立性の尺度であるモジュール結合度は,低いほど独立性が高くなる。次のうち,モジュールの独立性が最も高い結合はどれか。

ア 外部結合   イ 共通結合   ウ スタンプ結合   エ データ結合

正解と解説

正解は”エ”

最もモジュール独立性が高い、つまり、モジュール結合度が低い結合はデータ結合です。