戦国IT - 情報処理技術者試験の過去問対策サイト
ブログお知らせお問い合わせ料金プラン

基本情報技術者 2014年 秋期 午前(科目A)50


問題文

プログラムからUMLのクラス図を生成することを何と呼ぶか。

選択肢

バックトラッキング
フォワードエンジニアリング
リエンジニアリング
リバースエンジニアリング(正解)

プログラムからUMLのクラス図を生成することを何と呼ぶか。【午前2 解説】

要点まとめ

  • 結論:プログラムコード(ソースやバイナリ)からUMLクラス図を自動生成する行為はリバースエンジニアリングと呼び、設計情報を抽出する逆工程です。
  • 根拠:用語の定義上、リバースエンジニアリングは実装(コード)から設計情報へ遡る作業で、フォワードエンジニアリングはその逆にあたります。
  • 差がつくポイント:リエンジニアリングは解析後の改善・再設計まで含む点でリバースと異なり、用語の「方向(実装→設計か設計→実装か)」を見極めてください。

正解の理由

正解:(リバースエンジニアリング)
プログラム(ソースコードやコンパイル済みバイナリ)を解析してUMLのクラス図などの設計情報を生成する処理は、「実装から設計へ遡る」作業です。これがリバースエンジニアリングの定義に合致します。対してフォワードエンジニアリングは設計図(UMLなど)を元にコードを生成する作業であり、方向が逆です。

よくある誤解

  • 「リエンジニアリング」と混同する:リエンジニアリングは単に解析するだけでなく、解析結果を元に改善や再設計・再実装を行う工程を含みます。
  • 「逆コンパイル=リバース」と短絡する:逆コンパイルはバイナリからソースに近いコードを復元する一手段で、リバースの一部だが同義ではありません。
  • 「フォワードエンジニアリング」をプログラムから図を作ると誤認:フォワードはモデル→実装の流れなので方向が逆です。

解法ステップ

  1. 問題文の方向性を確認する:「プログラムからUMLへ」と「どちらからどちらへ」を把握する。
  2. 用語の定義に当てはめる:実装→設計=リバース、設計→実装=フォワード、改善を含む=リエンジニアリング。
  3. 選択肢と照合する:各語の定義と問題文の方向性が一致するものを選ぶ。

選択肢別の誤答解説

  • ア: バックトラッキング
    説明:探索や組合せ問題で解を求めるアルゴリズム手法であり、設計図生成とは無関係です。
  • イ: フォワードエンジニアリング
    説明:設計(UMLなど)からソースコードを生成する工程を指すため、問題の「プログラムから図を作る」とは逆です。
  • ウ: リエンジニアリング
    説明:既存システムの解析に続き、改善・再設計・再実装を行う広義の活動を指し、単に図を生成するだけの動作とは区別されます。
  • エ: リバースエンジニアリング
    説明:実装(プログラム)から設計情報(UMLクラス図など)を抽出・生成する行為であり、本問の正解です。

補足コラム

  • ツール例:Eclipseのプラグイン、Enterprise Architect、Visual Paradigm、PlantUMLとソース解析ツールの組合せなどが、コードからクラス図を生成します。
  • 限界と注意点:自動生成されたクラス図は、命名やドメイン知識が失われている場合があり、人による補正や解釈が必要です。特にコンパイル済みバイナリからではシンボル情報が欠けるため精度が落ちます。
  • 法的留意:商用ソフトウェアのリバースや解析はライセンスや法律で制限される場合があるため、利用目的と権利関係を確認してください。

FAQ

Q1:逆コンパイルはリバースエンジニアリングと同じですか?
A1:逆コンパイルはリバースの一技術であり、バイナリから高水準言語に近いコードを復元する手法です。リバースはこれを含む広い解析活動を指します。
Q2:自動生成したUMLはそのまま利用して良いですか?
A2:設計意図やドメイン知識が反映されていないことがあるため、レビューと補正を行ってから利用するのが安全です。
Q3:リエンジニアリングとリバースの境界は明確ですか?
A3:解析のみで終わるならリバース、解析結果を使って改善や再設計・再実装を行う場合はリエンジニアリングと捉えるのが一般的です。

関連キーワード: UML、クラス図、リバースエンジニアリング、フォワードエンジニアリング、リエンジニアリング、逆コンパイル、設計抽出、コード解析、ソフトウェア保守、モデル駆動開発
← 前の問題へ次の問題へ →
戦国ITクイズ機能

\ せっかくなら /

基本情報技術者
クイズ形式で学習しませんか?

クイズ画面へ遷移する

すぐに利用可能!

©︎2026 情報処理技術者試験対策アプリ

このサイトについてブログプライバシーポリシー利用規約特商法表記開発者について