データベーススペシャリスト試験 2009年 午前224


ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングの説明はどれか。
ソースプログラムを解析してプログラム仕様書を作る。(正解)
ソースプログラムを探索して修正箇所や影響度を調べる。
ソースプログラムを見直して構造化プログラムに変換する。
ソースプログラムを分かりやすい表現に書き換える。

解説

リバースエンジニアリングの説明はどれか【午前2 解説】

要点まとめ

  • 結論:リバースエンジニアリングとは、ソースプログラムを解析してプログラム仕様書を作成する技術です。
  • 根拠:保守や改修時に既存プログラムの動作や構造を理解するため、設計情報を逆算的に抽出します。
  • 差がつくポイント:単なる修正箇所の探索やコードの書き換えではなく、仕様書などのドキュメントを生成する点が特徴です。

正解の理由

リバースエンジニアリングは、既存のソフトウェアから設計情報や仕様を抽出し、ドキュメント化する技術です。
選択肢アは「ソースプログラムを解析してプログラム仕様書を作る」とあり、まさにこの定義に合致します。
他の選択肢は修正やコードの書き換えに関する内容であり、リバースエンジニアリングの本質とは異なります。

よくある誤解

リバースエンジニアリングは単にコードを修正したり、読みやすく書き換えたりすることではありません。
仕様や設計情報を抽出し、文書化することが目的です。

解法ステップ

  1. 問題文の「リバースエンジニアリング」の定義を思い出す。
  2. 選択肢の内容が「解析して仕様書を作る」かどうかを確認する。
  3. 修正や書き換えに関する選択肢は除外する。
  4. 最も適切な選択肢を選ぶ。

選択肢別の誤答解説

  • ア: ソースプログラムを解析してプログラム仕様書を作る。
    → 正解。リバースエンジニアリングの定義に合致。
  • イ: ソースプログラムを探索して修正箇所や影響度を調べる。
    → 保守作業の一部だが、リバースエンジニアリングの説明としては不十分。
  • ウ: ソースプログラムを見直して構造化プログラムに変換する。
    → リファクタリングや構造化プログラミングの話であり、リバースエンジニアリングではない。
  • エ: ソースプログラムを分かりやすい表現に書き換える。
    → コードのリライトやリファクタリングであり、仕様書作成とは異なる。

補足コラム

リバースエンジニアリングは、ソフトウェア保守や移植、セキュリティ解析など幅広い分野で活用されます。
特にドキュメントが不足している既存システムの理解に役立ち、保守コスト削減に貢献します。
また、逆コンパイルや静的解析ツールもリバースエンジニアリングの一環として利用されます。

FAQ

Q: リバースエンジニアリングとリファクタリングの違いは何ですか?
A: リバースエンジニアリングは仕様や設計情報を抽出する技術で、リファクタリングはコードの内部構造を改善する作業です。
Q: リバースエンジニアリングは違法ですか?
A: 法的には対象ソフトウェアの著作権や契約条件によりますが、保守目的で正当な範囲内で行われることが多いです。

関連キーワード: リバースエンジニアリング, ソフトウェア保守, 仕様書作成, 静的解析, プログラム解析
← 前の問題へ次の問題へ →

©︎2025 情報処理技術者試験対策アプリ