リバースエンジニアリングは何を調べる手法か
ITパスポート試験 令和2年度10月 問51 / ソフトウェア開発管理技術 › 開発プロセス・手法
過去問にチャレンジ
リバースエンジニアリングで実施する作業として,最も適切なものはどれか。
- ア
開発中のソフトウェアに対する変更要求などに柔軟に対応するために,短い期間の開発を繰り返す。
- イ
試作品のソフトウェアを作成して,利用者による評価をフィードバックして開発する。
- ウ
ソフトウェア開発において,上流から下流までを順番に実施する。
- エ
プログラムを解析することで,ソフトウェアの仕様を調査して設計情報を抽出する。
会話形式の解説
講師この問題は、作業の出発点に注目すると整理できます。何を調べて、何を得る作業でしょうか。
受験者短い期間の開発を繰り返す方法も、ソフトウェアを調べながら進めるように感じます。
講師それは変更に対応するアジャイル開発の特徴です。リバースエンジニアリングは、既存のプログラムを解析して仕様や設計情報を得る作業です。
受験者試作品を利用者に評価してもらう方法とは、何が違いますか。
講師試作品への評価を開発に反映するのは、プロトタイピングです。既存のプログラムから仕様を調べる作業ではありません。
受験者上流から下流へ順番に進める説明も、開発の進め方を表しているのですか。
講師はい。それはウォーターフォール開発です。工程を進める順番の説明なので、プログラムを解析する作業とは区別します。
受験者すると、プログラムを解析して仕様を調べ、設計情報を取り出す説明が正解ですね。
講師そのとおりです。通常の開発が設計情報からプログラムを作る方向なのに対し、ここでは既存のプログラムから設計情報を調べます。
受験者開発の期間や工程の順番ではなく、既存のプログラムが出発点かどうかを見るのですね。
講師はい。似た用語が並んだら、何を出発点にして何を得るかを確かめると見分けやすくなります。
まとめ
リバースエンジニアリングは、既存のプログラムを解析して仕様や設計情報を得る手法です。短期の開発を繰り返すアジャイル開発、試作品の評価を反映するプロトタイピング、工程を順に進めるウォーターフォール開発とは作業の内容が異なります。既存のプログラムを出発点にする説明を選びます。
解答・解説
正解はエです
この問題のテーマ
既存のプログラムを分析し、仕様や設計情報を得るリバースエンジニアリングの作業を問う問題です。
解き方の考え方
作業の出発点に注目します。設計情報を基にプログラムを作る通常の開発とは逆に、プログラムから仕様や設計情報を調べるものを選びます。開発の進め方を述べた選択肢と区別すると、エが該当します。
選択肢ごとの解説
- ×ア 開発中のソフトウェアに対する変更要求などに柔軟に対応するために,短い期間の開発を繰り返す。短い期間の開発を繰り返し、変更に対応する説明です。これはアジャイル開発の特徴であり、既存のプログラムを分析して設計情報を得る作業ではありません。
- ×イ 試作品のソフトウェアを作成して,利用者による評価をフィードバックして開発する。試作品を利用者に評価してもらい、その結果を開発に反映する説明です。これはプロトタイピングであり、プログラムから仕様を調査する作業とは異なります。
- ×ウ ソフトウェア開発において,上流から下流までを順番に実施する。開発工程を上流から下流へ順番に進める説明です。これはウォーターフォール開発の進め方であり、リバースエンジニアリングではありません。
- ○エ プログラムを解析することで,ソフトウェアの仕様を調査して設計情報を抽出する。プログラムを解析して仕様を調べ、設計情報を抽出する作業です。既存のプログラムを出発点にするため、リバースエンジニアリングに当たります。
補足
選択肢はいずれもソフトウェア開発に関係しますが、表している作業は異なります。「既存のプログラムを調べる」という出発点を手掛かりにすると、開発手法の説明と見分けられます。
POINT
- リバースエンジニアリングは、既存のプログラムから仕様や設計情報を得る手法です。
- 通常の開発は設計情報からプログラムを作る方向に進みます。
- 短期の開発を反復する手法はアジャイル開発です。
- 試作品の評価を反映する手法はプロトタイピングです。
- 工程を上流から下流へ順に進める手法はウォーターフォール開発です。
