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.

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.

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