平成29年度 秋期 午前 問50
システム開発技術
リバースエンジニアリングの説明
ソフトウェアのリバースエンジニアリングの説明はどれか。
- ア開発支援ツールなどを用いて,設計情報からソースコードを自動生成する。
- イ外部から見たときの振る舞いを変えずに,ソフトウェアの内部構造を変える。
- ウ既存のソフトウェアを解析し,その仕様や構造を明らかにする。
- エ既存のソフトウェアを分析し理解した上で,ソフトウェア全体を新しく構築し直す。
答えと解説を見る
✓ これが正解ウ既存のソフトウェアを解析し,その仕様や構造を明らかにする。
解説
出来上がった物を解析して、仕様や構造を明らかにする手です。
リバースエンジニアリングは、順序を逆にたどる手立てです。ふつうは仕様から設計へ、そしてコードへと進んでいきます。その道を逆に歩き、出来上がった物から元の姿を取り出します。既存のソフトウェアを解析し、その仕様や構造を明らかにしました。だから解析して明らかにすると述べた肢が当たります。設計情報からソースコードを自動で作るのは、順方向の話でした。道具の助けを借りて前へ進めるので、逆ではありません。振る舞いを変えずに内部だけを整え直す手は、別の名で呼ばれます。読みやすさを上げる作業で、元の姿を取り出す働きではありません。分析し理解した上で全体を新しく作り直す手も、また別でした。こちらは作り直しまで含むので、範囲がさらに広くなります。どこまでやるかで、三つは呼び分けられていました。
ほかの選択肢はなぜ違うのか
- ア開発支援ツールなどを用いて,設計情報から…:設計情報からソースコードを自動で作ると述べています。開発支援ツールを使う場面でした。これは上から下へ進む向きです。逆にたどる手ではありません。フォワードエンジニアリングと呼ばれます。向きが正反対でした。取り出す働きがありません。
- イ外部から見たときの振る舞いを変えずに,ソ…:外から見た振る舞いを変えずに、中を整え直します。リファクタリングと呼ばれる作業でした。読みやすさや直しやすさを上げます。元の仕様を取り出す働きではありません。作り替える側に立っています。目当てが違いました。
- エ既存のソフトウェアを分析し理解した上で,…:分析し理解した上で、全体を新しく作り直します。リエンジニアリングと呼ばれる広い言葉でした。解析はその始まりに含まれます。けれども作り直しまで進んでいました。明らかにするだけでは終わりません。範囲が広すぎます。
この問題の用語
- ソースコード人が読み書きできる形で書かれた、プログラムそのものです。コンパイラなどで、コンピュータが実行できる形に変換して使います。
- 分析集めたデータを細かく分けて、何がどう関わっているかを読み取ること。量が増えるほど、扱う道具も考え方も変わります。
出典:平成29年度 秋期 基本情報技術者試験 午前 問50
同じ用語が出る問題
- 令和7年度 科目A 問5:ローコードに関する問題(ソースコード)
- 令和6年度 科目A 問9:ペネトレーションテストの問題(ソースコード)
- 平成31年度 春期 午前 問48:静的解析ツールに関する問題(ソースコード)
- 平成31年度 春期 午前 問20:オープンソースソフトウェアの問題(ソースコード)
- 平成28年度 春期 午前 問21:静的テストに関する問題(ソースコード)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)