

Reverse Engineering bezeichnet die Umkehrung des Entwicklungs- bzw. Produktionsprozesses vom Produkt hin zur Konstruktionszeichnung bzw. zum Quellcode. Einsatzgebiete des Reverse Engineerings sind die ProduktentwicklungProduktentwicklungDie Entwicklung eines neuen Produktes zählt zu den klassischen Projektaufgaben. Die Produktentwicklung findet zwischen Forschung und Marktforschung statt. Forschung liefert neue Möglichkeiten, Marktforschung neue Kundenanforderungen. Aufgabe der Produktentwicklung ist es, produktions- und marktreife Produkte so zu definieren, dass das Unternehmen mit ihnen maximalen Ertrag erwirtschaften kann., die Qualitätsprüfung und die Fehlersuche.
Reverse Engineering bezeichnet die Umkehrung des Entwicklungs- bzw. Produktionsprozesses vom Produkt hin zur Konstruktionszeichnung bzw. zum Quellcode. Einsatzgebiete des Reverse Engineerings sind die ProduktentwicklungProduktentwicklungDie Entwicklung eines neuen Produktes zählt zu den klassischen Projektaufgaben. Die Produktentwicklung findet zwischen Forschung und Marktforschung statt. Forschung liefert neue Möglichkeiten, Marktforschung neue Kundenanforderungen. Aufgabe der Produktentwicklung ist es, produktions- und marktreife Produkte so zu definieren, dass das Unternehmen mit ihnen maximalen Ertrag erwirtschaften kann., die Qualitätsprüfung und die Fehlersuche.
Das Vorgehen, ein ProduktProduktAus Projektsicht ist ein Produkt die im Lastenheft beschriebene, zu erbringende Leistung des Projekts. Meistens muss ein Projekt mehrere Produkte erstellen, um den vereinbarten Leistungsumfang zu erbringen. Die Auflistung aller zu erstellenden Produkte eines Projekts ist das sog. Leistungsverzeichnis . Die Menge aller Produkte eines Projekts definieren den sog. Projektumfang (Inhalt und Umfang, Scope). (z.B. ein Konkurrenzprodukt) zu analysieren, um daraus Erkenntnisse für seine Weiterentwicklung zu gewinnen, stammt aus dem Maschinenbau. Dort werden reale Objekte mit Hilfe verschiedener Verfahren (taktile Messungen, 3D-Scan-Verfahren, Computer-Tomographie, weitere optische Messverfahren, Ultraschallvermessung) vermessen und daraus CAD-Modelle erstellt. In der Software-Entwicklung bedeutet Reverse Engineering entweder die Dekompilierung des ausführbaren Maschinencodes oder dessen direkte Analyse.
Eine grundlegende, allgemeine Definition von Reverse Engineering liefern Elliot J. Chikofsky and James H. Cross II in: Reverse Engineering and Design Recovery: A Taxonomy, IEEE Software, vol. 7, no. 1, January 1990, DOI 101109/52.43044:
"Reverse engineering ist the process of analyzing a subject systemSystemProjekte sind Systeme und beziehen sich auf Systeme. Um Projekte erfolgreich abwickeln zu können, muss das betreffende System analysiert und umfassend betrachtet werden. to
Während bei Hardware Reverse Engineering in der Regel nicht gegen Schutzrechte verstößt, da Patente lediglich die Produktion neuer Produkte mit der gleichen Technik untersagen, ist in den Lizenzbedingungen von Software meist Reverse Engineering explizit untersagt. Für die Europäische Union untersagt die "Directive 2009/24/EC of the European Parliament and of the Council of 23 April 2009 on the legal protection of computer programs (Codified version)" das Dekompilieren eines Computerprogrammes zu anderen Zwecken außer zur Anpassung von Schnittstellen.
Als produktbezogene Methode ist Reverse Engineering von besonderer Bedeutung im Qualitäts- und Konfigurationsmanagement. Bei Hardware-Entwicklungen kann mithilfe von Reverse Engineering z.B. ein Konfigurationsaudit durchgeführt werden, bei dem vom Prüfling ein CAD-Modell erstellt und mit der Konstruktionszeichnung abgeglichen wird. In der Software-Entwicklung spielt Reverse Engineering z.B. für das Anpassen von Schnittstellen und für die Analyse nicht dokumentierter Programme eine RolleRolleRolle bezeichnet eine temporäre Funktion einer Person oder Organisationseinheit innerhalb der Projektorganisation. Eine Rolle wird beschrieben durch Aufgaben, Befugnisse und Verantwortungen. Zur vollständigen Definition einer Rolle gehört die Angabe, ob sie teilbar (d.h. ob sie von mehreren Personen wahrgenommen werden kann) und kombinierbar (d.h. ob sie mit anderen Rollen gemeinsam von einer einzigen Person wahrgenommen werden kann)..
Die Techniken des Reverse Engineerings können auch im Betrieb eines Produkts eingesetzt werden, z.B. bei der Konstruktion von Ersatzschaufeln für Turbinen.
Reverse Engineering ist der erste Arbeitsschritt im Reengineering-Prozess. Anschließend werden neue Anforderungen in das KonzeptKonzeptNach der Formulierung des Projektziels, das bewusst lösungsneutral gehalten werden soll, steht die Suche nach Lösungsmöglichkeiten für die Aufgabenstellung. Für die aussichtsreichsten Lösungen werden dann Konzepte entwickelt, die den konkreten Lösungsweg beschreiben. integriert und ein neues Produkt erstellt (Forward Engineering).