応用情報技術者 2018年 秋期 午前2 問47
問題文
ソフトウェアアーキテクチャパターンのうち、仕様の追加や変更による影響が及ぶ範囲を限定できるようにするために、機能を業務ロジック、画面出力、それらの制御という、三つのコンポーネントに分けるものはどれか。
選択肢
ア:Broker
イ:Layers
ウ:MVC(正解)
エ:Pipes and Filters
ソフトウェアアーキテクチャパターンのうち、仕様の追加や変更による影響が及ぶ範囲を限定できるようにするために、機能を業務ロジック、画面出力、それらの制御という、三つのコンポーネントに分けるものはどれか。【午前2 解説】
要点まとめ
- 結論:仕様変更の影響範囲を限定するために、業務ロジック・画面出力・制御の三つに分けるパターンはMVCである。
- 根拠:MVCはModel(業務ロジック)、View(画面出力)、Controller(制御)に役割を分離し、変更の局所化を図る設計手法である。
- 差がつくポイント:他の選択肢は役割分担の観点が異なり、特にBrokerやPipes and Filtersは通信や処理の流れに着目している点で区別できる。
正解の理由
ウ: MVCはModel(業務ロジック)、View(画面出力)、Controller(制御)という三つのコンポーネントに分けることで、仕様変更があっても影響範囲を限定できる設計パターンです。これにより、例えば画面の変更はViewに限定され、業務ロジックには影響を与えにくくなります。
よくある誤解
MVCは単に画面表示のためのパターンと誤解されがちですが、実際には制御と業務ロジックを明確に分離し、保守性を高めるための設計思想です。
解法ステップ
- 問題文の「業務ロジック、画面出力、制御の三つのコンポーネントに分ける」という特徴を確認する。
- 各選択肢のパターンの特徴を思い出す。
- Brokerは分散システムの通信仲介、Layersは階層構造、Pipes and Filtersは処理の流れに着目。
- MVCだけがModel、View、Controllerの三つに分けるパターンであると判断する。
選択肢別の誤答解説
- ア: Broker
分散システムでコンポーネント間の通信を仲介するパターンであり、業務ロジックや画面出力の分離とは異なる。 - イ: Layers
システムを階層に分けて役割を分担するが、画面出力や制御を三つに分けるMVCとは異なる。 - ウ: MVC
正解。Model、View、Controllerの三つに分けて影響範囲を限定する。 - エ: Pipes and Filters
データ処理を複数のフィルターで段階的に行うパターンで、画面出力や制御の分離とは異なる。
補足コラム
MVCは1970年代にSmalltalkの開発で提唱され、現在のWebアプリケーションやGUI設計で広く使われています。Modelはデータや業務ルールを管理し、Viewはユーザーインターフェース、Controllerはユーザーの操作を受けてModelとViewを仲介します。これにより変更の影響を局所化し、保守性や拡張性を高めます。
FAQ
Q: MVCの三つのコンポーネントは具体的に何を担当しますか?
A: Modelは業務ロジックやデータ管理、Viewは画面表示、Controllerはユーザー操作の制御を担当します。
A: Modelは業務ロジックやデータ管理、Viewは画面表示、Controllerはユーザー操作の制御を担当します。
Q: LayersパターンとMVCの違いは何ですか?
A: Layersは機能を階層的に分ける設計で、MVCは画面表示・制御・業務ロジックの三つの役割に分ける点が特徴です。
A: Layersは機能を階層的に分ける設計で、MVCは画面表示・制御・業務ロジックの三つの役割に分ける点が特徴です。
関連キーワード: MVC, ソフトウェアアーキテクチャ、Model-View-Controller, 保守性、設計パターン

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

