正答3
解説
正解は3です。
リバースエンジニアリングは、既に存在するソフトウェアを解析して、その仕様や内部構造を明らかにすることです。
設計書が残っていない古いシステムの保守や、互換製品の開発などで行われます。
【選択肢別解説】
1:× 設計情報からソースコードを自動生成するのは、フォワードエンジニアリングの説明です。
リバースエンジニアリングとは作業の向きが逆です。
2:× 外から見た振る舞いを変えずに、内部構造を改善するのはリファクタリングです。
3:○ 既存のソフトウェアを解析し、仕様や構造を明らかにするのがリバースエンジニアリングです。
ソースコードから設計情報を取り出す作業がこれに当たります。
4:× 既存のソフトウェアを分析して理解したうえで、全体を新しく作り直すのはリエンジニアリングです。
リバースエンジニアリングとフォワードエンジニアリングを組み合わせた作業です。
【ポイント】
リバース(解析)とフォワード(生成)を組み合わせて作り直すのがリエンジニアリングです。
リファクタリングは振る舞いを変えない内部改善という点で区別します。