NWネットワークスペシャリスト試験 午前Ⅱ

平成26年度秋期 ネットワークスペシャリスト 午前Ⅱ 問25

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

問題

ソフトウェアのリバースエンジニアリングの説明はどれか。

選択肢

  1. ア
    開発支援ツールなどを用いて,設計情報からソースコードを自動生成する。
  2. イ
    外部から見たときの振る舞いを変えずに,ソフトウェアの内部構造を変える。
  3. ウ
    既存のソフトウェアを解析し,その仕様や構造を明らかにする。
  4. エ
    既存のソフトウェアを分析し理解した上で,ソフトウェア全体を新しく構築し直す。
解き方のヒントを見る

解析工程の役割を整理する視点

解析工程を問う設問では、個別の用語を暗記するだけでなく、各工程が何を明らかにするために置かれ、どの成果物や判断につながるかという対応関係に注目して整理します。選択肢は名称の印象ではなく、役割の説明として読み比べます。

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

一つの観点として、工程名とその目的・入力・出力の対応を確認してください。各選択肢の説明が、同じ工程の役割を述べているのか、別段階の活動を混同しているのかを、問題文の文脈に沿って丁寧に見分けます。

視点

ソフトウェア解析の流れを学ぶときは、各工程を単独の用語として覚えず、前後の活動との関係、扱う情報の変化、作業結果の利用先を並べて整理すると、似た説明の違いを捉えやすくなります。

確認ポイント

  • 工程ごとの目的と扱う情報を区別する
  • 成果物が次の判断にどう関係するか確認する
  • 選択肢の説明が工程の役割と整合するか読む
正解と解説を見る

正解

ウ

解説

リバースエンジニアリングは、既存のソフトウェアを解析して仕様や構造を明らかにする活動です。設計情報からの自動生成、動作を変えない内部構造の変更、理解後の全面的な再構築とは区別される。

理由

リバースエンジニアリングは、完成済みまたは既存のソフトウェアを分析し、そこから仕様や構造を把握する活動です。外から見える動作を手掛かりに、内部の設計や仕組みを理解する点が中心となる。

比較

設計情報からソースコードを作るのは順方向の自動生成、外部動作を保った内部変更はリファクタリングに当たる。また、分析結果を基に全体を作り直すことは再構築であり、解析して明らかにする活動そのものとは異なる。

選択肢ア

これは不正解だよ。これは設計情報からソースコードを自動生成する工程であり、既存ソフトウェアを解析して仕様や構造を明らかにするリバースエンジニアリングとは向きが異なる。開発支援ツールによる生成の説明である。

選択肢イ

これは不正解だよ。外部から見た振る舞いを変えずに内部構造を変更する説明であり、既存ソフトウェアを調査して仕様や構造を明らかにする活動ではない。これは保守や改修に関する考え方を示している。

選択肢ウ(正解)

これは正解だよ。既存のソフトウェアを解析し、その仕様や構造を明らかにすることは、ソフトウェアのリバースエンジニアリングの定義に合っている。既存物から内容を理解する活動を正しく説明している。

選択肢エ

これは不正解だよ。既存ソフトウェアを分析して理解する部分は含まれるが、その後にソフトウェア全体を新しく構築し直すことまでを説明している。リバースエンジニアリング自体は、仕様や構造を明らかにする活動である。

学習のポイント

リバースエンジニアリングと関連する開発・改修活動の違いを整理する。

出典:独立行政法人 情報処理推進機構(IPA)平成26年度秋期 ネットワークスペシャリスト試験 午前Ⅱ 問25(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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