ネットワークスペシャリスト 2021年 午前2 問25
問題文
ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングに該当するものはどれか。
選択肢
ア:ソースプログラムを解析してプログラム仕様書を作る。(正解)
イ:ソースプログラムを探索して修正箇所や影響度を調べる。
ウ:ソースプログラムを見直して構造化されたプログラムに変換する。
エ:ソースプログラムを分かりやすい表現に書き換える。
リバースエンジニアリングに該当する技術とは【午前2 解説】
要点まとめ
- 結論:リバースエンジニアリングは既存のソフトウェアから仕様や設計情報を抽出する技術です。
- 根拠:ソースコードを解析してプログラム仕様書を作成する行為は、設計情報を逆解析する典型的な例です。
- 差がつくポイント:単なる修正やリファクタリングではなく、元の設計意図や仕様を明確化する目的があるかどうかで判断します。
正解の理由
ア: ソースプログラムを解析してプログラム仕様書を作る。は、既存のソフトウェアから設計や仕様を逆に抽出する行為であり、リバースエンジニアリングの定義に合致します。
他の選択肢は修正や改善、書き換えに関するもので、リバースエンジニアリングの本質である「逆解析」には該当しません。
他の選択肢は修正や改善、書き換えに関するもので、リバースエンジニアリングの本質である「逆解析」には該当しません。
よくある誤解
リバースエンジニアリングは単なるコードの修正やリファクタリングと混同されやすいですが、目的は「設計情報の抽出」である点が異なります。
解法ステップ
- リバースエンジニアリングの定義を確認する(既存ソフトから設計情報を抽出する技術)。
- 各選択肢の内容を「設計情報の抽出かどうか」で分類する。
- 設計情報を抽出する行為に該当する選択肢を選ぶ。
- 修正や書き換えはリバースエンジニアリングではないと判断する。
選択肢別の誤答解説
- イ: 修正箇所や影響度を調べるのは保守作業の一部であり、リバースエンジニアリングの「逆解析」ではありません。
- ウ: プログラムを構造化するのはリファクタリングやリデザインで、設計情報の抽出とは異なります。
- エ: 分かりやすい表現に書き換えるのはコードの可読性向上であり、リバースエンジニアリングの目的ではありません。
補足コラム
リバースエンジニアリングは、ドキュメントが不足している古いシステムの保守や移行時に特に重要です。解析結果をもとに仕様書を作成し、理解を深めることで安全な改修が可能になります。
FAQ
Q: リバースエンジニアリングは違法になることがありますか?
A: 著作権や契約により制限される場合がありますが、保守目的など正当な理由があれば許可されることもあります。
A: 著作権や契約により制限される場合がありますが、保守目的など正当な理由があれば許可されることもあります。
Q: リバースエンジニアリングとフォワードエンジニアリングの違いは?
A: フォワードエンジニアリングは仕様から設計・実装を行うのに対し、リバースエンジニアリングは既存の実装から仕様を抽出します。
A: フォワードエンジニアリングは仕様から設計・実装を行うのに対し、リバースエンジニアリングは既存の実装から仕様を抽出します。
関連キーワード: リバースエンジニアリング、ソフトウェア保守、仕様書作成、プログラム解析、保守技術

\ せっかくなら /
ネットワークスペシャリストを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

