SC情報処理安全確保支援士試験 午前Ⅱ

平成21年度春期 情報処理安全確保支援士 午前Ⅱ 問20

問題文と選択肢を読んで答えを考えてから、下の「正解と解説を見る」で確認しましょう。

問題

ソフトウェアを保守するときなどに利用される技術でちあるりパバースエンジニアリングの説明はどれか。

選択肢

  1. ア
    ソースプログラムを解析してプログラム仕様書を作る。
  2. イ
    ソースプログラムを探索して修正箇所や影響度を調べる。
  3. ウ
    ソースプログラムを見直して構造化プログラムに変換する。
  4. エ
    ソースプログラムを分かりやすい表現に書き換える。 ー11一
解き方のヒントを見る

「完成品のプログラム」を解剖して、元の「設計図(仕様書)」を逆算して作り直す

「リバースエンジニアリング(逆行工学)」は、設計書が失われてしまった古いシステムなどのソースコードや動きを細かく分析して、そこから元の「設計図」や「仕様書」などのドキュメントを逆算して復元する技術のことだよ。

この問題で問われていること

コードの書き方をきれいにする「リファクタリング」や、不具合の調査ではなく、「完成品(コード)から、より抽象度の高い『設計情報(仕様書)』を読み起こす」という上方向の復元作業であることを選ぼう。

リバースエンジニアリングの目的

保守でドキュメントが不足している場合、コードを解析して構造や仕様を再構成します。これがリバースエンジニアリングの代表的な用途です。

既存コードを解析\n-> 設計・仕様を復元\n-> 保守や理解に活用

確認ポイント

  • 修正箇所や影響度の調査は保守分析で、定義そのものではありません。
  • 構造化プログラムへの変換はリファクタリング寄りです。
  • コードから仕様書を作る説明を選びます。
正解と解説を見る

正解

ウ

出典

問題文と解答は IPA 公開の過去問題冊子・解答例を基にしています。

選択肢ア

これは正解だよ。リバースエンジニアリングは、完成品を分解して仕組みを調べるようなもの。たとえば説明書をなくした機械を見て『中はこう動いているんだな』と設計図を作り直す感じだよ。ソースプログラムを解析して仕様書を作る、という説明にぴったり合うよ。

選択肢イ

これは不正解だよ。これは『どこを直せばいいか』『直すとどこに影響するか』を調べる作業で、変更影響分析に近いよ。家の配線を直す前に、どの部屋の電気まで影響するか確認する感じで、仕組み全体を逆向きに解き明かして仕様書を作る話とは少し違うよ。

選択肢ウ(正解)

これは不正解だよ。構造化プログラムに変換するのも、中身を読みやすく・保守しやすく直すリファクタリング寄りの作業だよ。古い道順メモを、見やすい地図に描き直す感じだね。リバースエンジニアリングは、まず既存のものを調べて『どういう仕様か』を明らかにすることだよ。

選択肢エ

これは不正解だよ。ソースを分かりやすく書き換えるのは、外から見た動きは変えずに中身を整理するリファクタリングの説明だよ。散らかった机を、使う物は同じまま整理整頓する感じだね。リバースエンジニアリングのように仕様書を復元する作業ではないよ。

出典:独立行政法人 情報処理推進機構(IPA)平成21年度春期 情報処理安全確保支援士試験 午前Ⅱ 問20(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

IPA Advancedは非公式の学習サイトです。解説にはAIによる補助生成を含む場合があります。公式の問題冊子・解答例・採点講評を優先し、誤りは確認後に訂正します。運営・編集方針