リバースエンジニアリングとは?
リバースエンジニアリングとは、既存のプログラムやシステムを解析し、その内部構造や設計内容、仕様を明らかにする手法のこと。通常の開発が仕様書から設計・プログラムへと進む流れであるのに対し、リバースエンジニアリングは完成済みのプログラムから設計情報や仕様を逆に導き出す。設計書が古くなって実際のプログラムと内容が一致しなくなった場合や、長年使われてきたシステムの仕様が担当者の異動などにより不明確になった場合に、保守や改修の前段階として行われることが多い。また、既存システムの構造を解析して新しい技術基盤に作り直す「マイグレーション」や「モダナイゼーション」の前提作業としても用いられる。
ITパスポートの過去問では6回出題されています(2014年度〜2023年度)。
りばーすえんじにありんぐ
リバースエンジニアリングの意味
既存のプログラムやシステムを解析し、その内部構造や設計内容、仕様を明らかにする手法のこと。通常の開発が仕様書から設計・プログラムへと進む流れであるのに対し、リバースエンジニアリングは完成済みのプログラムから設計情報や仕様を逆に導き出す。設計書が古くなって実際のプログラムと内容が一致しなくなった場合や、長年使われてきたシステムの仕様が担当者の異動などにより不明確になった場合に、保守や改修の前段階として行われることが多い。また、既存システムの構造を解析して新しい技術基盤に作り直す「マイグレーション」や「モダナイゼーション」の前提作業としても用いられる。
リバースエンジニアリングの具体例
開発から20年経過した基幹システムを刷新する際、最新の設計書が残っていないため、稼働中のプログラムを解析して業務ロジックを洗い出し、新システムの要件定義に活用する。
リバースエンジニアリングは試験でどう引っ掛けられる?
リバースエンジニアリングは既存プログラムの解析であり、要件定義から新規に設計・実装を進めるフォワードエンジニアリング(通常の開発の流れ)とは方向が逆である点を混同しないこと。
リバースエンジニアリングと関連する用語
リバースエンジニアリングが出た過去問
リバースエンジニアリングの説明として、適切なものはどれか。
正解:既存の製品を分解し、解析することによって、その製品の構造を解明して技術を獲得する手法
要点:リバースエンジニアリングは既存製品の解析から構造を知る手法
リバースエンジニアリングは、完成した製品やソフトウェアを分解・解析して、その構造や設計内容、動作原理を明らかにする手法である。既存の資産から仕様を取り出したり、技術を習得したりする目的で使われる。他の選択肢は実験計画法、BPR、コンカレントエンジニアリングの説明である。
出典:平成26年度 春期 ITパスポート試験 問47(IPA)製品やサービスの価値を機能とコストの関係で分析し、機能や品質の向上及びコスト削減などによって、その価値を高める手法はどれか。
正解:バリューエンジニアリング
要点:バリューエンジニアリングは価値=機能÷コストの向上を図る
バリューエンジニアリングは、価値を機能とコストの比として捉え、機能を高めるかコストを下げることで価値の向上を目指す手法である。必要な機能を見極めて不要なコストを削る発想が中心にある。サプライチェーンマネジメントは供給の流れの最適化、ナレッジマネジメントは知識の共有と活用、リバースエンジニアリングは完成品を分解して仕様を読み解く技法である。
出典:平成28年度 春期 ITパスポート試験 問28(IPA)SQLインジェクションの対策などで用いられ、処理の誤動作を招かないように、利用者がWebサイトに入力した内容に含まれる有害な文字列を無害な文字列に置き換えること…
正解:サニタイジング
要点:サニタイジングは特殊文字を無害化し不正な解釈を防ぐ
サニタイジングは、利用者が入力した文字列のうち、プログラムやデータベースに特別な意味を持つ記号を無害な表現へ置き換える処理である。これにより入力がSQL文やHTMLの一部として解釈されるのを防ぎ、SQLインジェクションやクロスサイトスクリプティングを防げる。ストリーミングは配信方式、テザリングは端末経由の通信共有、リバースエンジニアリングは製品の解析技法である。
出典:平成28年度 春期 ITパスポート試験 問64(IPA)自社開発して長年使用しているソフトウェアがあるが、ドキュメントが不十分で保守性が良くない。保守のためのドキュメントを作成するために、既存のソフトウェアのプログラ…
正解:リバースエンジニアリング
要点:既存プログラムから仕様を復元するのがリバースエンジニアリング
既存のプログラムやオブジェクトコードを解析して、その内部構造・仕様・設計情報を復元する手法である。設計書が失われた、あるいは現物と食い違っている既存システムに対し、保守用のドキュメントを起こす目的で使われる。復元した仕様をもとに新しいシステムを作り直す進め方はリエンジニアリングと呼ばれる。
出典:平成30年度 秋期 ITパスポート試験 問39(IPA)リバースエンジニアリングで実施する作業として、最も適切なものはどれか。
正解:プログラムを解析することで、ソフトウェアの仕様を調査して設計情報を抽出する。
要点:リバースエンジニアリングは既存物から設計情報を抽出
リバースエンジニアリングは、既存のプログラムやシステムを解析して、その仕様や設計の情報を後から取り出す作業である。設計書が残っていない古いシステムの保守や移行の際に、現状の仕様を把握する目的で用いられる。他の選択肢はアジャイル、プロトタイピング、ウォータフォールという開発の進め方の説明である。
出典:令和2年度 10月 ITパスポート試験 問51(IPA)
最終更新:2026-08-25/解説は資格暗記が独自に作成しています。 過去問の出典は各問題に記載のとおりです。