メインコンテンツへスキップ
システムアーキテクト令和6年度 春期午前II7

令和6年度 春期 システムアーキテクト 午前II7

難度標準

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

選択肢

アスペクト指向プログラミング
オブジェクト指向プログラミング
関数型プログラミング
構造化プログラミング

解説

結論 → 詳細 → 補足 の 3 層構成

展開
結論Layer 1

アスペクト指向プログラミングが正解です。アスペクト指向プログラミング(Aspect-Oriented Programming, AOP)は、プログラムの主要な機能(コア機能)とは別に、横断的な関心事(例えば、ログ出力、トランザクション管理、セキュリティチェックなど)をモジュール化し、それをプログラムの特定箇所に自動的に適用する技法です。問題文では、在庫テーブル更新というコア機能とは別に、更新ログ出力という横断的な関心事を共通モジュールで実装し、各プログラムに適用する点がAOPの特徴と合致しています。図案2で「呼び出し方の宣言を共通プログラムなどに記述することによって」とあるのは、AOPにおける「アスペクト」の定義と、それがプログラムの「ジョインポイント」に織り込まれる様子を示唆しています。

詳細Layer 2

オブジェクト指向プログラミングは、データとそれを操作する手続きを「オブジェクト」としてまとめる考え方であり、継承やポリモーフィズムなどを特徴としますが、ログ出力のような横断的な機能の分離・適用には直接的な解決策ではありません。関数型プログラミングは、計算を数学的な関数の評価として捉え、副作用を避けることに主眼を置きますが、これもログ出力のような状態変更を伴う処理を共通化する主要な技法ではありません。構造化プログラミングは、順次、選択、反復といった制御構造を用いてプログラムを記述する技法であり、モジュール化は行いますが、横断的な関心事を効率的に分離・適用する能力は限定的です。

この解説は?
この解説は AI 生成です(詳細)

解説テキストは Google Gemini に IPA 公式の問題文・公式解答を入力して生成しました。 人間によるレビューを行ったものと、未レビューのものが混在します。

AI は事実誤認・選択肢の取り違え・最新法令の反映漏れ等を含む可能性があります。 重要な判断は必ず IPA 公式 PDF または最新の参考書でご確認ください。

解説の検証プロセス・誤り報告フローは 運営透明性レポートで公開しています。

※ AI 生成の解説は誤りを含む可能性があります。重要な判断は IPA 公式資料でご確認ください。

最終更新:

分野「ソフトウェア設計」の学習ポイント

この問題の理解を「分野全体の力」に広げるための足がかり

何が問われるか
本問の分野で問われる代表的な知識・用語の整理。
学習の進め方
正解/誤答の選択肢ごとに「なぜ正しい / なぜ違うのか」を1行ずつ言語化すると定着する。
この分野の問題をもっと解く
AI コパイロット

この問題を AI と深掘りする

用語解説・選択肢分析・類題生成をその場で対話。クイズモードでは解答→解説がゼロ遷移。

クイズモードで開く

共有

X でシェアLINE

ショート動画

関連する問題

ソフトウェア設計 の他の問題