软件再工程

软件再工程（software reengineering）是指对既存软件系统进行调查，并重新开发的过程，其目的是重新審視現有的系統，以便進一步利用新技術來改善系統或促進現存系統的再利用。

名词由来
在契科夫斯基和克罗斯1990年的论文《Reverse Engineering and Design Recovery: A Taxonomy》当中首先提出该定义为：检查现有的系统，并试图进行修改或重构而组成新的模式。

在某些不正式的场合，软件再工程也被用于泛指对软件进行修改以增加新的功能或除错。

软件再工程有时候被与另一个定义：‘软件反求工程’（，或称逆向工程）相混淆。比较准确地说，反求工程用于软件的起始建造阶段，而再工程用于软件后续的修改阶段。

参考文献  
 Chikofsky, E. and Cross, J., 1990. Reverse Engineering and Design Recovery: A Taxonomy. IEEE Software, 7(1):13-18.

 Object Management Group,  (KDM) 1.0 specification, 2007

外部链接  
The Program Transformation Wiki 
The Architecture-Driven Modelrnization website at OMG 

软件工程