モジュールとは
モジュールとは、システム・プログラムを最も細かく分解した各部品のことです。
システムは多くの機能の集合体です。モジュールはシステムの持つ機能をこれ以上分解できないレベルまで分解した単一機能・部品のイメージです。
システム・プログラムを設計する際に取り入れたい機能をモジュール単位に分割し、整理することを「モジュール分割」と言います。
「モジュール分割」を実施する際に、「モジュールの独立性」を意識することが重要です。
モジュールの独立性が高い、つまり、モジュール同士の関係性が薄いと不具合や修正に対する影響が小さく、システムのメンテナンスが行いやすくなります。
モジュールの独立性が高く、モジュール同士の紐づきが弱ければ、1つのモジュールで問題や修正点が発生した際に、それに応じて直さなければいけない他のモジュールが少なくなるからです。
モジュールの独立性を表す指標として以下の2つの観点があります。
- モジュール強度
- モジュール結合度
モジュール強度
モジュール強度とは、1つ1つのモジュールがどのくらい洗練されているかを表す指標のことです。
メンテナンスしやすさの観点では、1つのモジュールは単一機能のみを持っている状態が最も望ましいです。このような状態をモジュール強度が高い状態と言います。
モジュール強度と独立性の関係は、「モジュール強度が強い=モジュールの独立性が高い」です。
モジュール強度は以下の通り分類することができます。(上から強度が強い順)
1つのモジュールが持つ機能の数・関係性を基準に分類します。
強い
- 機能的強度:1モジュールあたり1機能
- 情報的強度:同じデータを使う複数の機能
- 連絡的強度:データ・処理結果が機能間で受け渡され、順番に実行される複数の機能
- 手順的強度:順番に実行される複数の機能
- 時間的強度:実行タイミングが同じ複数の機能
- 論理的強度:関連性がある複数の機能
- 暗号的強度:関連性のない複数の機能
弱い
統一感があればある程、モジュール強度は高いと考えておきましょう。
モジュール結合度
モジュール結合度とは、モジュール同士の結びつき・関係性の強さを表す指標のことです。
メンテナンスしやすさの観点では、モジュールはそれぞれが分離していて結びつきが可能な限り弱い状態が望ましいです。このような状態をモジュール結合度が弱い状態と言います。
モジュール結合度と独立性の関係は「モジュール結合度が弱い=モジュールの独立性が高い」です。
モジュール結合度は以下の通り分類することができます。(上から結合度が弱い順)
モジュール同士のやり取り方式を基準に分類します。
弱い
- データ結合:ルールを持たない(構造を持たない)データの受け渡しのみを行う
- スタンプ結合:ルールを持つ(構造化された)データのまとまりで受け渡しを行う
- 制御結合:他のモジュールの動作(処理)に関わるような設定データを渡す
- 外部結合:ルールを持たない(構造を持たない)データを「複数」のモジュールで共有
- 共通結合:ルールを持つ(構造化された)データのまとまりを「複数」のモジュールで共有
- 内容結合:他のモジュールの内容(プログラム/機能)を直接呼び出す
強い