問題本文
自社開発して長年使用しているソフトウェアがあるが,ドキュメントが不十分で保守性が良くない。保守のためのドキュメントを作成するために,既存のソフトウェアのプログラムを解析した。この手法を何というか。
選択肢
- ア.ウォータフォールモデル
- イ.スパイラルモデル
- ウ.プロトタイピング
- エ.リバースエンジニアリング
解説
リバースエンジニアリング(Reverse Engineering)は、既存ソフトウェアのプログラム(バイナリやソースコード)を解析して設計書・仕様書など上流のドキュメントを復元する手法。本来の開発(設計→実装)とは逆方向のアプローチ(実装→設計)であることから「リバース(逆)」と呼ばれる。ドキュメントが不足して保守性が低いレガシーシステムの解析・理解や、移行・再構築のための情報収集に活用される手法で、知的財産の観点から法的な制約が伴う場合もある。
選択肢ごとの解説
- ア.誤り。ウォータフォールモデルは要件定義→外部設計→内部設計→プログラミング→テスト→運用の各工程を順次進める伝統的な開発モデル。工程を滝のように一方向に流れる直線的な開発プロセスを表し、既存プログラムを解析してドキュメントを復元するリバースエンジニアリングとは全く異なる手法である。
- イ.誤り。スパイラルモデルはサブシステムごとに計画→設計→実装→評価のサイクルを繰り返す開発手法。大規模システムをリスク管理しながら段階的に開発する手法であり、既存コードを逆解析して仕様を抽出するリバースエンジニアリングとは異なる開発手法である。
- ウ.誤り。プロトタイピングは開発早期に簡易な試作品(プロトタイプ)を作成してユーザーに確認してもらい、要件の精緻化・手戻り防止を図る開発手法。ユーザーの要件明確化を目的とした手法であり、既存プログラムの解析・仕様復元を目的とするリバースエンジニアリングとは異なる。
- エ.正解。リバースエンジニアリングは既存プログラムを解析して仕様・設計情報を抽出する手法。ドキュメントが不十分なレガシーシステムの保守・移行に際して、失われた設計情報を再構築するために用いられる。解析結果を基にした再設計・モダナイゼーションへの第一歩ともなる。
ITパスポート 2018年 (平成30年 秋期) の過去問一覧へ戻る・問39