ホーム > データベーススペシャリスト試験 > 2009年
データベーススペシャリスト試験 2009年 午前2 問24
ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングの説明はどれか。
ア:ソースプログラムを解析してプログラム仕様書を作る。(正解)
イ:ソースプログラムを探索して修正箇所や影響度を調べる。
ウ:ソースプログラムを見直して構造化プログラムに変換する。
エ:ソースプログラムを分かりやすい表現に書き換える。
解説
リバースエンジニアリングの説明はどれか【午前2 解説】
要点まとめ
- 結論:リバースエンジニアリングとは、ソースプログラムを解析してプログラム仕様書を作成する技術です。
- 根拠:保守や改修時に既存プログラムの動作や構造を理解するため、設計情報を逆算的に抽出します。
- 差がつくポイント:単なる修正箇所の探索やコードの書き換えではなく、仕様書などのドキュメントを生成する点が特徴です。
正解の理由
リバースエンジニアリングは、既存のソフトウェアから設計情報や仕様を抽出し、ドキュメント化する技術です。
選択肢アは「ソースプログラムを解析してプログラム仕様書を作る」とあり、まさにこの定義に合致します。
他の選択肢は修正やコードの書き換えに関する内容であり、リバースエンジニアリングの本質とは異なります。
選択肢アは「ソースプログラムを解析してプログラム仕様書を作る」とあり、まさにこの定義に合致します。
他の選択肢は修正やコードの書き換えに関する内容であり、リバースエンジニアリングの本質とは異なります。
よくある誤解
リバースエンジニアリングは単にコードを修正したり、読みやすく書き換えたりすることではありません。
仕様や設計情報を抽出し、文書化することが目的です。
仕様や設計情報を抽出し、文書化することが目的です。
解法ステップ
- 問題文の「リバースエンジニアリング」の定義を思い出す。
- 選択肢の内容が「解析して仕様書を作る」かどうかを確認する。
- 修正や書き換えに関する選択肢は除外する。
- 最も適切な選択肢を選ぶ。
選択肢別の誤答解説
- ア: ソースプログラムを解析してプログラム仕様書を作る。
→ 正解。リバースエンジニアリングの定義に合致。 - イ: ソースプログラムを探索して修正箇所や影響度を調べる。
→ 保守作業の一部だが、リバースエンジニアリングの説明としては不十分。 - ウ: ソースプログラムを見直して構造化プログラムに変換する。
→ リファクタリングや構造化プログラミングの話であり、リバースエンジニアリングではない。 - エ: ソースプログラムを分かりやすい表現に書き換える。
→ コードのリライトやリファクタリングであり、仕様書作成とは異なる。
補足コラム
リバースエンジニアリングは、ソフトウェア保守や移植、セキュリティ解析など幅広い分野で活用されます。
特にドキュメントが不足している既存システムの理解に役立ち、保守コスト削減に貢献します。
また、逆コンパイルや静的解析ツールもリバースエンジニアリングの一環として利用されます。
特にドキュメントが不足している既存システムの理解に役立ち、保守コスト削減に貢献します。
また、逆コンパイルや静的解析ツールもリバースエンジニアリングの一環として利用されます。
FAQ
Q: リバースエンジニアリングとリファクタリングの違いは何ですか?
A: リバースエンジニアリングは仕様や設計情報を抽出する技術で、リファクタリングはコードの内部構造を改善する作業です。
A: リバースエンジニアリングは仕様や設計情報を抽出する技術で、リファクタリングはコードの内部構造を改善する作業です。
Q: リバースエンジニアリングは違法ですか?
A: 法的には対象ソフトウェアの著作権や契約条件によりますが、保守目的で正当な範囲内で行われることが多いです。
A: 法的には対象ソフトウェアの著作権や契約条件によりますが、保守目的で正当な範囲内で行われることが多いです。
関連キーワード: リバースエンジニアリング, ソフトウェア保守, 仕様書作成, 静的解析, プログラム解析