エンベデッドシステムスペシャリスト 2017年 午前2 問22
問題文
ヒューマンインタフェースをもつシステムにおいて、機能とヒューマンインタフェースの相互依存を弱めることによって、修正性や再利用性を向上させることを目的としたアーキテクチャパターンはどれか。
選択肢
ア:MVC(正解)
イ:イベントシステム
ウ:マイクロカーネル
エ:レイヤ
🔒 解説は解答すると表示されます
MVCアーキテクチャ【午前2解説】
正解の理由
機能とヒューマンインタフェースの相互依存を弱め、修正性や再利用性を高めるアーキテクチャパターンは、アのMVCです。
MVCは、システムを次の3つの役割に分けます。
- Model:データや業務処理を担当します。
- View:画面表示など、ユーザーへの情報提示を担当します。
- Controller:ユーザーからの入力を受け取り、ModelやViewを制御します。
役割を分離することで、たとえば画面のデザインを変更しても、業務処理への影響を小さくできます。また、Modelを別の画面から再利用しやすくなります。
解法ステップ
- 設問の「機能とヒューマンインタフェースの相互依存を弱める」に注目します。
- 機能と画面表示などを分離する代表的なパターンとして、MVCを思い出します。
- MVCが、Model・View・Controllerの役割分担によって修正性や再利用性を高めることを確認します。
選択肢別の誤答解説
- ア MVC:正解です。業務処理やデータ、画面表示、入力制御を分離し、機能とヒューマンインタフェースの依存を弱めます。
- イ イベントシステム:イベントの発生側と処理側を、イベントを介して連携させる方式です。疎結合化には有効ですが、設問が示す画面と機能の分離を目的とする代表的なパターンではありません。
- ウ マイクロカーネル:システムの最小限の機能をカーネルに置き、追加機能を外部のサーバなどとして構成する方式です。主にOSや大規模システムの機能拡張性などに関係します。
- エ レイヤ:システムを階層に分け、各層が隣接する層と連携する方式です。機能を層ごとに整理しますが、MVCのように画面表示と業務処理の役割分担を直接示すものではありません。
よくある誤解
-
「疎結合にするパターンなら、どれでも正解」と考える
複数の方式が依存関係を弱めるのに役立ちます。設問では、画面などのヒューマンインタフェースと機能を分離する点が決め手です。 -
MVCでは画面と業務処理が完全に無関係になると考える
役割を分けて依存を弱めますが、処理の連携自体は必要です。完全に独立するわけではありません。 -
Controllerを画面表示の担当と考える
主に画面表示を担当するのはViewです。Controllerは、ユーザー入力を受け取り、処理の流れを制御します。
補足コラム
MVCは、WebアプリケーションやGUIアプリケーションなどで広く使われる設計パターンです。画面の見た目を変更しやすくしたり、同じ業務処理を異なる画面から利用したりするのに役立ちます。
FAQ
Q. MVCの3要素を簡単に覚える方法はありますか?
A. 「Modelはデータ・業務処理、Viewは表示、Controllerは入力と制御」と整理すると覚えやすいです。
A. 「Modelはデータ・業務処理、Viewは表示、Controllerは入力と制御」と整理すると覚えやすいです。
Q. MVCを採用すれば、修正や再利用が必ず簡単になりますか?
A. 役割分担によって容易になることが期待できますが、分割方法が不適切だと、かえって複雑になる場合もあります。
A. 役割分担によって容易になることが期待できますが、分割方法が不適切だと、かえって複雑になる場合もあります。
関連キーワード: MVC、Model、View、Controller、疎結合、アーキテクチャパターン

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

