基本情報技術者試験 - 令和5年12月修了 - 問38
ソフトウェアのリバースエンジニアリングの説明はどれか。
| ア | 開発支援ツールなどを用いて,設計情報からソースコードを自動生成する。 |
|---|---|
| イ | 外部から見たときの振る舞いを変えずに,ソフトウェアの内部構造を変える。 |
| ウ | 既存のソフトウェアを解析し,その仕様や構造を明らかにする。 |
| エ | 既存のソフトウェアを分析し理解した上で,ソフトウェア全体を新しく構築し直す。 |
答え : ウ
分野 : テクノロジ系 › 開発技術 › ソフトウェア開発管理技術 › 開発プロセス・手法
解説 :
「リバースエンジニアリング」とは,既に完成しているソフトウェアを解析し,そのソフトウェアがどのような仕様や構造で作られているのかを明らかにする作業のことです。ソースコードが失われてしまったソフトウェアの仕様を再確認したり,他社製品の仕組みを調査したりする際などに用いられる手法です。正解は「ウ」です。
「ア」は,開発支援ツールなどを用いて,設計情報からソースコードを自動生成するとしていますが,これは設計から実装へと進む通常の開発の流れに近く,「フォワードエンジニアリング」と呼ばれる考え方に該当し,リバースエンジニアリングとは逆方向の作業です。
「イ」は,外部から見たときの振る舞いを変えずに,ソフトウェアの内部構造を変えるとしていますが,これは「リファクタリング」の説明です。
「エ」は,既存のソフトウェアを分析し理解した上で,ソフトウェア全体を新しく構築し直すとしていますが,これは「リエンジニアリング」または「マイグレーション」に近い概念であり,単に解析して仕様や構造を明らかにするだけのリバースエンジニアリングとは,その後の再構築を伴うかどうかという点で異なります。
分野 : テクノロジ系 › 開発技術 › ソフトウェア開発管理技術 › 開発プロセス・手法
解説 :
「リバースエンジニアリング」とは,既に完成しているソフトウェアを解析し,そのソフトウェアがどのような仕様や構造で作られているのかを明らかにする作業のことです。ソースコードが失われてしまったソフトウェアの仕様を再確認したり,他社製品の仕組みを調査したりする際などに用いられる手法です。正解は「ウ」です。
「ア」は,開発支援ツールなどを用いて,設計情報からソースコードを自動生成するとしていますが,これは設計から実装へと進む通常の開発の流れに近く,「フォワードエンジニアリング」と呼ばれる考え方に該当し,リバースエンジニアリングとは逆方向の作業です。
「イ」は,外部から見たときの振る舞いを変えずに,ソフトウェアの内部構造を変えるとしていますが,これは「リファクタリング」の説明です。
「エ」は,既存のソフトウェアを分析し理解した上で,ソフトウェア全体を新しく構築し直すとしていますが,これは「リエンジニアリング」または「マイグレーション」に近い概念であり,単に解析して仕様や構造を明らかにするだけのリバースエンジニアリングとは,その後の再構築を伴うかどうかという点で異なります。