応用情報技術者 2016年 秋期 午前2 問49
問題文
ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングに該当するものはどれか。
選択肢
ア:ソースプログラムを解析してプログラム仕様書を作る。(正解)
イ:ソースプログラムを探索して修正箇所や影響度を調べる。
ウ:ソースプログラムを見直して構造化されたプログラムに変換する。
エ:ソースプログラムを分かりやすい表現に書き換える。
リバースエンジニアリングに該当する技術とは【午前2 解説】
要点まとめ
- 結論:リバースエンジニアリングは既存のソフトウェアから仕様や設計情報を抽出する技術です。
- 根拠:ソースコードを解析してプログラム仕様書を作成する行為は、設計情報を逆解析する典型的なリバースエンジニアリングの例です。
- 差がつくポイント:単なる修正やリファクタリングではなく、設計や仕様を明らかにする目的でコードを解析する点を理解しましょう。
正解の理由
ア: ソースプログラムを解析してプログラム仕様書を作る。は、既存のソフトウェアから設計や仕様を逆に抽出する行為であり、リバースエンジニアリングの本質に合致します。
他の選択肢は保守や改良のための作業であり、仕様抽出を目的とした逆解析とは異なります。
他の選択肢は保守や改良のための作業であり、仕様抽出を目的とした逆解析とは異なります。
よくある誤解
リバースエンジニアリングは単なるコード修正やリファクタリングではなく、設計情報を抽出するための解析作業です。
コードの見直しや書き換えはリバースエンジニアリングの一部ではありません。
コードの見直しや書き換えはリバースエンジニアリングの一部ではありません。
解法ステップ
- 問題文の「リバースエンジニアリング」の定義を確認する。
- 各選択肢が「既存ソフトウェアから設計や仕様を抽出する」かどうかを判断する。
- 仕様書作成は設計情報の逆解析に該当するため正解とする。
- 修正や影響度調査、構造化変換、書き換えは目的が異なるため除外する。
選択肢別の誤答解説
- イ: 修正箇所や影響度調査は保守作業の一環であり、仕様抽出ではない。
- ウ: 構造化プログラムへの変換はリファクタリングであり、逆解析とは異なる。
- エ: 分かりやすい表現への書き換えはリファクタリングやコード整形であり、設計情報の抽出ではない。
補足コラム
リバースエンジニアリングは、ドキュメントが不足している既存システムの理解や保守に不可欠な技術です。
また、セキュリティ解析や互換性検証にも応用され、ソフトウェア開発の重要なプロセスの一つです。
また、セキュリティ解析や互換性検証にも応用され、ソフトウェア開発の重要なプロセスの一つです。
FAQ
Q: リバースエンジニアリングは違法ですか?
A: 法的には著作権や契約により制限される場合がありますが、保守や互換性確保のための解析は一般的に認められています。
A: 法的には著作権や契約により制限される場合がありますが、保守や互換性確保のための解析は一般的に認められています。
Q: リバースエンジニアリングとフォワードエンジニアリングの違いは?
A: フォワードエンジニアリングは仕様から設計・実装を行う工程、リバースは既存の実装から仕様や設計を抽出する工程です。
A: フォワードエンジニアリングは仕様から設計・実装を行う工程、リバースは既存の実装から仕様や設計を抽出する工程です。
関連キーワード: リバースエンジニアリング、ソフトウェア保守、仕様抽出、プログラム解析、リファクタリング

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

