Einleitend sollen die Problematiken des Reverse Engineering und der Qualitätssicherung genauer um-rissen werden. Dazu werden einige wichtige Begriffe eingeführt und voneinander abgegrenzt.
Chikofsky und Cross haben in einem vielzitierten Artikel grundlegende Begriffe erläutert, die im Zusam-menhang mit Reengineering und Wartung von Software immer wieder benutzt werden [ CC90]. Zur Definition beziehen sie sich vor allem auf Phasen des Software-Entwicklungsprozesses und jeweils typische Dokumente. In jeder Phase hat man es mit Beschreibungen von Software unterschiedlichen Abstrakt-heitsgrads (Gegenteil: konkret) zu tun. Generell wird zunächst beschrieben, WAS geleistet werden soll, anschließend wird entsprechend den verfügbaren Technologien abgeleitet, WIE etwas mit Hilfe dieser Technologie realisiert werden soll. Dieser schrittweise Verfeinerungsprozess bringt somit nacheinander Anforderungsdokumente, Entwurfsdokumente, Implementierungen und letztlich ausführbaren Maschi-nencode hervor.
Kurz zusammengefasst schlagen Chikofsky und Cross Bedeutungen für die folgenden Begriffe vor (Erläuterungen jeweils im Glossar):
Nach diesen Definitionen beschränkt sich das Reverse Engineering allein auf die Analyse eines Systems und die Darstellung seiner Komponenten und deren Beziehungen zueinander. Eine mögliche Ver-änderung infolge solcher wiedergewonnener Informationen fällt in die Aufgaben der Restrukturierung und Reengieering