リバースエンジニアリングとは?りばーすえんじにありんぐ
リバースエンジニアリングとは、設計書よりもコードやテーブル定義のほうが正になってしまったシステムから、解析によって仕様と構造を取り戻す作業。刷新や統合の前に現行仕様を確定させる目的で行い、開発の工程を逆向きにたどる点が特徴。復元した情報をもとに作り直すところまで含めた流れがリエンジニアリング。
最終更新:2026-10-06
この語が出る過去問を解く →背景
長く使われたシステムでは設計書が改修に追いつかず、正しい仕様はコードにしか残っていない状態になる。担当者の退職が重なれば、なぜその処理があるのかを知る者もいなくなる。この状態のまま新方式へ移ろうとしても、移行先に何を作ればよいかが決められない。リバースエンジニアリングは、動いている実装から仕様を取り戻して移行の出発点を作る作業である。
具体例
20年動いてきた基幹システムの刷新では、まず稼働中のテーブル定義からE-R図を、ソースコードから呼出し関係とクラス図を起こして現行仕様を固める。そのうえで新方式へ作り直すか、自動変換ツールで一括移行(マイグレーション)するかを判断する。
試験での引っ掛け
設計から実装へ進むフォワードエンジニアリングと向きが逆で、リバース単体では新しい成果物を作らない点が問われる。他社製品の解析には制約があり、権利者の許可なく解析結果に基づいて開発・販売すれば知的財産権の侵害となりうるほか、利用許諾契約が解析自体を禁じている場合もある。
関連用語
出た過去問
出典:平成28年度 秋期 応用情報技術者試験 午前 問49(IPA)
ソフトウェアを保守するときなどに利用される技術であるリバースエンジニアリングに該当するものはどれか。
正解:ソースプログラムを解析してプログラム仕様書を作る。
要点:リバースエンジニアリングは実装から設計情報を復元する
リバースエンジニアリングは、完成した成果物から設計内容を読み取り、仕様書や設計書といった上流の情報を復元する行為です。保守の場面では、ソースコードしか残っていないシステムの構造を把握するために用いられます。復元した設計をもとに作り直すのがフォワードエンジニアリングで、両者を組み合わせたものがリエンジニアリングです。
出典:令和5年度 秋期 応用情報技術者試験 午前 問48(IPA)
問題は発生していないが、プログラムの仕様書と現状のソースコードとの不整合を解消するために、リバースエンジニアリングの手法を使って仕様書を作成し直す。これはソフト…
正解:完全化保守
要点:完全化保守は障害がなくても行う保守性・性能の改善
完全化保守は、障害が起きていないソフトウェアに対して、性能や保守性を改善するために行う保守である。仕様書とソースコードの不整合を解消して文書を整備する作業は、将来の保守作業をしやすくするための品質向上であり、完全化保守に分類される。故障の修正は是正保守、環境変化への対応は適応保守、潜在的な障害の予防は予防保守である。
出典・参考
公式シラバスの4 開発技術 > 6. 保守・廃棄 > (1) 保守のタスクに掲載されている用語です。
解説は資格暗記が独自に作成しています。過去問の出典は各問題に記載のとおりです。