平成27年度 秋期 午前 問49
ソフトウェア開発管理技術
ソースコードやオブジェクトコードを解析して,プログラムの仕様と設計の情報を取り出す手法はどれか。
- アリエンジニアリング
- イリストラクチャリング
- ウリバースエンジニアリング
- エリファクタリング
答えと解説を見る
✓ これが正解ウリバースエンジニアリング
解説
動くプログラムから上流の情報を取り出す逆行の手法です。
ソフトウェアの手直しには、動いているプログラムからさかのぼって上流の情報を取り出す方向と、取り出した後にそれをもとに手を加える方向があります。設問はソースコードやオブジェクトコードを解析して仕様と設計の情報を取り出す手法を求めているので、方向としては下流から上流へ進む逆行にあたります。この読み取りの逆行そのものを指す呼び名がリバースエンジニアリングです。似た響きの呼び名は他にも並んでおり、リエンジニアリング、リストラクチャリング、リファクタリングは、いずれもプログラムに手を入れる側の呼び名として区別されています。見分けるときの軸は二つで、その手法が上流へさかのぼる読み取り側なのかプログラムに手を入れる側なのかと、狙う成果物が上流の情報なのか整えられた実装そのものなのかです。
ほかの選択肢はなぜ違うのか
- アリエンジニアリング:取り出した情報を土台にして仕組み全体を作り替える側の呼び名です。方向としては上流に戻るのではなく、そのあとの手直しに向かいます。
- イリストラクチャリング:動いているプログラムの中身を整えて分かりやすい形に組み直す側の呼び名です。上流の情報を新たに取り出す作業ではありません。
- エリファクタリング:外から見た振る舞いを保ったまま内側の書き方だけを整える手法の呼び名です。方向は同じ層の内部整理にとどまり、逆行にあたりません。
この問題の用語
- ソースコード人が読み書きできる形で書かれた、プログラムそのものです。コンパイラなどで、コンピュータが実行できる形に変換して使います。
出典:平成27年度 秋期 基本情報技術者試験 午前 問49
同じ用語が出る問題
- 令和7年度 科目A 問5:ローコードに関する問題(ソースコード)
- 令和6年度 科目A 問9:ペネトレーションテストの問題(ソースコード)
- 平成31年度 春期 午前 問48:静的解析ツールに関する問題(ソースコード)
- 平成31年度 春期 午前 問20:オープンソースソフトウェアの問題(ソースコード)
- 平成29年度 秋期 午前 問50:リバースエンジニアリングの説明(ソースコード)
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)