Beitragsseiten
4 Das Objektorientierte Paradigma
In der Informatk hat sich die Objektorientierung zu einem dominierenden Pradigma entwickelt und zeichnet sich dadurch aus, daß es unterschiedliche Aspekte der Softwaretechnologie in einem Konzept integriert. Objektorientierte Ansätze können auf unterschiedlichen Ebenen des Entwicklungsprozesses zur Anwendung kommen (vgl. WORBOYS 1995, S. 84f.; BILL 1996, S. 330; LEYKAUF/ ALBRECHT 1993, S. 49):
-
Techniken der Objektorientierten Analyse (OOA) und des Objektorientierten Designs (OOD) werden bei der Strukturierung des Anwendungsproblems auf der konzeptionellen Ebene eingesetzt und lösen hiermit relational geprägte Modelle wie das ERM ab..
-
Die Umsetzung in das logische Modell wird von der Verwendung eines objektorientierten Datenbankmanagementsystems geprägt.
-
Die Implementierung erfolgt in einer objektorientierten Programmiersprache wie C++, Java oder Smalltalk.
Abbildung 8: Der objektorientierte Ansatz
Quelle: SCHADER/ RUNDSHAGEN 1994, S. 15
Das Grundprinzip läßt sich folgendermaßen charakterisieren: Ein Datenobjekt, das einen Teil der realen Welt repräsentiert, wird zusammen mit den zugehörigen Methoden in einer Einheit gekapselt. Andere Programmteile können das so eingekapselte Objekt nur über diese Methoden ansprechen und zu Aktionen veranlassen. Dies führt zu einer Modularisierung, indem funktionale Bereiche eines Software-Systems in selbständige und nur über definierte Schnittstellen manipulierbare Komponenten zerlegt werden (BILL 1996, S. 330; RALSTON 1995, S. 166).
4.1 Grundlegende Konzepte
4.1.1 Das Objekt
Der Begriff des Objekts wird im Objektorienierten Paradigma in zweierlei Hinsicht verwendet (FRITSCH/ANDERS 1996, S. 4):
-
Externe Objekte sind die zu modellierenden Elemente der Realwelt, die für einen bestimmten Anwendungskontext von Bedeutung sind. Diese können dinglicher Natur sein (z.B. Straßen, Flurstück, Teich) als auch abstrakte Begriffe (z.B. Prozesse, Vorgänge, Beziehungen) beschreiben.
-
Interne Objekte sind die Repräsentationen der externen Objekte in einem EDV-System.
Da sich die vorliegende Arbeit mit Datenmodellen im Sinne einer Repräsentation in einem Computer beschäftigt, werden hier in erster Linie interne Objekte angesprochen.
Jedes Objekt ist aufgrund seines Objektidentifikators (OID) systemweit eindeutig zu identifizieren. Diese OID ist völlig unabhängig vom Zustand des Objektes, d.h. der Wertebelegung der Attribute. Deshalb ist es möglich, daß zwei verschiedenen Objekte denselben Zustand besitzen, aber anhand ihrer OID noch differenziert werden können (FRITSCH/ANDERS 1996, S. 4). Hier liegt ein deutlicher Unterschied zum Relationalen Modell, wo die Tupel anhand ihrer Attributwerte unterschieden werden, ohne daß eine davon unabhängige, inhärente Identität gegeben wäre (GÜNTHER 1998, S. 111f.).
4.1.2 Klassen
Eine Klasse faßt eine Menge möglicher Objekte zusammen, die Gemeinsamkeiten hinsichtlich ihrer Eigenschaften, ihren Beziehungen zu anderen Objekten und ihrer Semantik aufweisen. In der Klasse wird festgelegt, über welche Attribute die Eigenschaften seiner Objekte beschrieben werden. Auf Objektebene werden diese Attribute mit individuellen Werten belegt, die das Objekt charakterisieren. Strukturell kann jedes Objekt zusätzlich zu seinen Attributwerten auch in seinen Beziehungen zu anderen Objekten beschrieben werden. Die korrespondierenden Klasse definiert, von welcher Art das Bezugsobjekt ist, d.h. zu welcher Klasse es gehört (RUMBOUGH u.a. 1993, S.28). Beispielsweise wird in der Klasse „Flurstück“ festgelegt, daß Objekte diesen Typs über die Attribute „Flurstücksnummer“ und „Fläche“ sowie über eine Beziehung zu einem Objekt der Klasse „Person“, die den Eigentümer bezeichnet, beschrieben werden.
Abbildung 9: Klassen und Objekte
Quelle: Eigener Entwurf
Neben der Strukturbeschreibung besitzt die Klasse darüberhinaus einen semantischen Charakter. In Abhängigkeit des Anwendungszwecks können Repräsentationen von Entitäten der Realwelt unterschiedlichen Klassen im Datenmodell zugeordnet werden. Obwohl sowohl ein Universitätsgebäude als auch ein Warenhaus über einen Wert, eine Grundfläche und eine Geschoßzahl verfügen, können sie unterschiedlichen Klassen angehören, falls in der Modellierung die Eigentümerstruktur und der Verwendungszweck berücksichtigt werden soll. Faßt der Entwickler beide Objekte lediglich als Immobilien auf, können sie einer gemeinsamen Klasse angehören. Hier wird die Bedeutung der Klasse innerhalb der Objektorientierung für die Abbildung eines Realitätsausschnittes in einem Datenmodell deutlich: durch die Abstraktion des Anwendungsproblems können Einzelbeobachtungen auf Kategorien generalisiert werden (RUMBOUGH u.a. 1993, S. 28).
Die Zugehörigkeit des Objekts zu einer Klasse als eine Instanz derselben ist eine implizite Eigenschaft jeden Objekts. Die meisten objektorientierten Programmiersprachen können die Klasse eines Objekts zur Laufzeit des Programms feststellen (SCHADER/ KUHLINS 1996, S. 166).
Der Begriff „Objekttyp“ wird häufig synonym für „Klasse“ benutzt. In einer engen Auslegung besteht aber folgender Unterschied: auf der konzeptionellen Ebene fassen Objekttypen Objekte mit ähnlichen Eigenschaften und Verhalten zusammen, die dann auf der Implementierungsebene in Klassen mit den entsprechenden Datenstrukturen und Methoden abgebildet werden (WORBOYS 1995, S. 86). Da diese Unterscheidung aber in der Literatur nicht durchgängig Anwendung findet, wird in der vorliegenden Arbeit der Begriff „Objekttyp“ bzw. „Typ“ dann verwendet, wenn die Art eines Objektes betont werden soll, während die Klasse sowohl die Art als auch die konkrete Implementierung beschreibt.
4.1.3 Vererbung
Das Vererbungskonzept stellt eine Möglichkeit dar, Gemeinsamkeiten zwischen verschiedenen Klassen redundanzfrei zu teilen und gleichzeitig die Eigenheiten der jeweiligen Klassen zu erhalten. Eine Klasse kann von einer anderen Klasse abgeleitet werden, wobei die neue Unterklasse (Subklasse) alle Eigenschaften ihrer Oberklasse (Superklasse) erbt (RUMBOUGH u.a. 1993, S. 48). Damit geht dieses Modellierungskonstrukt über das reine Bilden einer Begriffshierarchie hinaus. Der Unterschied soll anhand eines Beispiels aus dem (nicht objektorientierten) ATKIS - Objektartenkatalog aufgezeigt werden (SCHELLERER 1992, S. 17f.; BORCHERT 1994, S. 30):
Der Objektartenkatalog ist hierarchisch in Objektbereiche, Objektgruppen und Objektarten gegliedert. Die beschreibenden Attribute werden aber erst in der untersten Stufe, der Objektart, und damit auf dieser Ebene redundant definiert.
Abbildung 10: Ausschnitt ATKIS-Objektartenkatalog
Quelle: Nach BORCHERT 1994, S. 30 , verändert
In einem objektorientierten Entwurf würden die Attribute „Bezeichnung“, „Funktion“ und „Zustand“ in einer Oberklasse (hier sowohl in „Straßenverkehr“ als auch in „Verkehr“ möglich“) definiert und automatisch an die Klassen „Straße“, „Weg“ und „Platz“ weitervererbt. Im Gegensatz zu der Begriffshierarchie in ATKIS, die auf drei Ebenen begrenzt ist, kann die Vererbung über beliebig viele Stufen weitergeführt werden. Die Höhe des dabei entstehenden Baumes hängt damit nur davon ab, wie sinnvoll und aussagekräftig das Datenmodell ist. Grundsätzlich unterscheiden sich die Klassenhierarchien in den verschiedenen Programmiersprachen darin, daß z.B. in Smalltalk und Java alle Klassen von einer systemseitig definierten „Urklasse“ abstammen und damit einen Baum bilden, während andere Sprachen wie C++ einen Wald ergeben, da mehrere benutzerdefinierte Wurzeln möglich sind (HEUER 1992, S.209).
Je nach Blickrichtung bzw. Verwendungszweck kann man das Vererbungskonzept als Generalisierung bzw. Spezialisierung betrachten. Bei der Generalisierung werden die Gemeinsamkeiten mehrerer Klassen zu einer Superklasse zusammengefaßt, während die Spezialisierung die Individualität einzelner Klassen gegenüber einer gemeinsamen Superklasse betont. Ausgehend von obigem Beispiel könnte die Klasse „Straße“ entsprechend dem Attribut „Widmung“ in die Unterklassen „Autobahn“, „Bundesstraße“, „Landesstraße“, „Kreisstraße“, „Gemeindestraße“ und „Sonstige Straßen“ aufgespalten werden.
Abbildung 11: ATKIS-Ausschnitt als Klassendiagramm
Quelle: Eigener Entwurf
Der semantische Charakter der Klasse und ihre Bedeutung für die Datenmodellierung wird durch die Vererbung betont. Schon beim Entwurf des Datenmodells muß entschieden werden, welche Aspekte der Entitäten primär betrachtet werden und welche Rolle sie im Gesamtkontext der Anwendungsproblematik wahrnehmen. Im obigen Beispiel ist der thematische Aspekt der Objekte das Kriterium für die Hierarchiebildung. Ein wichtiges Charakteristikum interner Objekte in einem GIS ist ihre geometrische Repräsentation, die darüber entscheidet, welche Analysefunktionen zur Verfügung stehen. Im entsprechenden Maßstab werden Straßen und Wege zu Linien generalisiert, während Plätze als Polygone dargestellt würden. Wendet man diesen Aspekt hier an, wird die Klasse „Plätze“ von einer anderen Klasse abgeleitet als „Straße“, und „Weg“.
Abbildung 12: Klassenvererbung anhand der Geometrie
Quelle: Eigener Entwurf.
4.1.4 Assoziation
Mit Hilfe der Assoziation werden auf Klassenebene Verknüpfungen zwischen Objekten modelliert. Insofern besteht eine Analogie zu der Beziehung eines Objektes zu seiner Klasse: ein Objekt ist eine Instanz seiner Klasse, während eine Verknüpfung zwischen zwei oder mehreren Objekten eine Instanz einer Assoziation zwischen Klassen darstellt. In der Aussage „Theo Huber ist-Eigentümer-von Flurstück Nummer 0815“ wird ein Objekt der Klasse „Person“ über eine Instanz der binären Assoziation „ist-Eigentümer-von“ mit einem Objekt der Klasse „Flurstück“ verknüpft. Die in der Benennung ausgedrückte Richtung der Assoziation kann auch in der entgegengesetzten Richtung durchlaufen werden, indem die Assoziation als „ist-Eigentum-von“ formuliert wird. Die Multiplizität einer Assoziation spezifiziert, wieviele Instanzen einer Klasse mit einer Instanz einer assoziierten Klasse verknüpft sein können (RUMBOUGH u.a. 1993, S. 34).
4.1.5 Aggregation
Die Aggregation ist eine Sonderform der Assoziation, da die hiermit abgebildete Beziehung zwischen Objekten eine „Teil-Ganzes“-Relation darstellt. Beispielsweise drückt die Darstellung eines Polygons als eine Sequenz von Linienstücken aus, daß das einzelne Linienstück Teil des Polygons ist und dieses wiederum von der Existenz dieses Linienstücks abhängt. Der Unterschied zu einer normalen Assoziation besteht darin, daß durch das Zusammensetzen der einzelnen Komponenten ein neuer Begriff mit eigener Identität und zusätzlichen Eigenschaften definiert wird. Erst die sinnvolle Gruppierung der Linienstücke zu einem Polygon läßt die Interpretation zu, daß damit eine Fläche mit einem Flächeninhalt und einem Umfang repräsentiert wird. Da die Aggregation transitiv ist, können „Teil-Ganzes“-Relationen über mehrere Ebenen hinweg modelliert werden. Dadurch können komplexe Objekte übersichtlicher in Stufen zerlegt werden (RUMBOUGH u.a. 1993, S. 46f.).
Abbildung 13: Aggregation
Quelle: Eigener Entwurf.
4.1.6 Verhalten
Neben den datenbezogenen Eigenschaften seiner Objekte beschreibt die Klasse auch das mögliche Verhalten und die Operationen, die auf den Instanzen angewendet werden können. Diese sind in Fom von Methoden implementiert. Eine Fläche wird damit nicht nur durch die begrenzenden Linien repräsentiert, sondern bietet darüberhinaus Funktionen, die bestimmte Werte ermitteln (Flächeninhalt, Umfang, Schnittoperation mit anderer Fläche) oder Aktionen auslösen (Darstellung auf einem Ausgabegerät, Skalierung). Während im ERM nur die Datenebene betrachtet wird, ergänzt die Objektorientierung diese Sicht um die objektbezogene Funktionalität und erfaßt damit die statisch-datenorientierten sowie die dynamisch-verhaltensbezogenen Aspekte von Informationen (WORBOYS 1995, S. 85).
Das Konzept der Vererbung bezieht sich ebenfalls auf das Objektverhalten. Eine Unterklasse erbt nicht wie im ERM nur die Attribute seiner Oberklasse, sondern auch die dort definierten Operationen und kann diese durch Überschreiben anpassen (overriding) und zusätzliche Methoden definieren (SCHADER/ KUHLINS 1996, S.255).
Jedes Objekt verfügt über zwei spezielle Methoden: den Konstruktor und den Destruktor. Der Konstruktor wird aufgerufen, sobald das Objekt im Speicher erzeugt bzw. „konstruiert“ wird. Hier finden die für das Objekt wichtigen Initialisierungen statt. Ein Aufruf des Destruktors erfolgt, sobald das Objekt gelöscht wird. Damit kann der Programmierer sicherstellen, daß alle von dem Objekt beanspruchten Systemressourcen wieder freigegeben werden (SCHADER/ KUHLINS 1996, S. 170) .
4.1.7 Polymorphismus
Polymorphismus steht für die Eigenschaft von Objekten, zur Laufzeit eines Programmes verschiedene Typen darstellen zu können. Wie bereits erwähnt, ist die Zugehörigkeit eines Objekts zu seiner Klasse eine implizite Eigenschaft jeden Objektes. Durch das Konzept der Vererbung wird dieser Aspekt erweitert: da eine Unterklasse als eine Teilmenge seiner Oberklasse mit speziellen Merkmalen angesehen werden kann, ist es möglich, jedes Objekt dieser Unterklasse auch als ein Exemplar der Oberklasse zu interpretieren (BILL 1996, S. 340f.). Die Autobahn mit der Bezeichnung „A6“ ist eine spezielle Ausprägung des allgemeineren Falles „Straße“ mit den zusätzlichen Eigenschaften, daß die erlaubte Höchstgeschwindigkeit unbegrenzt sein kann und die Zuständigkeit für die Instandhaltung bei einer Bundesbehörde liegt. Mit den anderen Straßen teilt sie die Eigenschaften, daß sie thematisch dem Bereich Verkehr zugeordnet ist und hinsichtlich ihres baulichen Zustands einstufbar ist.
- Zurück
- Weiter >>