Reverse Engineering oder Reengineering? Was ist der Unterschied?

Manage­ment-Zusam­men­fas­sung die­ses Bei­trags:
Die Begrif­fe Rever­se Engi­nee­ring und Reen­gi­nee­ring wer­den in ver­schie­de­nen Dis­zi­pli­nen wie dem → Sys­tems Engi­nee­ring oder dem → Pro­dukt­ma­nage­ment ver­wen­det. Doch was ist der Unter­schied?
In die­sem Bei­trag wird eine Kurz­dar­stel­lung zur Unter­schei­dung der Begrif­fe geliefert.

Rever­se Engi­nee­ring und Reen­gi­nee­ring wer­den bevor­zugt im Kon­text des Sys­tems Engi­nee­rings ein­ge­setzt. Die bei­den Begrif­fe kön­nen fol­gen­der­ma­ßen cha­rak­te­ri­siert werden:

  • Rever­se Engi­nee­ring (deutsch in etwa: Umge­kehr­te Ent­wick­lung): Erstel­lung von Plä­nen zum Nach­bau auf Basis bereits bestehen­der Sys­te­me und Strukturen 
  • Reen­gi­nee­ring (deutsch in etwa: Inge­nieur­tech­ni­sche Über­ar­bei­tung): Neu­ge­stal­tung bestehen­der Sys­te­me und Strukturen

Die Wiki­pe­dia beschreibt das Rever­se Engi­nee­ring wie folgt /#Wiki-Reverse-Engineering/:
“Rever­se Engi­nee­ring (aus eng­lisch rever­se engi­nee­ring; für umge­kehrt ent­wi­ckeln, rekon­stru­ie­ren; Kür­zel: RE; auch Nach­kon­struk­ti­on) bezeich­net den Vor­gang, aus einem bestehen­den fer­ti­gen Sys­tem oder einem meis­tens indus­tri­ell gefer­tig­ten Pro­dukt durch Unter­su­chung der Struk­tu­ren, Zustän­de und Ver­hal­tens­wei­sen die Kon­struk­ti­ons­ele­men­te zu extra­hie­ren. Aus dem fer­ti­gen Objekt wird somit wie­der ein Plan erstellt.
Im Gegen­satz zu einer funk­tio­nel­len Nach­emp­fin­dung, die eben­so auf Ana­ly­sen nach dem Black-Box-→ Prin­zip auf­bau­en kann, wird durch Rever­se Engi­nee­ring ange­strebt, das vor­lie­gen­de Objekt weit­ge­hend exakt abzu­bil­den.
Oft wird ver­sucht, zur Veri­fi­ka­ti­on der gewon­ne­nen Ein­sich­ten eine 1:1‑Kopie des Objekts anzu­fer­ti­gen, auf deren Basis es grund­sätz­lich mög­lich ist, Wei­ter­ent­wick­lung zu betreiben.”

In der Wiki­pe­dia steht zum Re-Engi­nee­ring /#Wiki-Re-Engineering/:
“Re-Engi­nee­ring, auch Reen­gi­nee­ring genannt, ist das inge­nieur­mä­ßi­ge Neu­ge­stal­ten bestehen­der Sys­te­me und Struk­tu­ren oder das Erset­zen eines alten Sys­tems durch ein neu­es. Es umfasst alle Metho­den und Akti­vi­tä­ten zur Anpas­sung an geän­der­te Umfeldbedingungen.”

Spe­zi­ell zum Reen­gi­nee­ring in der → Soft­ware­ent­wick­lung führt die Wiki­pe­dia aus /#Wiki-Reengineering-Software/:
“Reen­gi­nee­ring (eng­lisch; auf Deutsch etwa „inge­nieur­tech­ni­sche Über­ar­bei­tung“) bezeich­net in der Soft­ware­ent­wick­lung eine Anpas­sung eines Soft­ware­sys­tems (Com­pu­ter­pro­gram­me) bei meist gleich­blei­ben­der Funk­tio­na­li­tät, oft zur Ver­bes­se­rung der Soft­ware­qua­li­tät. Eine typi­sche → Moti­va­ti­on bei Durch­füh­rung eines Reen­gi­nee­ring ist die Eli­mi­nie­rung von Schwach­stel­len mit dem Ziel, die Umset­zung neu­er Anfor­de­run­gen im Anschluss des Reen­gi­nee­rings zu ermög­li­chen. Auch im Zusam­men­hang mit der Por­tie­rung auf eine ande­re Platt­form wird häu­fig ein Reen­gi­nee­ring durch­ge­führt.
Für den Fall, dass bei Durch­füh­rung eines Reen­gi­nee­ring kei­ne Spe­zi­fi­ka­ti­on oder Doku­men­ta­ti­on der Soft­ware ver­füg­bar ist und die­se aus der Imple­men­tie­rung selbst abge­lei­tet wer­den muss, bezeich­net man die­sen Pro­zess als Rever­se Engi­nee­ring, der somit den anfäng­li­chen Teil eines Reen­gi­nee­ring dar­stel­len kann.
Der Begriff Refac­to­ring hat eine ähn­li­che Bedeu­tung wie Reen­gi­nee­ring, bezeich­net aber im Gegen­satz dazu qua­li­täts­ver­bes­sern­de Anpas­sun­gen auf nied­ri­ge­rem Abs­trak­ti­ons­ni­veau, die sich teil­wei­se auto­ma­ti­sie­ren las­sen. Ein Refac­to­ring kann somit Teil eines Reen­gi­nee­ring sein.”

In Abbil­dung 1 sind die bei­den Begrif­fe mit ihren Cha­rak­te­ri­sie­run­gen gegenübergestellt.

Reverse Engineering oder Reengineering?, (C) Peterjohann Consulting, 2024-2025

Abbil­dung 1: Rever­se Engi­nee­ring oder Reengineering?

Engi­nee­ring vs. Rever­se Engineering

Beim klas­si­schen Engi­nee­ring wird eine Anfor­de­rungs­spe­zi­fi­ka­ti­on erstellt und dar­aus ein Kon­struk­ti­ons­plan / eine Umset­zungs­spe­zi­fi­ka­ti­on abge­lei­tet (Abbil­dung 2). Auf die­ser Basis erfolgt — häu­fig mit Hil­fe von → Pro­jekt­ma­nage­ment — die Umset­zung zu einem Produkt.

Die Vorgehensrichtung beim klassischen Engineering, (C) Peterjohann Consulting, 2024-2025

Abbil­dung 2: Die Vor­ge­hens­rich­tung beim klas­si­schen Engineering

Beim Rever­se Engi­nee­ring ist die Vor­ge­hens­rich­tung genau umge­kehrt: Aus der Ana­ly­se des Pro­dukts wird ein Kon­struk­ti­ons­plan / eine Umset­zungs­spe­zi­fi­ka­ti­on abge­lei­tet (Abbil­dung 3). Die Ablei­tung einer Anfor­de­rungs­spez­fi­ka­ti­on ist aber nicht mög­lich, eben­so­we­nig wie der zugrun­de­lie­gen­de → Pro­jekt­plan.

Die Vorgehensrichtung beim Reverse Engineering, (C) Peterjohann Consulting, 2024-2025

Abbil­dung 3: Die Vor­ge­hens­rich­tung beim Rever­se Engineering

Anmer­kun­gen:

  • Recht­li­che Pro­ble­ma­ti­ken: Beim Rever­se Engi­nee­ring kön­nen recht­li­che Pro­bel­ma­ti­ken auf­tau­chen, da Funk­ti­ons­wei­sen und Tech­ni­ken “auto­ma­tisch” kopiert werden
  • Ein “loka­les Reen­gi­nee­ring” in der Soft­ware­ent­wick­lung wird als Refac­to­ring bezeichnet

Zur Schreib­wei­se:

  • Die → Schreib­wei­sen Re-Engi­nee­ring und Reen­gi­nee­ring kön­nen glei­cher­ma­ßen ver­wen­det werden

Ver­wand­te Begriffe:

  • Busi­ness Reen­gi­nee­ring: Hier­mit ist der Ansatz von Ham­mer und Cham­py /Hammer03/ zum Umbau von Orga­ni­sa­tio­nen gemeint /#Wiki-Business-Process-Reengineering/

Lite­ra­tur

  • /Hammer03/ Micha­el Ham­mer, James Cham­py: Busi­ness Reen­gi­nee­ring. Die Radi­kal­kur für das Unter­neh­men, Cam­pus, Frank­furt 7. Auf­la­ge 2003, ISBN 978–3‑593–35017‑2

Web­links

Legen­de zu den Weblinks
/ / Ver­weis auf eine Web­site (all­ge­mein)
/*/ Ver­weis auf eine Web­site, die als Ergän­zung zu einem Buch dient
/#/ Ver­weis auf ein ein­zel­nes The­ma auf einer Website
/#V/ Ver­weis auf ein Video auf einer Website