リバースエンジニアリングの説明はどれか。
既存のプログラムからそのプログラムの仕様を導き出すこと
既存のプログラムから導き出された仕様を修正してプログラムを開発すること
クラスライブラリ内の既存のクラスを利用してプログラムを開発すること
部品として開発されたプログラムを組み合わせてプログラムを開発すること