Management-Zusammenfassung dieses Beitrags:
Die Begriffe Reverse Engineering und Reengineering werden in verschiedenen Disziplinen wie dem → Systems Engineering oder dem → Produktmanagement verwendet. Doch was ist der Unterschied?
In diesem Beitrag wird eine Kurzdarstellung zur Unterscheidung der Begriffe geliefert.
Reverse Engineering und Reengineering werden bevorzugt im Kontext des Systems Engineerings eingesetzt. Die beiden Begriffe können folgendermaßen charakterisiert werden:
- Reverse Engineering (deutsch in etwa: Umgekehrte Entwicklung): Erstellung von Plänen zum Nachbau auf Basis bereits bestehender Systeme und Strukturen
- Reengineering (deutsch in etwa: Ingenieurtechnische Überarbeitung): Neugestaltung bestehender Systeme und Strukturen
Die Wikipedia beschreibt das Reverse Engineering wie folgt /#Wiki-Reverse-Engineering/:
“Reverse Engineering (aus englisch reverse engineering; für umgekehrt entwickeln, rekonstruieren; Kürzel: RE; auch Nachkonstruktion) bezeichnet den Vorgang, aus einem bestehenden fertigen System oder einem meistens industriell gefertigten Produkt durch Untersuchung der Strukturen, Zustände und Verhaltensweisen die Konstruktionselemente zu extrahieren. Aus dem fertigen Objekt wird somit wieder ein Plan erstellt.
Im Gegensatz zu einer funktionellen Nachempfindung, die ebenso auf Analysen nach dem Black-Box-→ Prinzip aufbauen kann, wird durch Reverse Engineering angestrebt, das vorliegende Objekt weitgehend exakt abzubilden.
Oft wird versucht, zur Verifikation der gewonnenen Einsichten eine 1:1‑Kopie des Objekts anzufertigen, auf deren Basis es grundsätzlich möglich ist, Weiterentwicklung zu betreiben.”
In der Wikipedia steht zum Re-Engineering /#Wiki-Re-Engineering/:
“Re-Engineering, auch Reengineering genannt, ist das ingenieurmäßige Neugestalten bestehender Systeme und Strukturen oder das Ersetzen eines alten Systems durch ein neues. Es umfasst alle Methoden und Aktivitäten zur Anpassung an geänderte Umfeldbedingungen.”
Speziell zum Reengineering in der → Softwareentwicklung führt die Wikipedia aus /#Wiki-Reengineering-Software/:
“Reengineering (englisch; auf Deutsch etwa „ingenieurtechnische Überarbeitung“) bezeichnet in der Softwareentwicklung eine Anpassung eines Softwaresystems (Computerprogramme) bei meist gleichbleibender Funktionalität, oft zur Verbesserung der Softwarequalität. Eine typische → Motivation bei Durchführung eines Reengineering ist die Eliminierung von Schwachstellen mit dem Ziel, die Umsetzung neuer Anforderungen im Anschluss des Reengineerings zu ermöglichen. Auch im Zusammenhang mit der Portierung auf eine andere Plattform wird häufig ein Reengineering durchgeführt.
Für den Fall, dass bei Durchführung eines Reengineering keine Spezifikation oder Dokumentation der Software verfügbar ist und diese aus der Implementierung selbst abgeleitet werden muss, bezeichnet man diesen Prozess als Reverse Engineering, der somit den anfänglichen Teil eines Reengineering darstellen kann.
Der Begriff Refactoring hat eine ähnliche Bedeutung wie Reengineering, bezeichnet aber im Gegensatz dazu qualitätsverbessernde Anpassungen auf niedrigerem Abstraktionsniveau, die sich teilweise automatisieren lassen. Ein Refactoring kann somit Teil eines Reengineering sein.”
In Abbildung 1 sind die beiden Begriffe mit ihren Charakterisierungen gegenübergestellt.
Abbildung 1: Reverse Engineering oder Reengineering?
Engineering vs. Reverse Engineering
Beim klassischen Engineering wird eine Anforderungsspezifikation erstellt und daraus ein Konstruktionsplan / eine Umsetzungsspezifikation abgeleitet (Abbildung 2). Auf dieser Basis erfolgt — häufig mit Hilfe von → Projektmanagement — die Umsetzung zu einem Produkt.
Abbildung 2: Die Vorgehensrichtung beim klassischen Engineering
Beim Reverse Engineering ist die Vorgehensrichtung genau umgekehrt: Aus der Analyse des Produkts wird ein Konstruktionsplan / eine Umsetzungsspezifikation abgeleitet (Abbildung 3). Die Ableitung einer Anforderungsspezfikation ist aber nicht möglich, ebensowenig wie der zugrundeliegende → Projektplan.
Abbildung 3: Die Vorgehensrichtung beim Reverse Engineering
Anmerkungen:
- Rechtliche Problematiken: Beim Reverse Engineering können rechtliche Probelmatiken auftauchen, da Funktionsweisen und Techniken “automatisch” kopiert werden
- Ein “lokales Reengineering” in der Softwareentwicklung wird als Refactoring bezeichnet
Zur Schreibweise:
- Die → Schreibweisen Re-Engineering und Reengineering können gleichermaßen verwendet werden
Verwandte Begriffe:
- Business Reengineering: Hiermit ist der Ansatz von Hammer und Champy /Hammer03/ zum Umbau von Organisationen gemeint /#Wiki-Business-Process-Reengineering/
Literatur
- /Hammer03/ Michael Hammer, James Champy: Business Reengineering. Die Radikalkur für das Unternehmen, Campus, Frankfurt 7. Auflage 2003, ISBN 978–3‑593–35017‑2
Weblinks
- /#Wiki-Reverse-Engineering/ Reverse Engineering in der deutschen Wikipedia
- /#Wiki-Re-Engineering/ Re-Engineering in der deutschen Wikipedia
- /#Wiki-Reengineering-Software/ Reengineering (Software) in der deutschen Wikipedia
- /#Wiki-Business-Process-Reengineering/ Business Process Reengineering in der deutschen Wikipedia
Legende zu den Weblinks
/ / Verweis auf eine Website (allgemein)
/*/ Verweis auf eine Website, die als Ergänzung zu einem Buch dient
/#/ Verweis auf ein einzelnes Thema auf einer Website
/#V/ Verweis auf ein Video auf einer Website
Letzte Aktualisierung: 04.07.2025 © Peterjohann Consulting, 2005–2025