�� 软件再工程,也叫做软件复壮(修理)或再生,是一类软件工程活动,它能够使我们:

  (1) 增进对软件的理解;

  (2) 准备或直接提高软件的可维护性、复用性或演化性


��这里所说的软件不仅指源程序,还应包括文档、图像和分析。分析主要面对源程序、需求规格说明、设计方案、测试数据以及其他支持软件开发或维护的文档。
��对软件的理解可能涉及到浏览、度量、绘图、编写文档和分析。上述软件再工程的第(2)部分则是旨在改善软件的静态质量。但如果修改的目的不是为了提高软件的可维护性、复用性、演化性或是帮助人们更好地理解软件,那么就应当把这种修改排除在软件再工程的范围之外。例如,纯粹是出于改善性能的代码优化或对其重构都不能算做软件再工程。 软件的逆向工程根据定义则应属于上述软件再工程的第(1)部分。因为逆向工程所得到软件表达信息,例如源程序,能够帮助人们理解软件,或是便于对它们做进一步处理。

  关于软件再工程的定义,还有另外的说法,例如:
��(1) 软件再工程是变更系统(或程序)的内部机制或是系统(或程序)的数据结构,而不变更其功能性的活动。
��(2) 检查改进对象系统,按新的模式对系统进行重构,进而实现其新模式。
��