プロジェクトマネージャ 2010年 午前2 問19
問題文
リバースエンジニアリングの説明はどれか。
選択肢
ア:既存のプログラムからそのプログラムの仕様を導き出すこと(正解)
イ:既存のプログラムから導き出された仕様を修正してプログラムを開発すること
ウ:クラスライブラリ内の既存のクラスを利用してプログラムを開発すること
エ:部品として開発されたプログラムを組み合わせてプログラムを開発すること
🔒 解説は解答すると表示されます
リバースエンジニアリング【午前2解説】
正解の理由
リバースエンジニアリングとは、既存のプログラムや製品を分析し、設計や仕様などを導き出すことです。したがって、既存プログラムからその仕様を導き出すとするアが正解です。
プログラムのソースコードや動作を調べて、設計書が残っていないシステムの仕様を把握する場合などに用いられます。
解法ステップ
- 「リバース(reverse)」は「逆向き」と捉えます。
- 通常の開発は、仕様や設計からプログラムを作る流れです。
- それとは逆に、既存のプログラムから仕様や設計を明らかにするものがリバースエンジニアリングです。
- この流れに合う選択肢はアです。
選択肢別の誤答解説
- ア:既存のプログラムから仕様を導き出す説明です。リバースエンジニアリングに該当します。
- イ:導き出した仕様を修正してプログラムを開発する説明です。既存の仕様を基にプログラムを作り直す流れであり、リバースエンジニアリングそのものではありません。
- ウ:既存のクラスを再利用して開発する説明です。クラスライブラリを利用した再利用開発に該当します。
- エ:開発済みのプログラム部品を組み合わせて開発する説明です。ソフトウェア部品の再利用に該当します。
よくある誤解
- 既存プログラムを改修すること全般がリバースエンジニアリングだと思う
リバースエンジニアリングの中心は、既存のプログラムを分析して仕様や設計を明らかにすることです。改修や再開発そのものとは区別します。 - 既存の部品を使うこともリバースエンジニアリングだと思う
クラスやプログラム部品を利用するのは、再利用による開発です。分析して仕様を取り出す活動とは異なります。 - 「逆向き」を、完成したプログラムを単に元に戻すことだと思う
必ずしも元の開発過程を完全に復元するわけではありません。既存の成果物から、仕様や設計に関する情報を導き出す活動です。
補足コラム
開発の流れは、一般に「要求・仕様 → 設計 → プログラム」の順です。リバースエンジニアリングでは、この流れを逆にたどり、「プログラム → 設計や仕様」のように、既存の成果物から上流の情報を推定します。
FAQ
Q. リバースエンジニアリングを行う目的は何ですか?
A. 仕様書がないシステムの仕様を把握したり、保守や改修に必要な情報を得たりするためです。
A. 仕様書がないシステムの仕様を把握したり、保守や改修に必要な情報を得たりするためです。
Q. リバースエンジニアリングと再利用開発の違いは何ですか?
A. リバースエンジニアリングは既存の成果物を分析して仕様などを導き出すこと、再利用開発は既存のクラスや部品を活用して新たなプログラムを開発することです。
A. リバースエンジニアリングは既存の成果物を分析して仕様などを導き出すこと、再利用開発は既存のクラスや部品を活用して新たなプログラムを開発することです。
関連キーワード: リバースエンジニアリング、仕様抽出、ソフトウェア保守、再利用開発

\ せっかくなら /
プロジェクトマネージャを
クイズ形式で学習しませんか?
クイズ画面へ遷移する→
すぐに利用可能!

