基本情報

基本情報 平成27年度 秋期 問49|テクノロジ系に関する問題

問題

基本情報 | 平成27年度 秋期 | 分野:テクノロジ系

ソースコードやオブジェクトコードを解析して, プログラムの仕様と設計の情報 を取り出す手法はどれか。

キーボード:1〜4で選択・Enterで次へ

タップするとすぐ答え合わせ

答え合わせ

正解は C
  • A
  • B
  • C
  • D

自信の3択

えらぶと、この端末に記録します(登録はいりません)

解説

答えは c「リバースエンジニアリング」 です。

リバース=「逆」、エンジニアリング=「作ること」。普通は[設計書→プログラム]の順なのを、逆に[プログラム→設計書]を取り出す手法です。

古いシステムで設計書を失くしてしまった…そんなとき、動いているプログラムを解析して仕様を“復元”します。料理で例えるなら「完成した料理を食べてレシピを当てる」感じ。

👉 覚え方:リバース=逆=出来上がりから仕様を取り出す。

ほかの選択肢:a リエンジニアリング=業務全体を作り直す/b リストラクチャリング=構造を整理する/d リファクタリング=動作を変えずにコードを綺麗にする。

なぜこれが正解か

正解は c。リバースエンジニアリング(Reverse Engineering)は、既存システムのソースコード・オブジェクトコードを解析して、設計仕様・データ構造・処理フローなどの上位情報を抽出する手法。設計文書を失った既存システム(レガシーシステム)の再生・移行・保守時に活用される。

各選択肢の解説

  • a リエンジニアリング:業務プロセスや既存システムを抜本的に再構築する手法(BPR)。
  • b リストラクチャリング:プログラムの構造を整理して保守性を向上させる手法。動作と外部仕様は変えない。
  • d リファクタリング:プログラムの動作を変えずに内部構造を改善する手法(マーティン・ファウラー提唱)。

覚え方・ひっかけ注意

「リ-」で始まる紛らわしい4用語のセット暗記:リバース=逆解析/リストラクチャリング=構造整理/リファクタリング=内部改善/リエンジニアリング=抜本再構築。情報抽出の対象がコード→設計か、コード→より良いコードかで判別。

理論的背景

リバースエンジニアリングはソフトウェア進化(Software Evolution)研究の基幹手法。Chikofskyらの分類(1990)では「Forward Engineering(仕様→設計→実装)」の逆方向プロセスと定義され、抽出層により (1) 再ドキュメント化(コード→ドキュメント)、(2) 設計回復(コード→抽象設計)、(3) 仕様回復(コード→形式仕様)に細分化される。

実務での使われ方

レガシーマイグレーション(COBOL→Java、メインフレーム→クラウド)の前処理として必須。ツール例:(1) Eclipse MoDisco(モデル抽出)、(2) Understand(コード解析)、(3) IDA Pro/Ghidra(バイナリ逆解析)、(4) JD-GUI/JADX(Javaバイトコード逆コンパイル)。マルウェア解析・セキュリティ研究でも中核技術(バイナリ解析)。

法的側面:日本国内では著作権法47条の2(リバースエンジニアリング目的の複製)で限定的に許容。海外ライセンス(EULA)で禁止条項がある場合は要注意。EU指令ではセキュリティ研究目的は広く認められる。

試験での位置づけ

ソフトウェア工学・保守分野の頻出語。基本情報・応用情報・システム監査・情報処理安全確保支援士でセット出題。リエンジニアリング(業務プロセス再構築)と混同しやすいので要注意。

選択肢の発展補足

  • リファクタリング(d):Martin Fowler『リファクタリング』(1999年)の体系。「動作を変えずに内部構造を改善」が定義。Extract Method/Rename Variable/Pull Up Method等のカタログ化されたパターンがある。
  • リストラクチャリング(b):構造化されていないGOTO多用コードを構造化制御(if/while)に書き換える等、保守性向上目的の構造変換。
  • リエンジニアリング(a):BPR(Business Process Reengineering)と同義の文脈もある。マイケル・ハマー提唱の業務革新手法。
  • 関連:レガシーリプレースメント、レガシーモダナイゼーション、コードクローン検出(CCFinder等)。
この問題の根拠
訂正の記録この問題の訂正はありません(サイト全体の記録)
出典と作り方

出典:IPA(情報処理推進機構)公式 基本情報技術者試験 平成27年度 秋期 問49/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビ独自の3段階の解説(初級・標準・上級)です。