正答3
解説
正解は3です。
ソフトウェアの保守や再構築に関わる用語を区別する問題です。
リバースエンジニアリングは、既存のプログラムを解析し、その仕様や設計を明らかにする手法です。
ソースコードから設計情報を導くという、通常の開発とは逆向きの作業です。
【選択肢別解説】
1:× 設計情報からソースコードを自動生成するのは、フォワードエンジニアリングの説明です。
リバースエンジニアリングとは逆方向の作業です。
2:× 外から見た振る舞いを変えずに内部構造を改善するのは、リファクタリングの説明です。
3:○ 既存のソフトウェアを解析し、その仕様や構造を明らかにします。
これがリバースエンジニアリングです。
4:× 既存のソフトウェアを分析・理解したうえで全体を新しく作り直すのは、リエンジニアリングの説明です。
リバースエンジニアリングは、その最初の解析の段階に当たります。
【ポイント】
リエンジニアリングは、リバースエンジニアリングで仕様を明らかにし、フォワードエンジニアリングで作り直す流れです。
他社製品をリバースエンジニアリングする場合は、使用許諾契約に禁止条項がないか注意します。