Current Page: | Greybox » Authoring » Course ID: medieninformatik » Modules » Module ID: m06 » Learning Units » Unit ID: 4_1_03 |
---|---|
Last Modified: | Tuesday, 2015-05-05 - 08:09:02 |
Tools: | Validate — Preview XML Preview HTML Preview PDF |
Alternative: | Printable HTML |
Title: | Objektorientierte Datenmodellierung | ||
---|---|---|---|
Abstract: | In dieser LU werden die grundlegenden Konzepte der objektorientierten Datenmodellierung erläutert. Es wird auf Objekte, deren Attribute, Methoden und Objektidentität, wie auch auf den Nachrichtenaustausch zwischen den Objekten, eingegangen. Neben der Definition des Klassenbegriffs, wird auch auf Beziehungskonzepte und Verebung eingegangen. | ||
Status: | Version: | 7.0 | |
History: |
Acronyme done. kein Review vorhanden. Rechtschreibung gecheckt (LOD1+LOD2) Unbekannte Character ausgebessert. Sourcecode repariert. |
Author 1: | Bernhard Tatzmann | E-Mail: | bernhard@isys.uni-klu.ac.at |
---|---|---|---|
Author 2: | (empty) | E-Mail: | (empty) |
Author 3: | (empty) | E-Mail: | (empty) |
Author 4: | (empty) | E-Mail: | (empty) |
Author 5: | (empty) | E-Mail: | (empty) |
Organization: | Universität Klagenfurt - Institut für Informatik-Systeme |
Einleitung1Auto
2AutoIn dieser Lerneinheit werden die Grundlagen der objektorientierten Datenmodellierung erläutert. Eine Einführung in die objektorientierte multimediale Datenmodellierung findet sich in Modul 3 (Link auf LU 39 - noch nicht vorhanden). Das Objekt1Auto
Beispielobjekte: Auto PCAuto PDA_PhoneDie Objektidentität
2AutoDas zentrale Konzept in der objektorientierten Datenmodellierung ist das Objekt. Es repräsentiert eine Einheit, mit datenspezifischen Eigenschaften (Attributen) und funktionsspezifischem Verhalten (Methoden) MW00. Bei dieser Einheit kann es sich sowohl um einen realen Gegenstand als auch um ein gedankliches Konstrukt handeln. Als Beispiel für ein Objekt sollen hier zwei bestimmte Teleskope "Newton-Reflektor" und "Schmitt-Casegrain" modelliert werden. Die untenstehende Abbildung zeigt die Objekte mit ihren Methoden und Attributen. Die Attribute sind i.A. selbst Objekte (in manchen Fällen einfache Werte) und beschreiben den internen Zustand eines Objekts. Ein Zugriff auf die Attribute ist nur mit Hilfe der Methoden möglich. Diese Tatsache ist ein integraler Bestandteil der objektorientierten Modellierung und wird als Kapselung bezeichnet. Im gewählten Beispiel handelt es sich bei den Attributen um die Seriennummer und den Preis der Teleskope. Der Zugriff auf diese Attribute kann mit Hilfe der Methoden änderePreis , lesePreis , sowie leseSeriennummer erfolgen. Auto PCAuto PDA_PhoneAnmerkungEine Darstellung des Objekts als UML Objektdiagramm wäre ebenso denkbar, würde jedoch die Methoden des Objekts nicht berücksichtigen. Die gewählte Art der Darstellung wird auch in MW00 verwendet und symbolisiert die Kapselung der Attribute nach außen hin. Die ObjektidentitätUm Objekte eindeutig identifizieren zu können, wird jedem Objekt bei seiner Erzeugung vom System eine eindeutige Identität (ID480, identifier) zugewiesen, die es von den anderen Objekten unterscheidet. Diese ID480 kann während der gesamten Laufzeit nicht geändert werden. Sie kann nur gelöscht werden, wenn das Objekt gelöscht wird und wird nie wieder vergeben. Außerdem dient sie zur Feststellung, ob es sich bei zwei Objekten um dasselbe oder zwei gleiche Objekte handelt. Die Klasse1Auto
Auto PCAuto PDA_Phone2AutoBei einem Objekt handelt es sich immer um eine konkrete Ausprägung eines Modells, eine Instanz. Fasst man mehrere konkrete Objekte von der gleichen Art zusammen und abstrahiert von ihren konkreten Attributausprägungen, so ergibt sich eine Klasse. Alle Objekte einer Klasse besitzen dieselben Beschreibungsmerkmale, wie Attribute und Methoden. Im obigen Beispiel wäre die entsprechende Klasse, die die beiden Objekte "Newton-Reflektor" und "Schmitt-Casegrain" abstrahiert, Teleskop . Die untenstehende Abbildung zeigt die Definition der Klasse Teleskop in UML (siehe Einführung in die Unified Modeling Language ). Die Definition aller Attribute und Methoden werden beim Instanzieren eines Objekts dieser Klasse automatisch von allen Objekten übernommen. Dies hat den Vorteil, dass sie nur einmal definiert werden müssen. Auto PCAuto PDA_PhoneAnmerkungVergleicht man Klassen z.B. mit den Gegendstandsmengen (siehe Konzeptueller Entwurf in der klassischen Datenmodellierung - Entity-Relationship Modell) im ER-Modell, so ergibt sich bei den Klassen der Vorteil, dass hier neben gemeinsamen Attributen, die alle Objekte einer Menge aufweisen, auch gemeinsame Methoden vorliegen MW00. Nachrichtenaustausch1AutoKommunikation zwischen einzelnen Objekten erfolgt durch Nachrichten (engl.: message passing):
Nachrichten-Interface:
Nachrichtenaustausch-Abfolge:
Nachrichtenaustausch einzige Möglichkeit um:
2AutoNeben der strukturellen Klassendefinition muss auch die Kommunikation zwischen einzelnen Objekten definiert werden. Diese Kommunikation erfolgt durch Nachrichten (Botschaften) und wird im Englischen message passing genannt. Dabei richtet ein Objekt, der Sender , eine Nachricht an ein anderes Objekt, den Empfänger . Die möglichen Nachrichten werden durch das Nachrichten-Interface, welches die Schnittstelle zwischen einem Objekt und seiner Umwelt bildet, definiert. Der Nachrichtenaustausch erfolgt nach folgendem Schema DT93:
Der Nachrichtenaustausch stellt die einzige Möglichkeit dar, mit einem Objekt zu kommunizieren, seine Daten zu ändern, Information abzufragen oder eine seiner Methoden auszuführen. Beziehungskonzepte1Assoziation
Auto PCAuto PDA_PhoneAggregation und KompositionSpezialisierungen der Assoziation:
Auto PCAuto PDA_Phone2AssoziationDie Assoziation entspricht prinzipiell der Beziehung im Entity-Relationship Modell (siehe Konzeptueller Entwurf in der klassischen Datenmodellierung - Entity-Relationship Modell). Alle Klassen, die miteinander in Verbindung stehen, können durch eine Assoziation verbunden werden. Das folgende Beispiel zeigt die Assoziation verwendet zwischen den beiden Klassen Astronom und Teleskop im UML472 Klassendiagramm. Auto PCAuto PDA_PhoneAutoDie Konnektivität wird wie an die beiden Ränder der Assoziation geschrieben. Um Aussagen darüber zu machen, in welche Richtung die Assoziation gelesen wird, kann ein schwarzes gleichseitiges Dreieck als Richtungsangabe neben den Namen gestellt werden. Durch Verwendung von Pfeilspitzen an den Enden der Assoziationslinie kann die Navigierbarkeit der Assoziation definiert werden. Dies bedeutet, dass angegeben wird, von welcher Klasse eine Referenz auf die andere Klasse existiert, die zum Zugriff auf das entsprechende Objekt verwendet werden kann. Aggregation und KompositionSowohl Aggregation als auch Komposition stellen Spezialisierungen des Konzepts der Assoziation dar. Die Aggregation wurde bereits im ER-Modell eingeführt und existiert auch im objektorientierten Modell. Sie dient der Modellierung von Strukturmodellen und deutet an, dass ein Objekt aus mehreren Teilobjekten zusammengesetzt ist. Die Komposition stellt eine verschärfte Form der Aggregation dar HK03. Während bei der Aggregation die Einzelteile zu verschiedenen Objekten gehören dürfen, dürfen die Subobjekte bei der Komposition nur Teil eines Ganzen sein. Außerdem kann ein Subobjekt nur so lange existieren wie sein Ganzes. Die folgende Abbildung zeigt das Kompositionsdiagramm eines Spiegelteleskops. Auto PCAuto PDA_PhoneVererbung1Generalisierung
Auto PCAuto PDA_PhoneEinfache VererbungEinfache Vererbung: Jede einzelne Klasse beerbt nur jeweils eine einzige Klasse direkt. Beispiel:
Auto PCAuto PDA_PhoneÜberschreibenÜberschreiben (engl.: overriding):
Beispiel:
Überladen: Mehrere Methoden mit demselben Methodennamen aber mit unterschiedlichen Parameterlisten definiert. Auto PCAuto PDA_PhoneMehrfachvererbungMehrfachvererbung:
Beispiel:
Auto PCAuto PDA_Phone2GeneralisierungIm Prinzip entsprechen Generalisierung und Spezialisierung (das duale Gegenstück der Generalisierung) im objektorientierten Modell jenen im ER-Modell. (siehe Konzeptueller Entwurf in der klassischen Datenmodellierung - Entity-Relationship Modell). Während die Generalisierung eine Verallgemeinerung einer Klasse beschreibt ( Fahrzeug verallgemeinert MotorisiertesFahrzeug), definiert die Spezialisierung eine Verfeinerung einer Klasse (Motorrad verfeinert MotorisiertesFahrzeug). Die folgende Abbildung zeigt eine Generalisierungshierarchie aus dem Bereich der Fahrzeuge. Auto PCAuto PDA_PhoneAutoIm Gegensatz zum ER471-Modell bezieht sich die Generalisierung im objektorientierten Modell neben den Attributen ebenso auf die Methoden. Eine verallgemeinerte Klasse besitzt somit neben den gemeinsamen Attributen aller Subklassen auch alle gemeinsamen Methoden. Eine spezialisierte Subklasse muss entsprechend über alle Attribute und Methoden der Basisklasse verfügen - man spricht von Vererbung dieser Merkmale. Einfache VererbungDie Tatsache, dass Attribute und Methoden einer Basisklasse auch bei der Subklasse verfügbar sind, wird Vererbung genannt. Die folgende Abbildung zeigt eine Vererbungskette aus dem obigen Beispiel. Auto PCAuto PDA_PhoneAutoSoll z.B. bei einem Objekt LanciaY vom Typ PKW das Attribut höchstgeschwindigkeit geändert werden, so wird zuerst in der Klasse PKW nach einer passenden Methode gesucht. Wird dort keine entsprechende Definition gefunden, so wird die nächst höhere Klasse in der Vererbungshierarchie durchsucht. Die dort gefundene Methode wird schließlich verwendet, um das Attribut höchstgeschwindigkeit zu ändern. Soll die Anzahl der Räder ausgelesen werden, so werden die Klassen entsprechend bis zur obersten Klasse Fahrzeug durchsucht. Die Klasse PKW erbt also durch die gegebene Vererbungshierarchie alle Methoden und Attribute der beiden Klassen MotorisiertesFahrzeug und Fahrzeug . Diese Art der Vererbung nennt man Einfache Vererbung, da jede einzelne Klasse nur jeweils eine einzige Klasse direkt beerbt. ÜberschreibenDie folgende Abbildung zeigt dieselbe Vererbungshierarchie wie oben mit dem Unterschied, dass nun auch die Klasse PKW eine Definition der Methode ändereMotorstärke aufweist. Auto PCAuto PDA_PhoneAutoSoll nun die Motorstärke geändert werden, so wird nicht die Methode ändereMotorstärke aus der Klasse MotorisiertesFahrzeug sondern jene in der Klasse PKW verwendet (könnte z.B. nötig sein da die Änderung der Motorstärke bei einem PKW spezielle Auswirkungen auf die Berechnung der Steuer hat). Das Prinzip, eine Methode in einer Subklasse nochmals zu definieren, wird Überschreiben (engl.: overriding) genannt. Es kann ebenso dazu dienen die Methode in der Subklasse, durch Kenntnis der speziellen Eigenheiten der Klasse, noch effizienter zu gestalten. Nicht zu verwechseln ist das Prinzip des Überschreibens mit dem des Überladens (engl.: overloading). Von Überladen spricht man, wenn mehrere Methoden mit demselben Methodennamen aber mit unterschiedlichen Parameterlisten definiert werden MW00. Dies wäre zum Beispiel der Fall wenn zur obigen Definition der Methode ändereMotorstärke(kW:int) noch eine Weitere mit anderen Parameter hinzukäme: ändereMotorstärke(kW:int, zylinderAnzahl:int). MehrfachvererbungNeben der einfachen Vererbung existiert auch noch die Mehrfachvererbung, die auftritt, wenn eine Klasse mehr als eine Basisklasse besitzt. So könnte die Klasse PKW außer von der Klasse MehrspurigesFahrzeug ebenso von der Klasse MotorisiertesFahrzeug abgeleitet sein. Die untenstehende Abbildung zeigt die entsprechende Vererbungshierarchie. Auto PCAuto PDA_PhoneAutoDie Subklasse erbt die Attribute und Methoden aller Basisklassen. Treten die Attribute und Methoden, wie im obigen Beispiel, nicht mehrfach auf, so ist es eindeutig, von welcher Basisklasse geerbt wird. Soll z.B. die Methode ändereMotorstärke aufgerufen werden, dann wird die Methodendefinition in der Klasse MotorisiertesFahrzeug verwendet und zum Ändern des Radstands kommt die entsprechende Methode in der Klasse MehrspurigesFahrzeug zur Anwendung. Für ein Vorgehen für den Fall, dass das Attribut oder die Methode in beiden Basisklassen vorkommt, muss eine Basisklasse explizit ausgewählt werden (siehe auch DT93). Bibliographie2AutoBob97 DT93 JRH+03 HK03 MW00 |
(empty) |