令和4年度 春期 システムアーキテクト試験 午前II 問3

Pattern-Oriented Software Architecture (POSA)のアーキテクチャパターンのうち,ソフトウェアをメタレベルとベースレベルの二つのレベルに分割し,ソフトウェアの構造と振る舞いとを動的に変更できる仕組みを提供しているものはどれか。

解答・解説

正解: エ. Reflection

POSA(Pattern-Oriented Software Architecture) は、ソフトウェアアーキテクチャの設計パターンを体系化したものです。設問の記述にある「ソフトウェアをメタレベルとベースレベルの二つのレベルに分割」し、「動的に変更できる仕組み」を提供するものは Reflection(リフレクション) パターンです。

  • メタレベル: ソフトウェア自体の構造や振る舞い(クラスの構造、型情報など)に関する情報を保持・管理します。
  • ベースレベル: アプリケーションの本来のビジネスロジックやドメイン固有の処理を行います。

このパターンを用いることで、プログラムの実行中に自身の構造を調べたり変更したりすることが可能になります。したがって、正解は エ です。

各選択肢の解説

  • ア. Broker
    分散システムにおいて、コンポーネント間の通信を仲介するアーキテクチャパターンです。クライアントとサーバー間の直接的な依存関係を排除し、ネットワーク通信の詳細を隠蔽します。

  • イ. Microkernel
    システムのコア機能(マイクロカーネル)と、拡張機能(プラグインなど)を分離するアーキテクチャパターンです。オペレーティングシステム(OS)などで用いられ、機能の追加や環境の変化に柔軟に対応できるようにします。

  • ウ. Model-View-Controller
    対話型アプリケーションを、ビジネスロジックを扱う「Model」、画面表示を扱う「View」、ユーザー入力を処理する「Controller」の3つに分割するアーキテクチャパターンです。依存関係を整理し、ユーザーインターフェースとロジックを分離します。

  • エ. Reflection
    正解です。ソフトウェアをメタレベルとベースレベルの二つのレベルに分割し、ソフトウェアの構造と振る舞いとを動的に変更できる仕組みを提供するアーキテクチャパターンです。

Spineチーム