(1)モジュールの強度と結合度
ソフトウェアの開発において、機能のまとまりをモジュールと言います。たとえば、販売管理システムでは、ログイン機能、検索機能、登録機能、メール送信機能など、いくつかのモジュールに分割できます。さらに、ログイン機能は、IDとパスワード入力、パスワード照合、エラー処理、などに分割できます。
ソフトウェアを適切なモジュールに分割することは、信頼性や保守性を向上させることができます。分かりやすい例として、スマートフォンを思い浮かべてください。スマートフォンは、電池パックやインターネットに接続するSIMカードが分離されています。ですから、仮にそれらが故障したとしても、電池パックやSIMだけを交換すればいいのです。保守性が高くなりますよね。仮に一体型であれば、修理を待つ時間が必要です。スマートフォンを利用できない時間が長くなり、信頼性も落ちてしまうのです。
(2)望ましいモジュールの分割のありかた
モジュール強度(結束度)を強くし、結合度を弱くすることです。具体的に説明します。
モジュールの強度
モジュールの強度は、1つのモジュール内での観点での内容です。具体的には、1つのモジュールが単一の機能だけのもの(「機能的強度」と言います)が最も強度が高く、望ましいあり方です。逆に、複数の機能で構成されるモジュールは、強度が弱くなります。
モジュールの結合度
結合度は、複数のモジュールとの関連性の観点での内容です。関連性が弱い、つまり、他のモジュールの依存しないものが望ましいあり方です。一つ例を挙げます。あるモジュールAが、別のモジュールBの内容を直接参照していたとします(「内部結合」と言います)。すると、モジュールBの仕様が変わると、それに合わせてモジュールAも変更しなければいけません。
ですので、モジュール間では、必要なデータ項目だけを引数で渡す(「データ結合」と言います)のが望ましい姿です。
H29秋AP午前
問46 モジュール設計に関する記述のうち,モジュール強度(結束性)が最も強いものはどれか。
ア ある木構造データを扱う機能をこのデータとともに一つにまとめ,木構造データをモジュールの外から見えないようにした。
イ 複数の機能のそれぞれに必要な初期設定の操作が,ある時点で一括して実行できるので,一つのモジュールにまとめた。
ウ 二つの機能A, Bのコードは重複する部分が多いので,A, Bを一つのモジュールにまとめ, A, Bの機能を使い分けるための引数を設けた。
エ 二つの機能A, Bは必ずA, Bの順番に実行され,しかもAで計算した結果をBで使うことがあるので,一つのモジュールにまとめた。
解説
単一の機能だけのものが、最も強度が強いモジュールです。
イ、ウ、エは、複数の機能を一つのモジュールにまとめているため、アに比べて強度は弱くなります。
ソフトウェアの開発において、機能のまとまりをモジュールと言います。たとえば、販売管理システムでは、ログイン機能、検索機能、登録機能、メール送信機能など、いくつかのモジュールに分割できます。さらに、ログイン機能は、IDとパスワード入力、パスワード照合、エラー処理、などに分割できます。
ソフトウェアを適切なモジュールに分割することは、信頼性や保守性を向上させることができます。分かりやすい例として、スマートフォンを思い浮かべてください。スマートフォンは、電池パックやインターネットに接続するSIMカードが分離されています。ですから、仮にそれらが故障したとしても、電池パックやSIMだけを交換すればいいのです。保守性が高くなりますよね。仮に一体型であれば、修理を待つ時間が必要です。スマートフォンを利用できない時間が長くなり、信頼性も落ちてしまうのです。
(2)望ましいモジュールの分割のありかた
モジュール強度(結束度)を強くし、結合度を弱くすることです。具体的に説明します。
モジュールの強度
モジュールの強度は、1つのモジュール内での観点での内容です。具体的には、1つのモジュールが単一の機能だけのもの(「機能的強度」と言います)が最も強度が高く、望ましいあり方です。逆に、複数の機能で構成されるモジュールは、強度が弱くなります。
モジュールの結合度
結合度は、複数のモジュールとの関連性の観点での内容です。関連性が弱い、つまり、他のモジュールの依存しないものが望ましいあり方です。一つ例を挙げます。あるモジュールAが、別のモジュールBの内容を直接参照していたとします(「内部結合」と言います)。すると、モジュールBの仕様が変わると、それに合わせてモジュールAも変更しなければいけません。
ですので、モジュール間では、必要なデータ項目だけを引数で渡す(「データ結合」と言います)のが望ましい姿です。
H29秋AP午前
問46 モジュール設計に関する記述のうち,モジュール強度(結束性)が最も強いものはどれか。
ア ある木構造データを扱う機能をこのデータとともに一つにまとめ,木構造データをモジュールの外から見えないようにした。
イ 複数の機能のそれぞれに必要な初期設定の操作が,ある時点で一括して実行できるので,一つのモジュールにまとめた。
ウ 二つの機能A, Bのコードは重複する部分が多いので,A, Bを一つのモジュールにまとめ, A, Bの機能を使い分けるための引数を設けた。
エ 二つの機能A, Bは必ずA, Bの順番に実行され,しかもAで計算した結果をBで使うことがあるので,一つのモジュールにまとめた。
解説
単一の機能だけのものが、最も強度が強いモジュールです。
イ、ウ、エは、複数の機能を一つのモジュールにまとめているため、アに比べて強度は弱くなります。
コメント