Objektorientierung

Von Code-Sklaven zu Klassenhaltern

12.09.1997

Von Stefanie Schneider*

Alle Gegner eines Wechsels zur objektorientierten Programmierung haben ein Argument: Sehr viel Know-how und Geld sei in die existierenden Anwendungen eingeflossen. Kaum ein Unternehmen schreibt kurzentschlossen eine wichtige Applikation komplett neu. Vielmehr werden die Altsysteme gewartet und ergänzende Teile nach objektorientiertem Muster gestrickt.

Das Wissen, das in den Altsystemen steckt, bezieht sich sowohl auf die Logik der Programme als auch auf die Daten beziehungsweise das zugrundeliegende Datenmodell, das meist den Grundsätzen von Entity Relationship gehorcht und nicht nach Objektkriterien realisiert ist. Die Daten lagern heute allenfalls in denormalisierter Form auf relationalen Datenbanken.

Außerdem sind sie einem auf das Datenbanksystem und die Anwendungsart zugeschnittenen speziellen Tuning unterworfen. Die Auswertung von Massendaten benötigt dabei eine andere Behandlung als ein Drill-down in vordefinierten Ebenen oder die Kontextsuche in Dokumenten.

Das Design einer objektorientierten Anwendung erfordert dagegen ein Klassenmodell. Ein möglicher Ansatz, diese von Entity-Relationship-Modellen in eine Klassenhierarchie zu überführen, bietet die Eins-zu-eins-Abbildung. Dabei entstehen aus den Datenbank-Tabellen Klassen - mitsamt ihren Attributen und Beziehungen. Wer allerdings auf Automatismen hofft, die ihm diese Arbeit erleichtern, wird enttäuscht. Es gibt sie nicht.

Eine Prophylaxe in Form einer umsichtigen Entwicklung von heute noch strukturierten Applikationen bietet allerdings eine gewisse Arbeitserleichterung, wenn später ein Wechsel in die objektorientierte Welt ansteht. Analyse und Modellierung erfolgen bei diesem Konzept mit Werkzeugen, die sowohl ein klassisches Datenmodell als auch ein objektorientiertes Klassenmodell unterstützen.

So können sich die Entwickler zudem in die objektorientierte Welt einarbeiten, während sie für ihre tägliche Arbeit die strukturierte Methode weiter benutzen. Wichtig für den gezielten Schritt in die neue Welt der Programmierung ist zudem ein Metamodell, das Regeln für die Klassenhierarchie und für das Entity-Relationship-Modell festschreibt.

Es erlaubt, bei objektorientierten Neuentwicklungen auf die vorhandene Datenbasis zuzugreifen und diese sukzessive in eine neue Darstellungsform, etwa auf einer objektrelationalen Datenbank wie DB/2, Universal Server und Oracle 8 oder auch auf eine objektorientierte Datenbank zu überführen. Letztere, die unter Bezeichnungen wie Ontos, Versant, O/2, Object-Design und Objectivity auf dem Markt vertreten sind, gewinnen an Bedeutung, etwa als Internet-Server.

In der Praxis dominieren hybride Verfahren