DBデータベーススペシャリスト試験 午前Ⅱ

平成21年度春期 データベーススペシャリスト 午前Ⅱ 問24

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

問題

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

選択肢

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

解析工程を読むための観点

ソフトウェアの解析工程を扱う設問では、各工程の目的と成果物の関係に注目し、処理の順序や役割を整理してから、提示された記述がどの観点を説明しているかを照合し、落ち着いて判断します。

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

一つの観点として、工程ごとの入力・作業・出力がどのようにつながるかを確認してください。用語の印象だけで判断せず、記述が示す対象と段階の対応関係を読み取り、全体の流れの中で位置付けます。

視点

解析工程は、目的、対象、作業内容、成果物という枠組みで整理すると比較しやすくなります。設問では、記述がどの枠組みに関する説明なのかを見極め、工程間のつながりを軸に検討します。

確認ポイント

  • 工程名だけでなく、その工程が扱う対象と生み出す成果物を確認する。
  • 前後の工程とのつながりを意識し、記述の段階がどこに位置付くかを整理する。
  • 説明されている作業の目的が、分析・設計・検証などのどの観点に関係するかを見る。
正解と解説を見る

正解

ア

解説

リバースエンジニアリングは、既存のソースプログラムなどを解析し、そこからプログラムの仕様や設計情報を明らかにする技術です。したがって、仕様書を作成するという説明が適切です。

理由

保守対象のソフトウェアでは、設計書や仕様書が不足していたり、実装と文書が一致しなかったりすることがあります。リバースエンジニアリングは、ソースプログラムを解析して、実装から仕様や構造を把握するために利用されます。

比較

修正箇所や影響度の調査は保守作業の一部であり、構造化への変換や表現の書換えはプログラムを変更する行為です。リバースエンジニアリングの中心は、既存ソフトウェアを解析して情報を取り出すことにあります。

選択肢ア(正解)

これは正解だよ。リバースエンジニアリングは、既存のソースプログラムを解析し、実装されている処理や構造からプログラムの仕様を明らかにする技術です。解析結果を整理してプログラム仕様書を作成する説明は、この技術の目的に合っています。

選択肢イ

これは不正解だよ。ソースプログラムを調べて修正箇所や変更による影響度を確認することは、保守作業で行う重要な調査です。しかし、この選択肢は修正のための影響分析を説明しており、リバースエンジニアリングの定義である仕様の把握を直接示していません。

選択肢ウ

これは不正解だよ。ソースプログラムを見直して構造化プログラムへ変換することは、既存プログラムの構造を改善または変更する作業です。リバースエンジニアリングは、まず既存ソフトウェアを解析して情報を把握する技術であり、別の形式へ変換すること自体を指しません。

選択肢エ

これは不正解だよ。ソースプログラムを分かりやすい表現に書き換えることは、可読性を高めるための改修や整形に当たります。リバースエンジニアリングの主目的はプログラムを書き換えることではなく、既存の実装を解析して仕様や構造を理解することです。

学習のポイント

解析によって既存ソフトウェアの仕様を明らかにする技術の目的を理解する。

出典:独立行政法人 情報処理推進機構(IPA)平成21年度春期 データベーススペシャリスト試験 午前Ⅱ 問24(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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