システムアーキテクト試験 令和6年度 春期 午前II 問7
現在のプログラムA、Bに、在庫テーブルを更新した後に更新ログを出力する機能を追加する。この機能は共通モジュールで実装し、どのプログラムからも利用できるようにする。図は、プログラムの実装案である。案1も案2も、在庫テーブルを更新した後に更新ログが出力される。更新ログを出力する共通モジュールを呼び出す処理を、案1のように各プログラム中に直接記述するのではなく、案2のように呼び出し方の宣言を共通プログラムなどに記述することによって、開発の効率を高めたり、保守性を高めたりするプログラミング技法はどれか。

選択肢を押すと答え合わせができます。
正解と解説を見る
【正解】ア
図の案2では、プログラムAとBには在庫テーブルの更新処理だけが残り、別のプログラムXに「更新後にモジュールCを呼び出す」という宣言があります。このように、本来の業務処理とは別に多くの箇所へまたがるログ出力を、業務処理から分離して共通に適用する技法がアスペクト指向プログラミングです。更新処理の直後という適用箇所をポイントカット、そこで実行するログ出力をアドバイスとして定義し、両者を結び付けます。呼出しの重複がなくなり、対象追加や仕様変更も一か所で行いやすくなります。
イのオブジェクト指向プログラミングは誤りです。これは、データと操作をオブジェクトにまとめ、カプセル化、継承、ポリモーフィズムなどを利用する技法です。 ウの関数型プログラミングは誤りです。これは、処理を関数の評価として表し、状態変更や副作用を抑えて組み立てる技法です。 エの構造化プログラミングは誤りです。これは、処理を順次、選択、反復という基本制御構造で構成し、流れを明確にする技法です。
【ポイント】 ログ、認証、トランザクション管理など、複数の機能に横断して現れる処理を横断的関心事と呼びます。 アスペクト指向では、その処理を本体から分離し、どこで何を実行するかを宣言します。
出典:令和6年度 春期 システムアーキテクト試験 午前II 問7
※ 解説は SkillStack 編集部が作成したものです。Web 表示のため、図表の配置や表記を一部改めています。
この回の25問を、アプリで通しで解く
- 本番と同じ問題数・制限時間で通し演習(模試モード)
- 間違えた問題は自動で「復習すべき問題」に回る
- 解説で分からない点はAIに質問できる