Reverse Engineering bedeutet auf Deutsch umgekehrte Entwicklung und bezeichnet den Vorgang ein bestehendes System zu analysieren und sukzessive durch Untersuchung der einzelnen Bestandteile und Strukturen das ursprüngliche System als 1-1- Kopie nachzubauen.
Auf der Basis der Analyse und der Kenntnis des Gesamtsystems ist mit Reverse Engineering möglich das Produkt weiterzuentwickeln.
Der Begriff Reverse Engineering wird in verschiedenen Zusammenhängen verwendet, so z.B. im Bereich der Computer- Software, um einen Quellcode zurückzugewinnen oder eine fehlerhafte Softwaredokumentation zu identifizieren und zu korrigieren, aber auch um Software oder IT- Systeme ohne Autorisierung nachzubauen, unter Verletzung von Patentrechten.