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

令和3年度春期 ネットワークスペシャリスト 午前Ⅱ 問25

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

問題

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

選択肢

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

解析工程の役割を見分ける視点

ソフトウェア解析では、各工程が何を明らかにするためのものか、入力と出力がどのようにつながるかを整理し、工程名だけで判断せず目的と成果物の対応を丁寧に確認します。

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

選択肢を検討するときは、記述された活動が解析のどの段階に関係するかではなく、その工程で扱う対象と、次の判断に渡される成果物の関係に注目して整理してください。

視点

各工程は、対象の把握、問題点の発見、原因の切り分け、結果の確認など、異なる観点を持ちます。説明中の目的・対象・成果物を分けて読み、互いの対応関係を比較してください。

確認ポイント

  • 工程ごとの目的と対象が対応しているかを確認する。
  • 作業の結果として何が得られ、次に何へ使われるかを整理する。
  • 工程名の印象ではなく、説明された役割の範囲と前後関係を照合する。
正解と解説を見る

正解

ア

解説

リバースエンジニアリングは、既存のソースプログラムなどを解析し、そこからプログラムの仕様や設計情報を明らかにする技術です。

理由

ソースプログラムを解析してプログラム仕様書を作成する作業は、実装済みのソフトウェアから仕様や設計に関する情報を取り出すものであり、リバースエンジニアリングに該当する。

比較

修正箇所や影響度の調査は保守作業の分析、構造化されたプログラムへの変換は再構成、分かりやすい表現への書換えは可読性向上を目的とする作業です。

選択肢ア(正解)

これは正解だよ。ソースプログラムを解析し、その内容からプログラム仕様書を作成する行為は、既存の実装から仕様や設計に関する情報を復元する作業である。このように下位の実装から上位の情報を明らかにする技術がリバースエンジニアリングである。

選択肢イ

これは不正解だよ。ソースプログラムを探索して修正箇所や影響度を調べることは、保守における変更対象の特定や影響分析に当たる。既存プログラムから仕様書などの上位情報を復元するリバースエンジニアリングそのものを説明したものではない。

選択肢ウ

これは不正解だよ。ソースプログラムを見直して構造化されたプログラムに変換することは、プログラムの構造を改善・再構成する作業である。実装内容を解析して仕様や設計情報を取り出すリバースエンジニアリングとは、目的が異なる。

選択肢エ

これは不正解だよ。ソースプログラムを分かりやすい表現に書き換えることは、可読性や保守性を高めるための書換え作業である。既存の実装を分析して仕様や設計を明らかにするリバースエンジニアリングの説明には該当しない。

学習のポイント

解析によって上位の仕様を復元する作業と、修正・変換・書換えの作業を区別する。

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

関連する過去問一覧

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