Reverse Engineering von konzeptuellen Modellen aus Daten- und Programm-Altlasten: Eine Fallstudie

Autor
B.-J. Hellbock
Masterarbeit
MT9603 (Juli, 1996)
Betreut von
o. Univ.-Prof. Dr. Michael Schrefl
Angeleitet von
Univ.-Ass. Mag. Thomas Prückler
Ausgeführt an
Universität Linz, Institut für Wirtschaftsinformatik - Data & Knowledge Engineering

Einleitung

Ziele:

Im Rahmen der Diplomarbeit wird eine Methodik erarbeitet, die Programm- und Daten-Altlasten auf ein konzeptuelles Modell abbildet. Bei der Methodik handelt es sich um eine Reverse-Engineering-Vorgehensweise, die ausgehend von der physischen Ebene den Entwurf wiederbeschafft und in der Object Modeling Technique (OMT) von James Rumbaugh et al, dem Zielmodell der Reverse-Engineering-Methodik, abbildet. Die Abbildungen des Altsystems in den Modellen der Methode sind unter anderem Grundlage für die Migration der Daten und der Programme auf neuere Systeme.

Während sich viele Reverse-Engineering-Methoden auf einen Aspekt û die Daten oder die Funktionen û beschränken, führt die hier dargestellte Methode Daten- und Programm-Reverse-Engineering zusammen und bildet beide Aspekte in OMT ab.

Die Vorgehensweise wird auf das Anwendungsprogramm Diagnostika der Firma Laevosan angewandt, um die praktische Anwendbarkeit der Methode zu zeigen, Probleme zu erkennen und praxisnahe Beispiele anführen zu können.


Motivation:

Die Entwicklung der Informations- und Kommunikationstechnik beschleunigt sich zusehends. Unternehmen werden laufend mit neuen Technologien, Datenbanksystemen, Datenmodellen, Datenentwurfsmethoden, etc. konfrontiert. Ihre Investitionen in den Informations- und Kommunikationsbereich und in die elektronische Datenverarbeitung werden von der Entwicklung auf den Märkten schneller obsolet (gemacht), als sie nachrüsten können. Der Bereich Datenverarbeitung und alle damit verbundenen Teilbereiche entwickeln sich laufend weiter. Hardware wird leistungsfähiger und günstiger, Software und Datenbanksysteme werden mächtiger. Während früher mit Dateisystemen auf Abteilungsebene oder Arbeitsplatzebene gearbeitet wurde, gibt es heute relationale Datenbanksysteme, die den Datenbestand für eine ganze Reihe von Anwendungen innerhalb einer Organisation verwalten. Sie bieten Vorzüge, wie Mehrbenutzerbetrieb, Konsistenz- und Verlustsicherung, Datenunabhängigkeit, Verteilung, Ad-hoc-Anfragemöglichkeiten, etc. In der Zukunft werden sich neue Programmier- (objektorientierte Konzepte) und Datenbankkonzepte (verteilte Datenbanken, objektorientierte Datenbanken) durchsetzen.

Die Entwickler in der EDV-Abteilung sind zu einem hohen Prozentsatz in der Wartung tätig. Die Zeit und Kapazitäten für Neuentwicklung sind gering. McClure spricht in diesem Zusammenhang von der ôSoftwarekriseö. Neue Projekte verzögern sich, die Wartung der Altsysteme wird aufgrund der ôaufgepfropftenö Änderungen und ôVerbesserungenö immer schwieriger und aufwendiger. Die Wartungskosten nehmen einen immer größeren Anteil an den Gesamtkosten der EDV-Abteilungen ein. In den 70er Jahren betrugen sie noch 35-40 Prozent der Gesamtkosten, in den 80er Jahren 40-60 Prozent und in den 90er Jahre wird ein Anteil von 70-80 Prozent geschätzt. Kaufmann bemerkt den Umstand, ôdaß ca. 70% der Entwicklungskapazitäten für Wartung, Migration und Ersetzung von bestehenden Anwendungssystemen eingesetzt werden müssen.ö

Die Forderungen nach Hilfsmitteln, die die Wartung unterstützen (zB Werkzeuge zur Aktualisierung der Dokumentation) und Vorgehensweisen, die den Wandel von einer Programmiersprache zu einer anderen oder von einem Dateisystem zu einem Datenbanksystem systematisieren und die Schritte und Vorbedingungen dafür festlegen, werden immer lauter.

Reverse Engineering leistet einen Beitrag zur Lösung der Wartungs- und Migrationsproblematik und stellt eine Alternative zur vollständigen Neuentwicklung von Anwendungssystemen dar. Wichtige Informationen sind im Programm-Code oder in den Datenbankbeschreibungen bereits verfügbar und können daraus ermittelt werden. Reverse Engineering kann als Sammelbegriff für die Methodiken, Methoden, Techniken, Vorgehensweisen und Werkzeuge gesehen werden, die nötig sind um aus Programm-Altlasten, für die zum Teil keine Daten- oder Funktionsmodelle vorliegen, das konzeptuelle Modell zu erstellen. Das Hauptaugenmerk bei der Betrachtung der Anwendungssysteme wird auf die Funktionalität und die Daten gelegt.

Die Vorteile objektorientierter Programmiersprachen und objektorientierter Datenbanken wie Wiederverwendbarkeit von Komponenten, Flexibilität, Bewältigung der Komplexität, etc. werden zunehmend auch in der Praxis erkannt und eingesetzt. Dies ist Grund genug in dieser Arbeit ein objektorientiertes Datenmodell bzw. eine objektorientierte Modellierungstechnik zu verwenden. Daraus läßt sich nicht ableiten, daß das in objektorientierter Form vorliegende konzeptuelle Modell auch in objektorientierten Programmiersprachen oder in objektorientierten Datenbankschemata implementiert wird. Rumbaugh et al. zeigen in ihrem Buch eine Reihe von Möglichkeiten für die Implementierung in herkömmlichen Umgebungen auf.


Aufbau der Diplomarbeit:

Nach den einleitenden Worten in Kapitel 1 befaßt sich Kapitel 2 mit der Klärung von Begriffen und Konzepten und gibt einen Überblick über das Themengebiet. Die Anzahl der ôReö-Wörter ist beachtlich: RE-Dokumentation, REverse Engineering, REengineering, REformatierung, REDesign, RE... Neben der reinen Begriffsbestimmung sollen die Begriffe auch sinngemäß geordnet werden, um dem Leser einen Überblick zu geben. Die Zusammenhänge unter den Begriffen werden dargestellt.

Das 3. Kapitel zeigt eine Reihe von Methoden und Verfahren auf, die zur Zeit auf dem Gebiet des Reverse Engineering, Erprobung und Anwendung sind. Die Methoden werden untergliedert in Methoden zum Reverse Engineering von Dateien und relationalen Datenbankschemata und Methoden zum Reverse Engineering von Programmen. Nur wenige Methoden integrieren beide Bereiche in eine Vorgehensweise.

Kapitel 4 stellt das Zielmodell û OMT Object Modelling Technique û vor. Die 3 Modelle der Methodik (Objektmodell, Funktionales Modell, Dynamisches Modell) werden kurz vorgestellt und erläutert. anschließend werden das Programmsystem (MS Access) und die Fallstudie besprochen.

Es folgt die Beschreibung der Reverse Engineering Methodik, die in der Diplomarbeit entwickelt wurde. Die Erstellung des Objektmodells, des Funktionalen Modells und des Dynamischen Modells wird anhand des Fallbeispieles aufgezeigt.