モジュールの結合度とは、文字通り、他のモジュールとの結合の度合いのことです。
モジュールがそれぞれ独立しており、引数をつけて渡すだけなので、様々なプログラムとの連携がしやすい。また、プログラム変更があっても簡単に行えます。
結合度 | 分類 | 説明 |
強 | 内部結合 | 別のモジュールの内部の情報を直接参照するなど、モジュールの結合性が高いもの |
↑ | 共通結合 | 「共通域に定義したデータを関係するモジュールが参照する(H28春FE午前問47より)」 |
外部結合 | 「必要なデータを外部宣言して共有する(H28春FE午前問47より)」 「単一のデータ項目を大域的データで受け渡す。(H28春AP午前問47より)」 | |
制御結合 | 「制御パラメタを引数として渡し,モジュールの実行順序を制御する(H28春FE午前問47より)」 | |
↓ | スタンプ結合 | 「データ構造を引数で受け渡す(H28春AP午前問47より)」 |
弱 | データ結合 | 「入出力に必要なデータ項目だけをモジュ―ル間の引数として渡す(H28春FE午前問47より)」 「単一のデータ項目を引数で受け渡す(H28春AP午前問47より)」。 |
応用情報のシラバスのキーワードでは、何が記載されていますか?
「データ結合」と「制御結合」の2つだけです。
その2つ(特にデータ結合)だけを覚えておけば、合格ラインである6割を突破するのには十分だと思います。
◆H21応用情報/秋問45
モジュール結合度が最も弱いモジュールはどれか
↓単一データ項目を引数で受け渡すモジュール(正解)
↓データ構造を引数受け渡すモジュール
↓単一データ項目を大域的データで受け渡すモジュール
↓データ構造を大域的データで受け渡すモジュール
※上記の大域的というのは、メールアドレスしか必要ではないのに、「氏名、TEL、メールアドレス」などたくさんの情報を渡すことと考えている。
以下は頭の中の整理用。情報処理試験では、「データ結合」「スタンプ結合」などのキーワードは使われない。
例として、顧客一覧から該当顧客へメール送信という仕組み。
1)データ結合:引数渡し
顧客一覧モジュールからメール送信モジュールへメールアドレスの値
のみを渡す。※顧客一覧モジュールの仕組みが大きく変わっても良い。
2)スタンプ結合:データ構造と引数を渡す。
顧客一覧からは、「氏名、TEL、メールアドレス」などたくさんの情報を渡す仕組みになっているが、データ属性を渡すので、受け側であるメール送信モジュールはデータ属性をみて判断できる。
たとえば、
name,鈴木
tel,03-111-222
mail,suzuki@mail.dom
※データ結合に比べて、受け側のメール送信モジュールでは作りこみがいる。
3)外部結合:DB参照のようなもの
メール送信モジュールから顧客一覧のDBを参照する。
Select mailaddress FROM 顧客一覧。
※顧客一覧のDB構造が変わらなければよいが、DB構造が変わるとメール送信モジュールも変更する必要あり
4)内部結合:メール送信モジュールが直接
顧客一覧の内部を参照する。
たとえば、顧客一覧の内部構造上の表記でメールアドレスを取得したり、顧客一覧画面で入力したメッセージなどを利用する。
※顧客一覧を作り変えたらメール送信モジュールも作り直す必要がある。これは大変
H26春AP午前
問46 モジュール分割の良否を,モジュール結合度の視点から評価する場合,最も適切な記述はどれか。
ア 共通データ領域は,全てのモジュールからアクセスできるようになっていることが望ましい。
イ ソフトウェア全体のモジュール分割の良否は,モジュール間の結合度のうちで最も強いものがどのように分布しているかで判断するのが望ましい。
ウ 直接の呼出し関係になっていないモジュール間で情報を交換するには,共通データ領域を用いるのが最も望ましい。
エ 呼び出す側と呼び出される側のモジュール間のデータの受渡しは,引数としてデータ項目を列挙するのが最も望ましい。
正解は、エ
過去問
■H23秋SA午後Ⅱ
問5 モジュールの独立性を高めるには,モジュール結合度を弱くする必要がある。モジュール間の情報の受渡し方法のうち,モジュール結合度が最も弱いものはどれか。
ア 共通域に定義したデータを関係するモジュールが参照する。
イ 制御パラメタを引数として渡し,モジュールの実行順序を制御する。
ウ 入出力に必要なデータ項目だけをモジュール間の引数として渡す。
工 必要なデータを外部宣言して共有する。
H20秋SW午前
問45 モジュール結合度に関する記述のうち,適切なものはどれか。
ア あるモジュールがCALL命令を使用せずにJUMP命令でほかのモジュールを呼び出すとき,このモジュール間の関係は,外部結合である。
イ 実行する機能や論理を決定するために引数を受け渡すとき,このモジュール間の関係は,内容結合である。
ウ 大域的な単一のデータ項目を参照するモジュール間の関係は,制御結合である。
エ 大域的なデータを参照するモジュール間の関係は,共通結合である。