WikiDer > Reverse-Engineering
Reverse-Engineering untersucht ein Produkt (normalerweise das Produkt eines Mitbewerbers, eine von einem Gegner gestohlene Waffe, ein Stück Software oder ein Kommunikationsprotokoll), um daraus abzuleiten, welche Anforderungen das Produkt zu erfüllen versucht, oder um seine genaue interne Funktionsweise herauszufinden. Dies geschieht möglicherweise (aber sicher nicht ausschließlich) mit dem Ziel, ein wettbewerbsfähiges Produkt zu entwickeln.
Ein typisches Beispiel ist das erste pc von Compaq. Willkürliches Kopieren der BIOSChip hätte Urheberrechtsprobleme verursacht mit IBM. Durch Reverse Engineering des BIOS-Chips eines IBM-PCs war Compaq in der Lage, einen PC zu entwickeln, der genauso funktioniert wie ein IBM-PC. Dadurch war es möglich, dieselbe Software auf einem Compaq PC auszuführen. Der Preis des PCs war jedoch niedriger als der von IBM. Diese Arbeitsweise wurde von vielen anderen Unternehmen übernommen, sodass die meisten PCs heute effektiv geklonte IBM-PCs sind.
Reverse Engineering ist ein legaler Entwicklungsweg, muss aber (oft) unter strengen rechtlichen Bedingungen erfolgen. Zum Beispiel muss ein Ingenieur, der das Original nicht kennt, das Produkt auf der Grundlage von Anweisungen des Reverse-Engineering-Partners zusammenbauen.
Reverse Engineering bezieht sich auch auf den (automatisierten) Prozess, bei dem 3GL an 4GL.
Reverse Engineering wird auch verwendet, um zu entfernen Kopierschutz in Software, die sogenannte Riss.
Der Begriff Reverse Engineering bezeichnet auch die Umwandlung in a CADModell eines von einem Künstler oder Designer handgefertigten Prototyps eines neuen Objekts (z Körper eines Autos oder das Gehäuse eines Toasters). Diese Umrechnung basiert auf der Scan des Objekts, durch a Laserscanner, ein 3D-Koordinatenmessmaschine, oder ein Stereo-Vision-Kamera.
Ein notwendiger Schritt beim Reverse Engineering ist oft die Umwandlung des untersuchten Artefakts in ein menschenlesbares Quellcode, aus dem dann das Artefakt hergestellt werden kann. Im Fall von Computersoftware, bei der dieser Herstellungsprozess montieren und/oder kompilieren ist, dieser Prozess wird zerlegen bzw. dekompilieren erwähnt. Es hängt stark vom verwendeten ab Programmiersprachen inwieweit dieser Prozess automatisch durchgeführt werden kann. Auch Reverse Engineering auf bestehendem Quellcode ist möglich: Dabei werden Modelle abgeleitet - zum Beispiel UMLDiagramme - die das System auf anschaulichere Weise beschreiben als der Code selbst.