IPA過去問ドリル

令和6年度 春期 システムアーキテクト試験 午前Ⅱ 問7

テクノロジ/開発技術

現在のプログラム A,B に,在庫テーブルを更新した後に更新ログを出力する機能を追加する。この機能は共通モジュールで実装し,どのプログラムからも利用できるようにする。図は,プログラムの実装案である。案 1 も案 2 も,在庫テーブルを更新した後に更新ログが出力される。案 1 では,更新ログを出力する共通モジュール(モジュール C)を呼び出す処理を,プログラム A,B のそれぞれに直接記述する。案 2 では,各プログラム中には呼出し処理を記述せず,「在庫テーブルを更新した後にモジュール C を呼び出す」という呼び出し方の宣言をプログラム X(共通プログラム)に記述しておくことによって,プログラム A,B が在庫テーブルを更新した際に自動的にモジュール C が呼び出されるようにする。案 2 のように,呼び出し方の宣言を共通プログラムなどに記述することによって,開発の効率を高めたり,保守性を高めたりするプログラミング技法はどれか。

出典:令和6年度 春期 システムアーキテクト試験 午前Ⅱ 問7

正解:ア

解説

アスペクト指向プログラミングは,ログ出力やトランザクション管理など,複数のモジュールに横断的に現れる関心事(横断的関心事)を,本来の業務処理を記述するプログラムとは別に,「どのタイミングでどの処理を差し込むか」という宣言(アドバイスやポイントカット)としてまとめて記述する技法です。各プログラムを変更することなく共通処理を組み込めるため,開発の効率や保守性が高まります。

選択肢ごとの解説

  • 正しい。呼出し方の宣言を共通プログラムに記述し,各プログラムには呼出し処理を直接書かずに済ませる技法は,アスペクト指向プログラミングです。
  • 誤り。オブジェクト指向プログラミングは,データと手続きを一体化したオブジェクトを単位として設計・実装する技法であり,横断的関心事を宣言的に分離する技法ではありません。
  • 誤り。関数型プログラミングは,副作用のない関数の組合せによって処理を記述するプログラミングパラダイムであり,設問の技法とは異なります。
  • 誤り。構造化プログラミングは,順次・選択・繰返しの三つの制御構造を用いてプログラムを記述する技法であり,設問の技法とは異なります。
システムアーキテクトの過去問を演習モードで解く