平成21年度 プロジェクトマネージャ試験 午前II 問16
ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングの説明はどれか。
- ア ソースプログラムを解析してプログラム仕様書を作る。
- イ ソースプログラムを探索して修正箇所や影響度を調べる。
- ウ ソースプログラムを見直して構造化プログラムに変換する。
- エ ソースプログラムを分かりやすい表現に書き換える。
解答・解説を見る
正解:ア
AI解説
リバースエンジニアリングは,既存のソフトウェア(ソースプログラムなど)を解析して,設計書や仕様書といった上流の設計情報を導き出す技術である。開発の通常の流れ(仕様→プログラム)と逆方向(プログラム→仕様)であることが名前の由来であり,仕様書が失われた古いシステムの保守などで利用される。 ア: 正解。ソースプログラムを解析してプログラム仕様書という上流成果物を作り出すのは,まさにリバースエンジニアリングである。 イ: ソースを探索して修正箇所や影響範囲を調べるのは,保守における影響分析(影響調査)の説明である。 ウ: プログラムの外部的な振る舞いを変えずに構造化された形に変換するのは,リストラクチャリングの説明である。 エ: 振る舞いを変えずにソースを分かりやすい表現に書き換えるのは,リファクタリング(リストラクチャリング)の説明であり,仕様の導出ではない。 💡 「下流成果物から上流成果物を導く=リバース」,導いた仕様から再構築まで行えば「リエンジニアリング」。書換え系(リストラクチャリング/リファクタリング)との区別が定番のひっかけ。
出典:平成21年度 秋期 プロジェクトマネージャ試験 午前II 問16 / 独立行政法人情報処理推進機構(IPA)
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。
※Web掲載用に表記を一部変更しています。著作権はIPAに帰属します。