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.
4.2 Weiterführende Konzepte
4.2.1 Abstrakte und konkrete Klassen
Ein weiteres Konzept, das sich indirekt aus der Generalisierung ableitet, betrifft die Festlegung einer Klasse als abstrakt. bzw. konkret. Der Unterschied besteht darin, daß von einer abstrakten Klasse keine Instanzen direkt erstellt werden können, sondern nur von abgeleiteten konkreten Klassen. Diese Festlegung ist dann von Nutzen, wenn eine Superklasse lediglich der Definition eines Konzepts dient, dessen unterschiedlichen Ausprägungen in den abgeleiteten Klassen spezifiziert werden müssen (SCHADER/ KUHLINS 1996, S.262). In dem in Abbildung 12 dargestellten Beispiel ist es nicht möglich, ein Geometrie–Objekt zu erstellen, wohl aber Objekte vom Typ Punkt, Linie und Fläche. Angenommen, in der Klasse Geometrie ist eine Methode „Auf_Bildschirm_zeichnen“ definiert, die an die Subklassen weitervererbt wird, so kann diese in der Geometrie-Klasse nicht implementiert werden, da diese nicht über die notwendigen Daten in Form von Koordinatenwerten verfügt. Erst in den abgeleiteten Klassen stehen diese Daten zur Verfügung und für jede Klasse muß eine Funktion programmiert werden, die das entsprechende Objekt auf einem Bildschirm anzeigt.
4.2.2 Mehrfachvererbung
Die bisher betrachtete einfache Vererbung erlaubt maximal eine Oberklasse. Eine Erweiterung stellt das Konzept der Mehrfachvererbung dar, wobei eine Unterklasse von mehreren Oberklassen erben kann.1 Dadurch kann in einem Datenmodell ausgedrückt werden, daß ein und dasselbe Objekt in in einem anderen Kontext eine andere Rolle erfüllt. Beispielsweise stellt eine Schleuse einmal ein Bauwerk, ein anderes Mal ein Verkehrshindernis dar oder ein Grundstück umfaßt sowohl eigentumsrechtliche als auch widmungsrechtliche Aspekte. Wesentlich dabei ist, daß die Identität eines Objektes davon nicht betroffen ist, sondern lediglich für ein Objekt in einem anderen Anwendungskontext andere Eigenschaften und Verhaltensmerkmale von Bedeutung sind (BARTELME 1995, S. 151).
Abbildung 14: Mehrfachvererbung
Quelle: Eigener Entwurf.
4.2.3 Kapselung
Dieses auch als „information hiding“ bezeichnete Prinzip dient der Datenabstraktion einer Klasse. Dabei wird die abstrakte Sicht auf die Objekte gezielt von der internen Implementierung getrennt, indem einige Eigenschaften eines Objekts als „privat“, d.h. nur für das Objekt selbst zugänglich, deklariert werden. Die öffentlichen Eigenschaften bilden die Schnittstelle (das „Interface“) der Klasse, über die die Objekte diesen Typs angesprochen werden können. Durch diese Deklaration kann das System unerlaubte Manipulationen auf den Objekten unterbinden. An der internen Realisierung können nachfolgend Änderungen vorgenommen werden, die sich auf andere Bereiche der Software nicht auswirken, solange die Schnittstelle unverändert bleibt (FRITSCH/ANDERS 1996, S. 5).
4.3 Objektorientierte Datenbanken
Ein objektorientiertes Datenbankmanagementsystem ist ein DBMS mit einem objektorientierten Datenmodell. Diese Definition impliziert zwei Sachverhalte (GÜNTHER 1998, S. 111):
-
Ein OODBMS enthält die volle Funktionlität eines modernen DBMS und bietet Merkmale wie Sekundärspeicherverwaltung, parallelen Zugriff mehrerer Benutzer, Recovery, Unterstützung von ad hoc-Abfragen, verteilte Datenbanken und Integritätsbedingungen.
-
Ein OODBMS bietet die Merkmale objektorientierter Systeme wie Objektidentitäten, Klassen und Vererbung, komplexe Objekte und benutzerdefinierte Datentypen.
Mit strukturell objektorientierten DBMS können beliebig komplexe Objekte modelliert werden, während verhaltensmäßig objektorientierte Systeme die Definition von Typen mit eigenen Methoden erlauben. Voll objektorientierte Systeme unterstützen sowohl strukturelle als auch verhaltensmäßige Merkmale (FRITSCH/ANDERS 1996, S. 7).
Durch die zunehmende Bedeutung neuer Anwendungsbereiche wie GIS, CAD, Bildverarbeitung oder Automatisierungstechniken (Computer Aided Manufactoring - CAM), den sog. Nicht-Standard-Anwendungen, werden an die Datenbanktechnik Anforderungen hinsichtlich der Flexibilität und Strukturierung gestellt, die konventionelle Systeme wie die relationalen DBMS nicht erfüllen können. Die auf dem Objektmodell basierenden Systeme bieten diese geforderten Merkmale: Bildung komplexer Objekte, Schnittstellen zu objektorientierten Programmiersprachen und weitestgehend redundanzfreie Datenmodellierung (ROCHE 1996, S. 6f.).
In der Praxis können OODBMS als eine Erweiterung von objektorientierten Programmiersprachen angesehen werden, da die meisten Systeme direkt auf die Anbindung an eine Sprache wie C++, Java oder Smalltalk aufbauen (FRITSCH/ANDERS 1996, S. 6). In einem normalen Softwaresystem werden Objekte zur Laufzeit des Programms erzeugt und stehen spätestens zu dem Zeitpunkt nicht mehr zur Verfügung, an dem das Programm beendet wird. Sollen die in einem Objekt gekapselten Daten auch zu einem späteren Zeitpunkt verfügbar sein, müssen sie zunächst auf einen Sekundärspeicher geschrieben werden. Objektorientierte Datenbanksysteme bieten hierzu die Möglichkeit, den Inhalt der Objekte in einer speziellen Struktur abzulegen, mit deren Hilfe es möglich ist, nicht nur einfache Datentypen wie Zahlen und Zeichenketten sondern auch Referenzen zwischen Objekten dauerhaft zu speichern. Wird dann ein Objekt aus der Datenbank gelesen, prüft das Datenbanksystem, ob sich die von diesem Objekt referenzierten Instanzen bereits im Arbeitsspeicher befinden und liest diese gegebenenfalls dorthin aus. Die gespeicherten Referenzen werden dann in Adressen des Arbeitspeichers umgewandelt, die die Stelle bezeichnen, an der das Objekt nun vorliegt und über die man jetzt auf das Objekt zugreifen kann (SCHADER 1997 , S.13).
Im Unterschied zu relationalen Datenbanken fehlten objektorientierten Datenbanksystemen lange Zeit eine klare theoretische Fundierung und entsprechende Festlegungen, über welche Eigenschaften ein objektorientiertes Datenbankmanagementsystem verfügen muß. Erste Ansätze dazu lieferten ATKINSON u.a. 1992, indem sie obligatorische und optionale Merkmale erstmals publizierten. Um auf dem kommerziellen Datenbanksektor einen Standard aufzustellen, haben sich mehrere Hard- und Softwarehersteller (z.B. IBM, Poet, ONTOS, O2) zur „Object Database Management Group“ (ODMG) zusammengeschlossen. Dabei werden mit dem Standard vorrangig zwei Ziele verfolgt:
-
Ein standardkonformes Anwendungsprogramm soll ohne Änderung des Sourcecodes auf unterschiedlichen Datenbankprodukten und in verschiedensten Hard- und Softwareumgebungen übersetzbar und lauffähig sein.
-
Auf die Datenbanken sollen in verschiedenen Programmiersprachen entwickelte Anwendungsprogramme gleichzeitig zugreifen können. Momentan stehen hier die objektorientierten Programmiersprachen C++ und Java im Vordergrund, vereinzelt wird auch Smalltalk unterstützt.
Die Standardisierung betrifft lediglich die Schnittstelle, über die die Produkte angesprochen werden können, wobei die Art der internen Datenverwaltung voneinander abweicht. Grundbestandteile des Standards sind ein Objektmodell, die Objektdefinitions-Sprache ODL (Object Definition Language) und die Anfragesprache OQL (Object Query Language) (SCHADER 1997, S. 1ff.; HELOKUNNAS 1994, S. 1201f.).
Das ODMG-Objektmodell spezifiziert, welche Softwareeinheiten in der Datenbank gespeichert werden können und welche Merkmale objektorientierter Systementwicklung anwendbar sind. Der Standard unterstützt Vererbungsstrukturen und verwendet diesen Mechanismus, um Objekte benutzerdefinierter Klassen persistenzfähig zu machen. Dazu ist eine Klasse d_Object definiert, die über Fähigkeiten zum Schreiben und Lesen seiner Datenfelder verfügt und damit als Superklasse für alle benutzerdefinierten persistenten Klassen dient. Jedes persistente Objekt erhält vom Datenbanksystem eine eindeutige Identität, die für die gesamte Lebensdauer des Objekts gültig bleibt, auch wenn sich dessen Eigenschaften ändern. Die Eigenschaften der Objekte können mit Hilfe von Literalen (long, short, float, double, string usw.) sowie über Beziehungen zu anderen Objekten beschrieben werden. Neben diesen atomaren Objekten sind auch diverse Collection-Typen, d.h. Objektmengen, definiert (set, bag, list, array), die sich darin unterscheiden, ob die Menge geordnet ist und ob Duplikate gestattet sind (SCHADER 1997, S. 10 ff.).
4.4 Eignung objektorientierter Konzepte für GIS
4.4.1 Unterschiede zu einem Layer-GIS
Da objektorientierte Methoden in erster Linie programmiertechnische Konzepte betreffen, stellt sich die Frage, inwiefern ein potentieller GIS-Anwender von diesen Strukturen profitieren kann. BARTELME sieht in diesem Zusammenhang zunächst folgende Unterschiede objektorientierter Lösungen zu layerorientierten Strategien als wesentlich an (BARTELME 1995, S. 151f.):
-
Betonung des Individuums: Ausgangspunkt der Modellierung sind einzelne Objekte, die mit anderen gleichartigen Objekten zu Klassen zusammengefaßt werden.
-
Abkehr von strenger Hierarchie: Jedes Objekt kann mit Hilfe der Mehrfachvererbung mehreren Klassen zugeordnet werden. Dieses Konstrukt sollte aber aus Gründen der Übersichtlichkeit nur Ausnahmefällen Anwendung finden.
-
Dynamik: Anstatt der starren ebenenbezogenen Einteilung sind flexible Zusammenfassungen möglich.
-
Verhalten: Neben seinen Daten verfügt jedes Objekt über ein definiertes Verhalten, das über einen Nachrichtenmechanismus ausgelöst werden kann.
-
Keine Flächendeckung: Der layerorientierte Zugang impliziert, daß die Ausprägung eines Attributs für jede Stelle eines Untersuchungsgebietes bekannt ist. Aufgrund der Individualität der Objekte ist dies im objektorientierten Ansatz nicht gegeben. Eine weitere Folge dieser Sichtweise ist, daß die Geometrie eines Objektes ein Attribut unter anderen darstellt, während bei Layern die Geometrie im Mittelpunkt steht.
4.4.2 Erweiterte Modellierungsstrukturen
Die strukturellen Möglichkeiten wie Vererbung, Aggregation und Assoziation bieten einerseits umfangreiche Modellierungsmöglichkeiten, erzwingen andererseits eine weitergehende Strukturierung durch den Anwender als dies bei konventionellen Lösungen der Fall ist. Dies ist zwar zunächst mit einem weitaus größeren Aufwand verbunden, erhöht aber letztendlich die Qualität der Daten, indem Abhängigkeiten und Verbindungen zwischen Objekten dargestellt sind und dadurch die Ableitung von Informationen aus den reinen Daten unterstützt wird (LEYKAUF/ ALBRECHT 1993, S. 50).
Komplexe Systeme aus den Bereichen der Ökologie, der Transportlogistik, der Versorgung und der Kommunikation sind Untersuchungsgegenstand in einem GIS und erfordern Möglichkeiten, die vielfältigen Beziehungen der Systemelemente untereinander darzustellen. Hinsichtlich der Bewältigung und Abbildung dieser Komplexität in einem Datenmodell bietet das objektorientierte Paradigma einen intuitiven Zugang, da mit Hilfe der Konstrukte Assoziation und Aggregation Verknüpfungen zwischen Objekten unmittelbar darstellbar sind. Diese Beziehungen können komplexe Objekte repräsentieren, die selbst wiederum als eine Einheit anzusprechen sind (ARCTUR/ SARGENT 1998, o.S.).
Unter dem Gesichtspunkt der Datenintegration ist festzustellen, daß es objektorientierte Lösungen ermöglichen, das Anwendungsproblem derart zu strukturieren, daß räumliche und thematische Attribute in einem Objekt vereint sind. Beim Aufbau eines GIS-Datenmodells kann dadurch die bislang festzustellende Geometriezentrierung durch eine Objektzentrierung ersetzt werden. Der in Kapitel 3 dargestellte Aufbau eines konventionellen GIS leitet den Anwender dazu, einzelne geometrische Elemente mit Datensätzen zu verbinden, die diese Geometrie thematisch beschreiben. Ausgangspunkt der Datenmodellierung ist also beispielsweise ein Polygon, daß dann durch zusätzliche Attribute thematisch erfaßt wird. In einem objektorientierten System stehen dahingegen die Begriffe des Anwenders im Mittelpunkt, die neben anderen Attributen auch durch Geometrien beschrieben werden. Die von LEYKAUF/ ALBRECHT (1993, S.50) als zutiefst „ungeographisch“ bezeichnete prinzipielle Trennung in Geometrie und Thematik ist als solche nicht gegeben. Dadurch ist es darüberhinaus prinzipiell möglich, ein Objekt durch verschiedene Geometrien zu repräsentieren. Dieser Aspekt ist vor allem dann von Interesse, wenn Raster- und Vektordaten zu integrieren sind oder eine maßstabsabhängige Generalisierung gewünscht wird (WOODSFORD 1995, o.S.).
Wie das Beispiel in Abbildung 10 und Abbildung 11 zeigt, können gemeinsame Geometrie- und Sachattribute in einer übergeordneten Superklasse definiert werden, womit die redundante Definition in jeder einzelnen Klasse bzw in jedem Layer und der dazugehörigen Tabelle vermieden wird. Änderungen und Erweiterungen der Funktionalität bleiben damit auf einige Oberklassen beschränkt (FRITSCH/ANDERS 1996, S.8)
In der praktischen Anwendung ist der systemgepflegte Objektidentifikator von Bedeutung. Dadurch entfällt die Verwaltung von Schlüsselattributen durch den Anwender, die insbesondere bei hybriden Systemen einen kritischen Punkt darstellen. Fehler in der Zuordnung zwischen Geometrie- und Sachdaten durch veränderte Schlüsselfelder können aufwendige Korrekturarbeiten erfordern. Die vom System vergebene OID ist für die gesamte Lebenszeit des Objektes gültig und kann nicht durch den Anwender unabsichtlich verändert werden (FRITSCH/ANDERS 1996, S. 7f.).
4.4.3 Vorteile in der Softwareentwicklung
Für den Bereich der Softwareentwicklung ist der Vorteil vorrangig in der Wiederverwendbarkeit und einfachen Erweiterungsmöglichkeit von bereits bestehendem Programmcode zu sehen, was durch die Konzepte der Kapselung und des Polymorphismus ermöglicht wird. Dies ist insbesondere im GIS-Bereich von Bedeutung, da Geo-Informationsysteme eine Vielzahl von verschiedenen Anwendungen unterstützen sollen (FRITSCH/ANDERS 1996, S. 8). Dazu werden sog. Software-Biliotheken wie die Microsoft Foundation Classes (MFC) oder die Visual Component Library (VCL) von Inprise verwendet, die die Funktionalität des Betriebssystem kapseln und es einem Anwendungsprogrammierer erlauben, durch eine einfache Ableitung eigene Applikationen zu erstellen, für die lediglich die spezifischen Eigenschaften zu ergänzen sind (TOTH 1997, S.1110). Beispielsweise stellt die MFC eine Klasse „CBitmap“ zur Verfügung, die Methoden zum Erstellen und Manipulieren von Rastergrafiken enthält. Eine davon abgeleitete Klasse könnte in einer GIS-Implementierung um Fähigkeiten zur Georeferenzierung oder zu Overlay-Operationen erweitert werden. Im GIS-Bereich bietet das SMALLWORLD-System die Programmiersprache MAGIK an, mit deren Hilfe man - aufbauend auf der angebotenen GIS-Funktionalität - eigene Anwendungen entwickeln kann (BILL 1996, S. 331 f.). Beispiele für objektorientierte Klassenbibliotheken, die die GIS-Grundfunktionalität kapseln und Anwendungsentwicklern als Basis für eigene Programme dienen, sind OOGDM (VOIGTMANN 1997), die Geographic Foundation Class Library (QUIAN 1998) und CARIS++ (UNIVERSAL SYSTEMS 1998).
1 Java unterstützt die Mehrfachvererbung nur indirekt indem jede Klasse mehrere sog. „Interfaces“ implementieren kann, was ähnliche Konstrukte wie bei der echten Mehrfachvererbung ermöglicht.
© 2014 Zeit in Geografischen Informationssystemen (GIS), Frank Hellwich