PMプロジェクトマネージャ試験 午前Ⅱ

平成22年度春期 プロジェクトマネージャ 午前Ⅱ 問19

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

問題

リバースエンジニアリングの説明はどれか。

選択肢

  1. ア
    既存のプログラムからそのプログラムの仕様を導き出すこと
  2. イ
    既存のプログラムから導き出された仕様を修正してプログラムを開発すること
  3. ウ
    クラスライブラリ内の既存のクラスを利用してプログラムを開発すること
  4. エ
    部品として開発されたプログラムを組み合わせてプログラムを開発すること
解き方のヒントを見る

解析工程の観点を整理するヒント

解析工程を考えるときは、対象の構造や処理の流れをどの粒度で確認し、後続の設計・実装・試験へ渡す情報をどう整理するかに注目しましょう。用語の役割を混同せず、工程間のつながりを比較してください。

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

この問題では、解析で扱う対象と成果物の関係に焦点を当て、入力情報をどのように分解・整理し、後続工程で利用できる形へつなげる観点から各記述を読み比べてください。

視点

解析工程では、対象を理解するための情報整理と、後続工程へ引き渡す成果物との関係を意識します。個別の実装方法だけでなく、工程の目的や扱う範囲が一貫しているかを確認しましょう。

確認ポイント

  • 解析の対象・目的・成果物が同じ観点で説明されているか
  • 処理や情報の流れが、前後の工程との関係を保っているか
  • 特定の実装手段に依存した説明と、工程上の一般的な説明を区別できるか
正解と解説を見る

正解

ア

解説

リバースエンジニアリングとは、既存のプログラムを分析し、明示されていない仕様や設計情報を導き出す活動です。仕様を修正して開発することや、既存クラス・部品を組み合わせることとは異なる。

理由

プログラムの動作や構造を調べ、ソースコードや設計資料だけでは分からない仕様を明らかにすることが、リバースエンジニアリングの中心です。

比較

仕様を変更して開発する活動は再設計・再開発に当たり、クラスや部品を利用・組合せする活動は再利用やコンポーネント開発に当たる。

選択肢ア(正解)

これは正解だよ。既存のプログラムを分析し、その動作や構造から、もともとの仕様を導き出す活動がリバースエンジニアリングである。新しい部品を組み合わせたり、仕様を変更して開発したりすることではなく、既存成果物から情報を明らかにする点が根拠になる。

選択肢イ

これは不正解だよ。既存のプログラムから仕様を導き出す部分までは分析活動に関係するが、導き出した仕様を修正してプログラムを開発することまでがリバースエンジニアリングの説明ではない。仕様変更後の開発という別の工程を含んでいるため、定義と一致しない。

選択肢ウ

これは不正解だよ。クラスライブラリ内の既存クラスを利用してプログラムを開発するのは、既存のソフトウェア部品を再利用する考え方である。既存プログラムを調査して仕様を導き出す活動ではないため、リバースエンジニアリングの説明には該当しない。

選択肢エ

これは不正解だよ。部品として開発されたプログラムを組み合わせて新しいプログラムを作るのは、ソフトウェア部品の組合せやコンポーネント利用に関する開発である。既存プログラムを分析して仕様を明らかにする活動ではないので、リバースエンジニアリングとは異なる。

学習のポイント

既存システムの分析と、分析結果を使った再開発や部品再利用を区別する。

出典:独立行政法人 情報処理推進機構(IPA)平成22年度春期 プロジェクトマネージャ試験 午前Ⅱ 問19(公式資料:問題冊子(PDF) / 解答例)

関連する過去問一覧

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