Реінжиніринг програмного забезпечення (англ. software reengineering) — повторна реалізація успадкованої системи з метою підвищення зручності її використання, супроводження, розширення функціоналу чи впровадження оновлених технологій. У це визначення включаються повторне документування системи, її реорганізація та реструктуризація, переведення системи на більш сучасну мову програмування, модифікація та модернізація структури та системних даних.