Reverse Engineering

Der Begriff Reverse Engineering stammt ursprünglich aus dem Maschinenbau und wurde in die Terminologie des Software Engineerings übernommen. Nach "Elliot J. Chikofsky and James H. Cross II: Reverse Engineering and Design Recovery: A Taxonomy, IEEE Software, vol. 7, no. 1, January 1990" ist Reverse Engineering ein Prozess, der das betrachtete System analysiert, um seine Komponenten und ihre Beziehungen zu identifizieren. Zweck dieses Prozesses ist es, für das analysierte System neue Abbildungen des Systems zu schaffen, meist in anderer Form und auf höherer Abstraktionsebene.

Anzeige

Bei gegenständlichen Produkten bedeutet dies die Zerlegung in ihre einzelnen Bestandteile, deren genaue Vermessung, die Bestimmung der verwendeten Materialien und die Analyse ihres Zusammenwirkens. Das Ergebnis des Reverse Engineerings sind hier die Baupläne und ggf. daraus erstellte Prototypen. Reverse Engineering ist hier ein wesentlicher Beitrag zum Benchmarking mit Wettbewerbsprodukten.

Im Software Engineering erhält man durch Reverse Engineering die zugrundeliegende Systemarchitektur des analysierten Programms und abstrakten Quellcode.

Während bei Hardware Reverse Engineering in der Regel nicht gegen Schutzrechte verstößt, da diese lediglich die Produktion neuer Produkte mit der gleichen Technik untersagen, ist in den Lizenzbedingungen von Software meist Reverse Engineering explizit untersagt.

Die Bedeutung von Reverse Engineering im Software Engineering ergibt sich somit auch nicht aus der Analyse von Konkurrenzprodukten sondern für die Wartung und Pflege von kundenspezifisch erstellter und nicht ausreichend dokumentierter Software.

Reverse Engineering ist hierbei der erste Arbeitsschritt im Reengineering-Prozess. Anschließend werden neue Kundenanforderungen (Requirements) in das Konzept integriert und ein neues Produkt erstellt (Forward Engineering). Die Notwendigkeit für Reverse Engineering im Bereich der Software-Erstellung ergibt sich aus fehlendem oder mangelhaften Konfigurationsmanagement.

Ausführliche Informationen zu Reverse Engineering und Reengineering finden sich unter der URL reengineer.org.

Dieser Artikel wurde zuletzt aktualisiert am 03.04.2003.
Tech Link