凝集度とは?
「凝集度(Cohesion)」とは、ソフトウェア工学において、あるモジュール内のプログラムの関連性を測定する指標の一つです。具体的には、同一の責務を持つプログラムが一箇所にまとまっているかどうかを示します。高い凝集度を持つモジュールは、可読性が高く、保守性に優れています。
ソフトウェアのモジュール化に関する指標
ソフトウェアを設計する際、モジュール化は重要な作業の一つです。モジュール化とは、大きなソフトウェアを小さな部品に分割することで、開発や保守を容易にするための手法です。モジュール化することで、プログラムをより構造化し、保守性や再利用性を向上させることができます。
しかし、ただ単に分割するだけではなく、それぞれのモジュールには明確な責務を持たせる必要があります。ここで、「凝集度」が非常に重要な役割を果たします。
凝集度の種類
凝集度には、以下のような種類があります。
- 機能的凝集度
- 情報的凝集度
- 時序的凝集度
- 手続き的凝集度
- 選択的凝集度
機能的凝集度
機能的凝集度は、同じ種類の処理を行うプログラムをまとめることを指します。例えば、ファイルの読み書き処理のように、同じ機能を担当するプログラムを一箇所にまとめることが望ましいとされます。
情報的凝集度
情報的凝集度は、同じデータを扱うプログラムをまとめることを指します。例えば、従業員の基本情報を扱うプログラムを一箇所にまとめることが望ましいとされます。
時序的凝集度
時序的凝集度は、同じタイミングで実行されるプログラムをまとめることを指します。例えば、データの整合性を確認するプログラムと、データを更新するプログラムを同じモジュールにまとめることが望ましいとされます。
手続き的凝集度
手続き的凝集度は、同じ手順を踏むプログラムをまとめることを指します。例えば、ファイルを開く・読み込む・処理する・保存するという手順を踏むプログラムを一箇所にまとめることが望ましいとされます。
選択的凝集度
選択的凝集度は、同じ条件で処理されるプログラムをまとめることを指します。例えば、特定の商品を表示するプログラムをまとめることが望ましいとされます。
まとめ
モジュール化することで、ソフトウェアの可読性や保守性を向上させることができます。その際に、凝集度を適切に測定することは非常に重要です。機能的、情報的、時序的、手続き的、選択的といった種類があり、それぞれの特徴を理解し、適切にモジュール化を行うことで、より良いソフトウェアの開発が可能となります。