令和3年度 春期 ネットワークスペシャリスト試験 午前Ⅱ 問25

ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングに該当するものはどれか。

解答・解説

正解: ア. ソースプログラムを解析してプログラム仕様書を作る。

リバースエンジニアリングとは、既存のソフトウェアのオブジェクトコードやソースプログラムを解析し、その動作原理やデータ構造などを明らかにして、プログラム仕様書や設計書などの上位レベルのドキュメントを作成・抽出する技術です。

この技術は、仕様書が残っていない古いシステムの保守などに用いられます。

したがって、ソースプログラムを解析してプログラム仕様書を作ることを述べている「ア」がリバースエンジニアリングに該当します。

各選択肢の解説

  • ア: 正解。既存のソースプログラムを解析してプログラム仕様書を作成することは、リバースエンジニアリングの代表的な手法です。
  • イ: 誤り。ソースプログラムから修正箇所や影響度を調べることは、影響分析(インパクトアナリシス)などに該当します。
  • ウ: 誤り。ソースプログラムを見直して内部構造を改善する(構造化されたプログラムに変換する)ことは、リファクタリングやリエンジニアリングに該当します。
  • エ: 誤り。外部から見た動作を変えずにソースプログラムを分かりやすい表現に書き換えることは、リファクタリングに該当します。

Spineチーム