応用情報技術者 2012年 春期 午前2 問50
問題文
リバースエンジニアリングの説明はどれか。
選択肢
ア:既存のプログラムからそのプログラムの仕様を導き出すこと(正解)
イ:既存のプログラムから導き出された仕様を修正してプログラムを開発すること
ウ:クラスライブラリ内の既存のクラスを利用してプログラムを開発すること
エ:部品として開発されたプログラムを組み合わせてプログラムを開発すること
リバースエンジニアリングの説明【午前2 解説】
要点まとめ
- 結論:リバースエンジニアリングとは既存プログラムから仕様を解析・抽出する技術です。
- 根拠:ソフトウェアの設計情報が不明な場合に、動作や構造を理解するために用いられます。
- 差がつくポイント:単にプログラムを修正・再利用するのではなく、仕様を「逆解析」する点が重要です。
正解の理由
ア: 既存のプログラムからそのプログラムの仕様を導き出すことが正解です。
リバースエンジニアリングは、ソースコードやバイナリから設計情報や仕様を抽出し、理解・解析する手法を指します。これにより、ドキュメントがない場合でもプログラムの動作や構造を把握できます。
リバースエンジニアリングは、ソースコードやバイナリから設計情報や仕様を抽出し、理解・解析する手法を指します。これにより、ドキュメントがない場合でもプログラムの動作や構造を把握できます。
よくある誤解
リバースエンジニアリングは単なるプログラムの修正や再利用ではありません。仕様を「逆に解析」することが本質です。
解法ステップ
- 問題文の「リバースエンジニアリング」の意味を確認する。
- 選択肢の内容を「仕様を導き出す」「修正する」「利用する」「組み合わせる」で分類。
- 「仕様を導き出す」ことがリバースエンジニアリングの定義と合致するか検証。
- 一致する選択肢を正解と判断。
選択肢別の誤答解説
- イ: 仕様を修正して開発するのはリバースエンジニアリングではなく、仕様変更やリファクタリングに近い。
- ウ: 既存クラスを利用するのはライブラリ利用やコンポーネント再利用であり、逆解析ではない。
- エ: 部品を組み合わせるのはモジュール化やコンポーネントベース開発で、リバースエンジニアリングの説明ではない。
補足コラム
リバースエンジニアリングはセキュリティ解析やバグ修正、互換性確保のために活用されます。特にレガシーシステムの保守やマイグレーションで重要な技術です。
FAQ
Q: リバースエンジニアリングは違法ですか?
A: 法的には著作権や契約により制限される場合がありますが、正当な目的での解析は認められることもあります。
A: 法的には著作権や契約により制限される場合がありますが、正当な目的での解析は認められることもあります。
Q: リバースエンジニアリングとフォワードエンジニアリングの違いは?
A: フォワードエンジニアリングは仕様から設計・実装を行う工程、リバースは既存成果物から仕様を逆解析する工程です。
A: フォワードエンジニアリングは仕様から設計・実装を行う工程、リバースは既存成果物から仕様を逆解析する工程です。
関連キーワード: リバースエンジニアリング、仕様解析、ソフトウェア保守、逆解析、レガシーシステム

\ せっかくなら /
応用情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

