FE EXAM

モジュール分割(システムを部品に分ける)

システムを管理しやすい小さな部品(モジュール)に分割すること。

DIAGRAM
大きな1つのシステム → 小さな部品の集まりへ
分割前:1つの大きなプログラム巨大な1つの塊機能が絡み合い直しにくい分割分割後:機能ごとの部品(モジュール)主処理(全体のとりまとめ)入力処理1つの機能計算処理1つの機能出力処理1つの機能部品ごとに直せて再利用できる(中はまとまり、外とのつながりは少なく)
解説

📌
モジュール分割とは

大きな塊部品1部品2部品3

モジュール分割とは、システムを管理しやすい小さな部品(モジュール)に分けることです。モジュールとは、プログラムを機能ごとに区切った1つのまとまり(部品)のことを指します。

巨大なプログラムを1つの塊のまま作ると、どこに何があるか分からず、1か所直すと別の場所が壊れる、といった問題が起きます。そこで機能ごとに部品に分けておくことで、必要な部品だけを直したり、別のシステムで使い回したりできるようになります。

身近な例で考えると、レゴブロックに似ています。1枚の大きな板で形を作ると壊して作り直すしかありませんが、小さなブロックの組み合わせなら、一部だけ差し替えて修理したり別の作品に再利用したりできます。上の図解で、絡み合った大きな塊が機能ごとの部品に分かれる様子を確認しましょう。

📌
分割の方針

良い分割中まとまり・外つながり少悪い分割つながり多くからまる

分かりやすく保守しやすい部品にするには、分割の仕方に方針があります。
1モジュール1機能:1つの部品は1つの役割だけを担うようにする
適切な大きさ:大きすぎず小さすぎず、扱いやすいサイズに保つ
関連の深い機能はまとめる:一緒に使う処理は同じ部品に入れる
つながりは少なく:部品同士のやり取りはできるだけ減らす

代表的な分割の技法(手法)には、データの流れに沿って分けるSTS分割・TR分割や、データ構造に着目して分けるジャクソン法・ワーニエ法などがあります。いずれも目的は同じで、「中はよくまとまり、外とのつながりは少ない部品」を作ることです。

📌
強度・結合度との関係

分割が「良い」かどうかを測るものさしが、強度(凝集度)結合度です。良い分割は「強度は強く、結合度は弱く」が基本です。

ものさし意味良い分割は
強度(凝集度)1つの部品の中の機能のまとまりの強さ強いほど良い
結合度部品同士の依存(つながり)の強さ弱いほど良い

強度は「部品の中身がどれだけ1つの目的にまとまっているか」、結合度は「部品と部品がどれだけ深く依存し合っているか」を表します。中身がよくまとまり(強い強度)、外とのつながりが少ない(弱い結合度)部品ほど、1か所の修正が他に波及しにくく、保守も再利用もしやすくなります。

文房具で考えると、「機能がそろった筆箱」のようなイメージです。筆箱の中はペン・消しゴムなど書く道具でまとまっていて(強い強度)、他の引き出しと中身を奪い合わない(弱い結合度)ほど、持ち運びやすく管理も楽になります。

練習問題

🎯
基本情報技術者 練習問題

Q1.モジュール分割の説明として最も適切なものはどれか。
A.システムを管理しやすい小さな部品(モジュール)に分割すること
B.すべての機能を1つの大きなプログラムにまとめること
C.利用者が操作する画面を設計すること
D.完成したプログラムをテストすること
Q2.モジュール分割の方針として適切でないものはどれか。
A.1つのモジュールが1つの機能を担うようにする
B.モジュールの大きさを適切な範囲に保つ
C.モジュール同士のつながりをできるだけ強くする
D.関連の深い機能はまとめる
Q3.良いモジュール分割と「強度(凝集度)・結合度」の関係として正しいものはどれか。
A.強度は弱く、結合度は強くするのがよい
B.強度は強く、結合度は弱くするのがよい
C.強度も結合度もどちらも強くするのがよい
D.強度も結合度もどちらも弱くするのがよい

関連コンテンツ