Reverse Engineering

Reverse Engineering bezeichnet die Umkehrung des Entwicklungs- bzw. Produktionsprozesses vom Produkt hin zur Konstruktionszeichnung bzw. zum Quellcode. Einsatzgebiete des Reverse Engineerings sind die Produktentwicklung, die Qualitätsprüfung und die Fehlersuche.

Das Vorgehen, ein Produkt (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 system to
  • identify the system’s components and their interrelationships and
  • create representations oft he system in another form or at a higher level of abstraction."
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.

Reverse Engineering im Qualitäts- und Konfigurationsmanagement

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 Rolle.

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 und Reengineering

Reverse Engineering ist der erste Arbeitsschritt im Reengineering-Prozess. Anschließend werden neue Anforderungen in das Konzept integriert und ein neues Produkt erstellt (Forward Engineering).

Relevante Beiträge im Projekt Magazin
von Klaus Marquardt
Bewertungen
0
0 Kommentare
Warum ist Software zu teuer, kommt zu spät, tut nicht genug oder ist einfach schlecht? Extreme Programming (XP) zeigt Wege, ein Projekt auch unter klassisch schwierigen Bedingungen auf Qualität und Effizienz zu optimieren. Diese ausführliche Einführung umfasst drei Teile. Im ersten Teil standen die Grundlagen und die Motivation von Extreme Programming sowie die wichtigsten Prinzipien im Vordergrund. Der zweite Teil stellte nach einem Blick auf Entstehungsgeschichte die Einsatzgebiete und Ziele vor. Abschließend werden die Verfahren, die XP zur Projektplanung einsetzt, erläutert. Die Verfahren zur "Extremen" Softwareentwicklung sowie die bisherigen Erfahrungen mit XP schließen in diesem dritten Teil die Einführung ab.
von Dr. Georg Angermeier
1 Bewertung
5
0 Kommentare
Der Autor, Dr. Georg Angermeier, beschreibt in diesem Mehrteiler den systematischen Aufbau einer Webpräsenz nach dem Modell des Quality Function Deployment (QFD). Er führt anhand eines durchgehenden Praxisbeispiels anschaulich und leicht verständlich durch das Thema. Angermeier erklärt, wie sich Kundenanforderungen und Funktionen mit dem QFD-Modell zusammenbringen lassen und Sie somit die maßgeschneiderte Internet-Präsenz für Ihren Kunden finden.
Tech Link