平成24年度 春期 午前 問50
開発技術
リバースエンジニアリングの説明
リバースエンジニアリングの説明はどれか。
- ア既存のプログラムからそのプログラムの仕様を導き出すこと
- イ既存のプログラムから導き出された仕様を修正してプログラムを開発すること
- ウクラスライブラリ内の既存のクラスを利用してプログラムを開発すること
- エ部品として開発されたプログラムを組み合わせてプログラムを開発すること
答えと解説を見る
✓ これが正解ア既存のプログラムからそのプログラムの仕様を導き出すこと
解説
プログラムから仕様を導き出す向きの作業です。
この設問は、リバースエンジニアリングの説明を四つの中から選ばせています。見分けの軸は、作業の向きと、どこまでを含むか、という二点になります。ふつうの開発は、仕様を決めてからプログラムを作る向きで進みます。リバースという語が示すのはその逆で、動いているプログラムのほうから仕様を起こす向きです。ですから、既存のプログラムからそのプログラムの仕様を導き出す、という記述がそのまま当てはまります。もう一つ大切なのは、この語が読み取るところで止まるという点です。読み取った先で作り直すところまで含めてしまうと、別の呼び名の作業になります。何のために行うのかも押さえておくと理解が固まります。設計書が残っていない、作った人がもういないという古いシステムを保守したり作り替えたりするとき、手がかりは動いているコードしかありません。そこから仕様を起こして、初めて次の手が打てます。なお、他社の製品を解析する目的では、契約や法の側から制限がかかる場合があります。
ほかの選択肢はなぜ違うのか
- イ既存のプログラムから導き出された仕様を修…:導き出した仕様を修正して開発するところまで含んでいます。読み取る作業と、そのあとで作り直す作業をつないだ一続きの取り組みに当たり、これはリエンジニアリングと呼ばれます。
- ウクラスライブラリ内の既存のクラスを利用し…:クラスライブラリに用意されている既存のクラスを使って作る話で、出来合いの資産を活かすソフトウェア再利用に当たります。動いているものから仕様を起こす向きの作業ではありません。
- エ部品として開発されたプログラムを組み合わ…:部品として作られたプログラムを組み合わせて仕上げる進め方の説明です。組み立てる側の話であり、すでにある実装を読み解いて設計の内容を取り出す作業とは方向が違います。
出典:平成24年度 春期 応用情報技術者試験 午前 問50
この解説に誤りを見つけたら教えてください。直して、直した記録を残します。誤りを報告する(メールが開きます)