システム設計の話になると、
「機能分割」「責務分離」という言葉がよく出てきます。
どちらも似たような意味で使われがちですが、
この2つを混同すると、
設計は一気に壊れやすくなります。
応用情報技術者試験では、
この違いを理解しているかどうかが、
設問の読み取りに大きく影響します。
機能分割とは何か
機能分割とは、
何をする処理なのかを基準に分ける考え方です。
- 入力を受け取る
- 計算・判定を行う
- データを保存する
- 結果を表示する
といったように、
処理の役割ごとに整理します。
これは主に、
処理の見通しを良くするための分け方です。
責務分離とは何か
一方、責務分離は、
誰が何に責任を持つかを基準に分けます。
- この判断はどこで行うのか
- 変更に責任を持つのはどこか
- 失敗した場合に影響を受ける範囲はどこか
といった視点で整理します。
こちらは、
変更や障害に強い構造を作るための考え方です。
機能分割だけでは足りない理由
機能分割だけで設計すると、
- 処理は整理されているが
- 判断の責任があいまい
- 仕様変更の影響範囲が読めない
といった状態になりやすくなります。
応用情報の午後問題では、
この責任のあいまいさが
事故の原因として描かれることがよくあります。
責務をまたぐ設計が事故を生む
例えば、
- 業務ルールの判断を
画面側で行っている - データの整合性チェックを
複数の処理に分散している
こうした設計は、
一見すると問題なく動きます。
しかし、
変更や例外が入った瞬間に破綻します。
応用情報は、
その破綻ポイントを見抜けるかを問います。
応用情報での見抜き方
問題文を読むときは、
- その判断はどこで行われているか
- 本来そこが持つべき責務か
- 他の場所と重複していないか
を意識すると、
選択肢の違和感に気づきやすくなります。
実務でも同じ問題が起きる
実務でも、
- 「とりあえずここに書いた」
- 「動いているから問題ない」
という判断が積み重なると、
責務が崩れていきます。
応用情報は、
その崩れ方を
試験問題という形で整理しています。
まとめ
- 機能分割は「何をするか」
- 責務分離は「誰が責任を持つか」
この2つを混同すると、
システムは壊れやすくなります。
応用情報では、
正しそうに見える設計の危うさを
見抜く視点が求められます。
次回予告
次回は、
「要件定義と設計はなぜ揉めるのか」
を扱います。
人とシステムの境界の話です。


コメント