平成27年度 春期49テクノロジ系

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

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

  • aりエツジダニアリング
  • bリストラクチャリング
  • cリバースエンジニアリング正答
  • dリファクタリング
正答:Cリバースエンジニアリング

AI解説(初心者・標準・上級)

理解度に合わせて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/ 公的機関配布資料につき出典明記の上引用。解説は合格ナビによる独自AI解説です。

テクノロジ系の他の過去問

1
テクノロジ系
2
テクノロジ系
3
テクノロジ系
4
テクノロジ系
5
テクノロジ系

あなたの弱点を診断して、合格までの最短ルートを

この分野を連続演習し、AIがあなたの弱点を分析。合格ナビなら基本情報の過去問を解きながら学べます。