ソフトウェアのリバースエンジニアリング

リバースエンジニアリング(Reverse Engineering:逆工学)は、既存の実行コードやソースプログラムなどの成果物を解析・分析することにより、失われた設計書やプログラム仕様書などの上位工程の成果物(アルゴリズム、内部構造、仕様など)を復元・導出する技術です。 ソースプログラムを探索・解析して修正箇所や他のモジュールへの影響度を調べる手法は、影響波及分析(インパクトアナリシス)の説明です。 既存プログラムの外部から見た振る舞い(機能仕様)を保ったまま、ソースプログラムを見直して内部構造を整理・改善(構造化)する手法は、リファクタリング(リエンジニアリング)の説明です。 プログラムの可読性や保守性を向上させるために分かりやすい表現に書き換える作業も、リファクタリングの一環です。

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

出典令和3年度 春期 ネットワークスペシャリスト試験 午前Ⅱ
ソースプログラムを解析してプログラム仕様書を作る。
ソースプログラムを探索して修正箇所や影響度を調べる。
ソースプログラムを見直して構造化されたプログラムに変換する。
ソースプログラムを分かりやすい表現に書き換える。