正答1
解説
正解は1です。
リバースエンジニアリングは、既存のソフトウェアを解析して、その仕様や設計情報を取り出す技術です。
通常の開発(仕様からプログラムを作る流れ)とは逆向きに、プログラムから仕様を導きます。
【選択肢別解説】
1:○ ソースプログラムを解析してプログラム仕様書を作ることは、プログラムから仕様を取り出す作業です。
これがリバースエンジニアリングに該当します。
2:× ソースプログラムを探索して修正箇所や影響度を調べるのは、影響分析(影響範囲の調査)です。
仕様や設計を取り出す作業ではありません。
3:× ソースプログラムを構造化されたプログラムに変換するのは、リストラクチャリングです。
プログラムの外部的な動作を変えずに内部の構造を作り直す作業です。
4:× ソースプログラムを分かりやすい表現に書き換えるのは、プログラム自体の書換え(リファクタリングなど)です。
仕様書などの上位の情報を取り出す作業ではありません。
【ポイント】
リバースエンジニアリングで得た仕様をもとに新しいシステムを作ることを、フォワードエンジニアリングといいます。
この二つを組み合わせて既存システムを作り直すことを、リエンジニアリングといいます。