本文へスキップ

平成30年度 秋期 ITパスポート試験 問39

この問題の解説と、これまでの解答の記録です。

問39
頻出度★★★

自社開発して長年使用しているソフトウェアがあるが,ドキュメントが不十分で保守性が良くない。保守のためのドキュメントを作成するために,既存のソフトウェアのプログラムを解析した。この手法を何というか。

出典 平成30年度 秋期 ITパスポート試験 問39
解説

問 39

  • 不正解ア

    ウォータフォールモデルは、要件定義→設計→実装→テストと工程を上流から下流へ順番に進めるソフトウェア開発モデルであり、開発の進め方を指す。既存プログラムを解析してドキュメントを復元する手法ではないので誤り。

  • 不正解イ

    スパイラルモデルは、設計・実装・評価のサイクルを繰り返し、少しずつ機能を作り込みながらリスクを減らしていく開発モデルである。これも開発プロセスの一種であり、既存プログラムからドキュメントを取り出す手法ではないので誤り。

  • 不正解ウ

    プロトタイピングは、開発の早い段階で試作品 (プロトタイプ) を作り、利用者に確認してもらって要求のズレを早期に修正する手法である。新規開発時の要求確認が目的であり、既存プログラムを解析する手法ではないので誤り。

  • エ

    正解 既存のソフトウェアのプログラムを解析し、そこから設計情報や仕様書などのドキュメントを取り出す手法を「リバースエンジニアリング」という。この問題では、長年使ってきたがドキュメントが不十分なソフトウェアについて、保守用のドキュメントを作るために既存プログラムを解析している。まさに「動いている成果物 (プログラム) から上流の情報 (仕様・設計) を復元する」という逆方向の作業であり、リバースエンジニアリングの典型例である。よって正解はエ。

ここがポイント
  • リバースエンジニアリング=既存のプログラムやハードウェアを解析し、その仕様・設計情報を復元 (逆向きに導出) する手法。ドキュメントが不足した既存ソフトの保守で用いられる。
  • ウォータフォール・スパイラル・プロトタイピングはいずれも「開発の進め方 (開発モデル・手法)」であり、既存成果物から情報を取り出すリバースエンジニアリングとは目的が異なる点を区別する。
用語

解答の記録