軟件再工程是指對既存對象系統進行調查,并將其重構為新形式代碼的開發過程。最大限度地重用既存系統的各種資源是再工程的最重要特點之一。從軟件重用方法學來說,如何開發可重用軟件和如何構造采用可重用軟件的系統體系結構是兩個最關鍵問題。不過對再工程來說前者很大一部分內容是對既存系統中非可重用構件的改造。軟件工程再工程是以軟件工程方法學為指導,對程序全部重新設計、重新編碼和測試,為此可以使用case工具(逆向工程和再工程工具)來幫助理解原有的設計。在軟件再工程的各個階段,軟件的可重用程度都將決定軟件再工程的工作量。