very: A Taxonomy"》当中首先提出该定义为：检查现有的系统，并试图进行修改或重构而组成新的模式。在某些不正式的场合，软件再工程也被用于泛指对软件进行修改以增加新的功能或除错。软件再工程有时候被与另一个定义：‘软件反求工程’（，或称逆向工程）相混淆。比较准确地说，反求工程用于软件的起始建造阶段，而再工程用于软件后续的修改阶段。