リバースエンジニアリングとは?
リバースエンジニアリングとは、既存のプログラムやデータベースを解析して、失われた設計情報や仕様を復元する手法。設計書が無いまま長年改修されてきたシステムの刷新で使う。復元した情報をもとに作り直す一連の流れをリエンジニアリングと呼ぶ。
応用情報技術者試験の過去問では3回出題されています(2016年度〜2023年度)。
りばーすえんじにありんぐ
リバースエンジニアリングの意味
既存のプログラムやデータベースを解析して、失われた設計情報や仕様を復元する手法。設計書が無いまま長年改修されてきたシステムの刷新で使う。復元した情報をもとに作り直す一連の流れをリエンジニアリングと呼ぶ。
リバースエンジニアリングの具体例
既存ソースからモジュール構成図を、既存テーブル定義からE-R図を復元し、現行仕様を確定させてから新方式へ移行する。復元と再構築を一括で行う自動変換ツールによる移行(マイグレーション)と組み合わせることもある。
リバースエンジニアリングは試験でどう引っ掛けられる?
設計から実装へ進むフォワードエンジニアリングと向きが逆であること、リバース単体では新しい成果物を作らないことが問われる。他社製品の解析は利用許諾や不正競争防止法上の制約を受ける場合がある。
リバースエンジニアリングと関連する用語
リバースエンジニアリングが出た過去問
ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングに該当するものはどれか。
正解:ソースプログラムを解析してプログラム仕様書を作る。
要点:リバースエンジニアリングは実装から設計情報を復元する
リバースエンジニアリングは、完成した成果物から設計内容を読み取り、仕様書や設計書といった上流の情報を復元する行為です。保守の場面では、ソースコードしか残っていないシステムの構造を把握するために用いられます。復元した設計をもとに作り直すのがフォワードエンジニアリングで、両者を組み合わせたものがリエンジニアリングです。
出典:平成28年度 秋期 応用情報技術者試験 午前 問49(IPA)問題は発生していないが、プログラムの仕様書と現状のソースコードとの不整合を解消するために、リバースエンジニアリングの手法を使って仕様書を作成し直す。これはソフト…
正解:完全化保守
要点:保守性向上を狙った修正は完全化保守に分類される
JIS X 0161ではソフトウェア保守を、是正・予防・適応・完全化の4つに分類する。完全化保守は、引渡し後のソフトウェアの性能や保守性を改善するために行う修正で、障害の発生とは無関係に実施される。仕様書とコードの食い違いを解消して以後の保守をしやすくする作業は、この完全化保守に当たる。
出典:令和4年度 春期 応用情報技術者試験 午前 問48(IPA)問題は発生していないが、プログラムの仕様書と現状のソースコードとの不整合を解消するために、リバースエンジニアリングの手法を使って仕様書を作成し直す。これはソフト…
正解:完全化保守
要点:完全化保守は障害がなくても行う保守性・性能の改善
完全化保守は、障害が起きていないソフトウェアに対して、性能や保守性を改善するために行う保守である。仕様書とソースコードの不整合を解消して文書を整備する作業は、将来の保守作業をしやすくするための品質向上であり、完全化保守に分類される。故障の修正は是正保守、環境変化への対応は適応保守、潜在的な障害の予防は予防保守である。
出典:令和5年度 秋期 応用情報技術者試験 午前 問48(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。