Skip to the content.

最終更新日:2026年7月25日

まず結論

リバースエンジニアリング(Reverse Engineering)とは、既存のシステムや完成済みのソフトウェアから、内部構造や設計情報を読み取る手法です。

英語の reverse は「逆向き」という意味です。
そのため、Reverse Engineering は 完成したものから、設計へ逆向きにたどること と考えると分かりやすいです。

基本情報技術者試験では、次のように切り分けます。

Reverse Engineering   :既存システム → 設計情報
Forward Engineering   :設計情報 → システム
Concurrent Engineering:工程を同時並行で進める
Social Engineering    :人の心理を突いて情報を得る

「本稼働中のデータベースの定義情報から、E-R図などの設計書を生成する」と出たら、リバースエンジニアリング(Reverse Engineering) と判断します。

直感的な説明

通常の開発では、先に設計書を作り、その設計に基づいてシステムを作ります。

設計書
→ システム

これは前向きの流れです。

一方、リバースエンジニアリング(Reverse Engineering)では、すでに動いているシステムやデータベースから、設計情報を読み取ります。

既存システム
→ 定義情報を読み取る
→ E-R図や設計書を作る

つまり、流れが逆向きです。

たとえば、古いシステムに設計書が残っていない場合でも、データベースのテーブル定義や関連を調べれば、E-R図を作れることがあります。

このように、作られたものから設計を復元する のがリバースエンジニアリングです。

定義・仕組み

リバースエンジニアリング(Reverse Engineering)は、既存の成果物を解析して、仕様・設計・構造などを明らかにする手法です。

データベース分野では、例えば次のような情報を読み取ります。

読み取る情報 設計書で表せる内容
テーブル定義 エンティティ
カラム定義 属性
主キー 一意に識別する項目
外部キー テーブル間の関連
制約 データのルール

これらをもとに、E-R図などの設計情報を生成します。

本稼働中のデータベース
→ テーブル定義・キー・関連を読む
→ E-R図を生成する

E-R図は、データベース内のデータ同士の関係を表す図です。

そのため、データベースの定義情報からE-R図を作る、という説明はリバースエンジニアリングの典型です。

公式の出題範囲やシラバスは、IPA:基本情報技術者試験 から確認できます。リバースエンジニアリングは、データベース設計やソフトウェア保守の考え方と関係します。

科目Aでどう出る?

科目Aでは、説明文から該当する「〜エンジニアリング」を選ぶ形で出題されやすいです。

選択肢を切るときは、英語の意味を見ると判断しやすくなります。

用語 英語の直感 判断ポイント
リバースエンジニアリング(Reverse Engineering) reverse = 逆向き 既存システムから設計情報を取り出す
フォワードエンジニアリング(Forward Engineering) forward = 前向き 設計情報から新しいシステムを作る
コンカレントエンジニアリング(Concurrent Engineering) concurrent = 同時並行 設計・製造・テストなどを並行して進める
ソーシャルエンジニアリング(Social Engineering) social = 人・社会 人の心理や不注意を突いて情報を得る

例えば、次のように、

本稼働中のデータベースシステムの定義情報から、
E-R図などで表現した設計書を生成する

という説明なら、すでにあるデータベースから設計書へ戻っています。

既存DB → 設計書

なので、Reverse Engineering です。

どんな場面で使う?

データベースやシステム保守の文脈で、次のような状況を読むときに役立ちます。

  • 古いシステムの設計書が不足している
  • 本稼働中のデータベースからテーブル関係を整理する
  • 既存システムを調査して、改修や移行に備える
  • E-R図を作り直して、データ構造を把握する

このときは、作業の向きを確認します。

設計書からシステムを作る → Forward Engineering
既存システムから設計を読み取る → Reverse Engineering

作業の向きが分かれば、選択肢をかなり切りやすくなります。

よくある誤解・混同

一番混同しやすいのは、リバースエンジニアリング(Reverse Engineering)とフォワードエンジニアリング(Forward Engineering)です。

混同しやすい組み合わせ 違い
Reverse Engineering と Forward Engineering Reverseは既存システムから設計へ、Forwardは設計からシステムへ
Reverse Engineering と Concurrent Engineering Reverseは解析、Concurrentは同時並行開発
Reverse Engineering と Social Engineering Reverseは技術的な解析、Socialは人をだまして情報を得る

特に、ソーシャルエンジニアリング(Social Engineering)はセキュリティ分野の用語です。

人の心理や不注意を利用して、パスワードなどを不正に得る

という説明なら、Social Engineering です。

一方、データベースの定義情報やE-R図が出る場合は、技術的に設計情報を読み取る話です。

既存DB → E-R図

なので、Reverse Engineering と判断します。

まとめ(試験直前用)

  • リバースエンジニアリング(Reverse Engineering)は、既存システムから 設計情報を読み取る 手法
  • reverse は「逆向き」なので、完成品から設計へ戻るイメージ
  • フォワードエンジニアリング(Forward Engineering)は、設計情報からシステムを作る
  • コンカレントエンジニアリング(Concurrent Engineering)は、工程を同時並行で進める
  • ソーシャルエンジニアリング(Social Engineering)は、人の心理や不注意を突いて情報を得る

© 2024-2026 stemtazoo. All rights reserved.