基本情報技術者 2016年 秋期 午前(科目A) 問50
問題文
モデリングツールを使用して、本稼働中のデータベースの定義情報からE-R図などで表現した設計書を生成する手法はどれか。
選択肢
ア:コンカレントエンジニアリング
イ:ソーシャルエンジニアリング
ウ:フォワードエンジニアリング
エ:リバースエンジニアリング(正解)
データベース定義から設計書を生成する手法はどれか【午前2 解説】
要点まとめ
- 結論:本稼働中のデータベース定義情報(DDLなど)を解析してE-R図や設計書を生成する手法はリバースエンジニアリングです。
- 根拠:フォワードは設計(モデル)から実装(DDL等)を生成する方向性で、リバースは既存実装から設計を復元する逆方向である点が決定的です。
- 差がつくポイント:問題文の「本稼働中」「定義情報から生成」「既存のデータベース」を示す語句に注目すれば誤選択を避けやすくなります。
正解の理由
正解は エ: リバースエンジニアリング です。
リバースエンジニアリングは既に稼働しているシステムやデータベースの定義(テーブル定義、カラム、制約、インデックス等)を解析して、E-R図や設計書といった上位設計情報を生成・復元する手法です。問題文が「本稼働中のデータベースの定義情報から設計書を生成する」と明示しているため、既存実装→設計の流れであるリバースエンジニアリングが該当します。
リバースエンジニアリングは既に稼働しているシステムやデータベースの定義(テーブル定義、カラム、制約、インデックス等)を解析して、E-R図や設計書といった上位設計情報を生成・復元する手法です。問題文が「本稼働中のデータベースの定義情報から設計書を生成する」と明示しているため、既存実装→設計の流れであるリバースエンジニアリングが該当します。
よくある誤解
- 「フォワードエンジニアリングと似ている」と誤認する受験者が多い:フォワードは設計→実装、リバースは実装→設計で方向が逆です。
- 「コンカレントエンジニアリング」と混同する:コンカレントは開発工程の並行実行(設計と製造の同時進行)で、データベース定義の解析とは別領域です。
- 「ソーシャルエンジニアリング=技術的な手法」と思う:これは人的脆弱性を突く攻撃手法で、設計書生成とは無関係です。
解法ステップ
- 問題文のキーワードを抽出:「本稼働中」「定義情報から」「設計書を生成」など既存資産を起点にしているか確認。
- 各選択肢の定義を頭の中で即座に整理:フォワード=設計→実装、リバース=実装→設計、コンカレント=並行開発、ソーシャル=人的攻撃。
- 方向性で照合:問題文が「既存のデータベースから生成」なら逆方向(リバース)を選択。
- 残り選択肢を除外し、もっとも意味が合うものを確定。
選択肢別の誤答解説
- ア: コンカレントエンジニアリング
誤り。開発工程(設計・製造等)を並行実行して製品化期間を短縮する手法で、既存データベースの定義解析による設計書生成とは無関係です。 - イ: ソーシャルエンジニアリング
誤り。人間の心理的弱点を突いて情報やアクセスを騙し取る攻撃手法であり、モデリングツールによる設計書生成とは関係ありません。 - ウ: フォワードエンジニアリング
誤り。設計(モデル)からソースコードやデータベース定義(DDL)を生成する手法で、問題の「既存のDB→設計書」とは逆の流れです。 - エ: リバースエンジニアリング
正解。既存の稼働中データベースの定義情報を解析してE-R図など上位設計を復元・生成する手法であり、問題文の記述に合致します。
補足コラム
リバースエンジニアリングは現行システムの理解やドキュメント化、マイグレーション・リファクタリングの前段で有効です。多くのモデリングツール(例:ERwin、MySQL Workbench、Oracle SQL Developer Data Modeler、DBeaver、pgModelerなど)はDB接続してスキーマ情報を抽出し、ER図やDDL定義を可視化します。ただし注意点としては、実行時のビジネスロジックや運用上の慣習、暗黙の仕様までは自動で復元できない場合が多く、外部キー制約が未定義の設計や、命名規約が崩れているスキーマでは関係性の完全復元が困難です。また、本番データベースに接続して解析する場合は権限や運用影響、法的・契約上の制約を確認する必要があります。関連用語として「スキーマリバース」「DDL抽出」「仕様逆解析」などが用いられます。
FAQ
Q1: フォワードエンジニアリングとリバースエンジニアリングの違いは?
A1: フォワードは設計モデルから実装(DDLやコード)を生成、リバースは既存実装から設計情報を復元する逆方向のプロセスです。
A1: フォワードは設計モデルから実装(DDLやコード)を生成、リバースは既存実装から設計情報を復元する逆方向のプロセスです。
Q2: モデリングツールは本番DBの全情報を完全に抽出できますか?
A2: スキーマ情報(テーブル・カラム・制約・インデックス等)は多く抽出できますが、業務ルールや暗黙の仕様、アプリ側ロジックは自動で復元できないことが多いです。
A2: スキーマ情報(テーブル・カラム・制約・インデックス等)は多く抽出できますが、業務ルールや暗黙の仕様、アプリ側ロジックは自動で復元できないことが多いです。
Q3: 本番DBでリバースエンジニアリングを実行しても安全ですか?
A3: 接続権限と負荷、セキュリティや法的制約に注意が必要です。読み取り専用の権限やスナップショット環境を使うのが安全です。
A3: 接続権限と負荷、セキュリティや法的制約に注意が必要です。読み取り専用の権限やスナップショット環境を使うのが安全です。
関連キーワード: リバースエンジニアリング、E-R図、モデリングツール、DDL抽出、フォワードエンジニアリング、ER図生成、スキーマリバース、スキーマ解析

\ せっかくなら /
基本情報技術者を
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

