平成24年度 春期 午前 問50
ソフトウェア開発管理技術
リバースエンジニアリングの説明
ソフトウェアのリバースエンジニアリングの説明はどれか。
- アCASE ツールなどを用いて,設計情報からソースコードを自動生成する。
- イ外部から見たときの振る舞いを変えずに,ソフトウェアの内部構造を変える。
- ウ既存のソフトウェアを解析し,その仕様や構造を明らかにする。
- エ既存のソフトウェアを分析し理解した上で,ソフトウェア全体を新しく構築し直す。
答えと解説を見る
✓ これが正解ウ既存のソフトウェアを解析し,その仕様や構造を明らかにする。
解説
できあがった物から仕様と構造を読み解きます。
リバースエンジニアリングは、すでにあるソフトウェアを解析して、どういう仕様で、どう組み立てられているのかを明らかにする作業です。設計から実物を作る流れを順方向とすれば、実物から設計の情報を起こす逆方向にあたります。長く使われてきて設計書が残っていない、あるいは実物と食い違っているようなソフトウェアに手を入れる前に、まず現状を掴むために使われます。読み解いた結果を土台にして作り直すところまで進む取組みもありますが、それは読み解いた先の段階です。判定の軸は、その記述が向かう向きが設計から実物なのか実物から設計なのか、そして実物から設計へ向かう場合、読み解いたところで止まるのか作り直しまで含むのかです。
ほかの選択肢はなぜ違うのか
- アCASE ツールなどを用いて,設計情報か…:設計の情報をもとに実物のソースコードを作り出す作業です。道具を使って自動で行う点はともかく、進む向きが設計から実物へとなっており、読み解く向きとは逆になっています。
- イ外部から見たときの振る舞いを変えずに,ソ…:外から見たときのふるまいを変えずに、内部の構造を整え直す作業です。既に中身が分かっている前提で手を入れる場面であり、中身を明らかにすること自体を指してはいません。
- エ既存のソフトウェアを分析し理解した上で,…:解析して理解したうえで、ソフトウェア全体を新しく構築し直すところまで含んでいます。読み解く部分は重なりますが、作り直しまでを一続きで指す別の語の説明になっています。
この問題の用語
- ソースコード人が読み書きできる形で書かれた、プログラムそのものです。コンパイラなどで、コンピュータが実行できる形に変換して使います。
- 分析集めたデータを細かく分けて、何がどう関わっているかを読み取ること。量が増えるほど、扱う道具も考え方も変わります。
出典:平成24年度 春期 基本情報技術者試験 午前 問50
同じ用語が出る問題
- 令和7年度 科目A 問5:ローコードに関する問題(ソースコード)
- 令和6年度 科目A 問9:ペネトレーションテストの問題(ソースコード)
- 平成31年度 春期 午前 問48:静的解析ツールに関する問題(ソースコード)
- 平成31年度 春期 午前 問20:オープンソースソフトウェアの問題(ソースコード)
- 平成29年度 秋期 午前 問50:リバースエンジニアリングの説明(ソースコード)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)