平成24年度 春期 基本情報技術者試験 午前 問50
テクノロジ/開発技術ソフトウェアのリバースエンジニアリングの説明はどれか。
出典:平成24年度 春期 基本情報技術者試験 午前 問50
- アCASEツールなどを用いて,設計情報からソースコードを自動生成する。
- イ外部から見たときの振る舞いを変えずに,ソフトウェアの内部構造を変える。
- ウ既存のソフトウェアを解析し,その仕様や構造を明らかにする。
- エ既存のソフトウェアを分析し理解した上で,ソフトウェア全体を新しく構築し直す。
正解:ウ
解説
リバースエンジニアリングとは,既存のソフトウェア(ソースコードや実行ファイル)を解析することで,そのソフトウェアの仕様や内部構造を明らかにする手法です。ドキュメントが失われた既存システムの仕様を把握したり,改修の前提となる情報を得たりする際に用いられます。
選択肢ごとの解説
- ア誤り。設計情報からソースコードを自動生成するのは,フォワードエンジニアリング(順方向の開発)の考え方であり,リバースエンジニアリングとは逆の方向です。
- イ誤り。外部からの振る舞いを変えずに内部構造だけを改善するのはリファクタリングの説明です。
- ウ正しい。既存のソフトウェアを解析して仕様や構造を明らかにすることが,リバースエンジニアリングの定義です。
- エ誤り。既存システムを分析した上で全体を新しく作り直すのはリエンジニアリング(再構築)の説明であり,解析だけを行うリバースエンジニアリングとは異なります。