エンベデッドシステムスペシャリスト 2021年 午前2 問21
問題文
ヒューマンインタフェースをもつシステムにおいて、機能とヒューマンインタフェースの相互依存を弱めることによって、修正性や再利用性を向上させることを目的としたアーキテクチャパターンはどれか。
選択肢
ア:MVC(正解)
イ:イベントシステム
ウ:マイクロカーネル
エ:レイヤ
🔒 解説は解答すると表示されます
MVCパターン【午前2解説】
正解の理由
正解はアの MVC です。
MVCは、システムを Model(モデル)、View(ビュー)、**Controller(コントローラ)**に分けるアーキテクチャパターンです。データや業務処理を担うModelと、画面表示を担うViewなどの役割を分離することで、機能とヒューマンインタフェースの結び付きが弱くなります。
その結果、画面の変更が業務処理に及ぼす影響を抑えやすくなり、修正性や再利用性の向上につながります。
解法ステップ
- 問題文から「ヒューマンインタフェース」と「機能」の分離に注目します。
- 画面表示や操作と、データ・業務処理を分ける代表的なパターンを考えます。
- それぞれの役割をModel、View、Controllerに分けるMVCを選びます。
選択肢別の誤答解説
-
ア MVC
Model、View、Controllerに役割を分け、機能と画面の相互依存を弱めます。設問の目的に合致します。 -
イ イベントシステム
イベントの発生と、そのイベントへの処理を分離する方式です。構成要素間の連携を疎結合にできますが、ヒューマンインタフェースと機能の分離を直接示すものではありません。 -
ウ マイクロカーネル
OSなどの基本機能を最小限の中核に置き、追加機能を外部のサーバなどとして構成する方式です。機能の拡張性や障害の分離に関係します。 -
エ レイヤ
システムを階層に分け、各層が隣接する層を介して連携する方式です。機能を層ごとに整理する考え方ですが、画面と機能の分離を問う本問の代表的な答えではありません。
よくある誤解
-
「疎結合」とあればイベントシステムだと決めつける
疎結合は幅広い設計上の性質です。本問では、画面と機能の相互依存を弱めるという目的に注目します。 -
MVCを単なる画面設計の方式だと考える
MVCは画面の見た目だけでなく、データや業務処理を含むソフトウェアの役割分担に関するパターンです。 -
レイヤとMVCを同じものと考える
どちらも責務を分けますが、分け方の観点が異なります。レイヤは階層、MVCはモデル・画面・操作制御の役割分担です。
補足コラム
MVCでは、Modelがデータや業務ルール、Viewが表示、Controllerが利用者の入力を受け取って処理を調整します。役割を分けることで、たとえば画面デザインを変更しても、業務処理への影響を抑えやすくなります。
ただし、MVCを採用すれば必ず修正性が高まるわけではありません。各役割の責務が曖昧になったり、依存関係が複雑になったりすると、分離の効果が薄れることがあります。
FAQ
Q. Modelには何を含めますか?
A. データの管理や、業務上のルール・処理などを含めます。具体的な範囲はシステムの設計によって異なります。
A. データの管理や、業務上のルール・処理などを含めます。具体的な範囲はシステムの設計によって異なります。
Q. MVCの目的は、画面とデータを完全に無関係にすることですか?
A. 完全に無関係にするのではなく、それぞれの変更が他方へ与える影響を小さくすることが目的です。
A. 完全に無関係にするのではなく、それぞれの変更が他方へ与える影響を小さくすることが目的です。
関連キーワード: MVC、Model、View、Controller、アーキテクチャパターン、疎結合、保守性

\ せっかくなら /
エンベデッドシステムスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

