問題

問50 ソフトウェアのリバースエンジニアリングの説明はどれか。

ア CASEツールなどを用いて、設計情報からソースコードを自動生成する。
イ 外部から見たときの振る舞いを変えずに、ソフトウェアの内部構造を変える。
ウ 既存のソフトウェアを解析し、その仕様や構造を明らかにする。
エ 既存のソフトウェアを分析し理解した上で、ソフトウェア全体を新しく構築し直す。

解説と解答

 リバースエンジニアリング(reverse engineering)とは、ソフトウェアやハードウェアなどを分解・解析し、その仕組みや構成部品、要素技術などを明らかにすることです。

 他社製品との互換性を保った製品を作る目的や、製品の動作と仕様書との食い違いを検証・修正するためなどに行われます。また、他社製品に、自社の特許が登用されていないかの調査のために行われることもあります。

 よって、正解はウとなります。

ア:ソースコードの自動生成には、特に呼び方はありません。
イ:リファクタリング(refactoring)の説明です。
エ:リエンジニアリング(re-engineering)の説明です。

鈴木 啓一郎(すずき・けいいちろう)
ITに関するコンサルティングや教育を実施するアイティ・アシストのインストラクタ。新入社員研修や各種ベンダー試験、基本情報技術者試験、応用情報技術者試験などの対策研修も手がけている。ITストラテジスト、システム監査技術者などの資格を所持。