アスペクト指向プログラミングとは?あすぺくとしこうぷろぐらみんぐ
アスペクト指向プログラミングとは、ログ出力・トランザクション制御・認可のように多数のモジュールへ散らばる横断的関心事を、アスペクトとして1か所に記述し、ポイントカットで指定した箇所へ自動的に織り込む(ウィービング)技法。業務ロジック側のソースには手を入れない。
最終更新:2026-10-06
この語が出る過去問を解く →背景
横断的関心事を各メソッドへ直接書くと、同じ数行が全体に散らばり、方針を変えるたびに全箇所を追うことになる。共通メソッドの呼出しにまとめても「呼び忘れ」は防げない。適用範囲を宣言で指定し機械的に挿入させることで、抜けのない適用と業務ロジックの見通しを同時に確保するのが、この技法の狙いである。
具体例
Spring FrameworkのAOPでは、「サービス層のpublicメソッドの前後で処理時間を記録する」「例外発生時にトランザクションをロールバックする」といった処理を、注釈と設定だけで対象すべてへ適用できる。
試験での引っ掛け
本体のソースに現れないため、コードを読んだだけでは何が実行されるか分からず、障害解析や影響範囲の把握が難しくなる副作用がある。ポイントカットの指定を広く取りすぎると意図しないメソッドまで対象になる点も、適用範囲を決めるときの論点になる。
関連用語
出た過去問
出典:令和6年度 春期 システムアーキテクト試験 午前Ⅱ 問7(IPA)
現在のプログラム A, B に、在庫テーブルを更新した後に更新ログを出力する機能を追加する。この機能は共通モジュールで実装し、どのプログラムからも利用できるよう…
正解:アスペクト指向プログラミング
要点:横断的関心事を宣言で織り込むのがアスペクト指向
アスペクト指向プログラミングは、ログ出力や認可のように複数のモジュールに横断して現れる関心事(横断的関心事)を切り出し、「どの処理の前後で何を実行するか」という宣言によって本来の処理へ織り込む技法である。各プログラムに呼出しを書き並べる必要がなくなるため、追加や変更が一箇所で済み、開発効率と保守性が高まる。
出典・参考
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。