平成26年度 秋期 午前Ⅱ 問25
ソフトウェア開発管理技術
リバースエンジニアリングの説明
ソフトウェアのリバースエンジニアリングの説明はどれか。
- ア開発支援ツールなどを用いて,設計情報からソースコードを自動生成する。
- イ外部から見たときの振る舞いを変えずに,ソフトウェアの内部構造を変える。
- ウ既存のソフトウェアを解析し,その仕様や構造を明らかにする。
- エ既存のソフトウェアを分析し理解した上で,ソフトウェア全体を新しく構築し直す。
答えと解説を見る
✓ これが正解ウ既存のソフトウェアを解析し,その仕様や構造を明らかにする。
解説
既存のソフトウェアを解析し、仕様や構造を明らかにすることです。
リバースエンジニアリングは、すでに出来上がっているソフトウェアを解析して、その仕様や内部の構造を明らかにすることです。ソースコードやプログラムから、設計書のような上流の情報を読み取って復元していくので、通常の開発とは逆向きの作業になります。設計書が残っていない古いシステムの保守や、別の環境への移行の準備などで使われます。見分ける軸は、作業の向きと、どこまで手を入れるかです。設計から作るのが通常の向き、作られたものから設計を読み取るのが逆向き、と考えれば区別できます。作り直しや構造の改善まで含む作業は、別の語で呼ばれます。
ほかの選択肢はなぜ違うのか
- ア開発支援ツールなどを用いて,設計情報から…:設計情報からソースコードを自動生成するのは、設計からプログラムへと進む通常の向きの作業で、フォワードエンジニアリングと呼ばれます。既存のものを解析するリバースエンジニアリングとは向きが逆です。
- イ外部から見たときの振る舞いを変えずに,ソ…:外部から見た振る舞いを変えずに内部の構造を改善するのは、リファクタリングです。ソースコードを整理して保守しやすくする作業で、既存のソフトウェアの仕様を明らかにすることを目的とはしていません。
- エ既存のソフトウェアを分析し理解した上で,…:既存のソフトウェアを分析して理解したうえで新しく構築し直すのは、リエンジニアリングです。リバースエンジニアリングで得た情報を使うこともありますが、作り直しまで含む点で範囲が広くなります。
この問題の用語
- ソースコード人が読み書きできる形で書かれた、プログラムそのものです。コンパイラなどで、コンピュータが実行できる形に変換して使います。
- 分析集めたデータを細かく分けて、何がどう関わっているかを読み取ること。量が増えるほど、扱う道具も考え方も変わります。
出典:平成26年度 秋期 ネットワークスペシャリスト試験 午前Ⅱ 問25
同じ用語が出る問題
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)