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: ValidatePreview XML Preview HTML Preview PDF
Alternative: Printable HTML

 

Learning Unit ID: 4_1_03
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
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

Content

Einleitung

1

Auto

  • Es werden Grundlagen der objektorientierten Datenmodellierung erläutert
  • Für eine Einführung in die objektorientierte multimediale Datenmodellierung siehe Modul 3 (Link auf LU 39 - noch nicht vorhanden)

2

Auto

In 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 Objekt

1

Auto

  • Objekt ist das zentrale Konzept in der objektorientierten Datenmodellierung
  • Es repräsentiert eine Einheit:
    • realer Gegenstand
    • gedankliches Konstrukt
  • Ein Objekt enthält Attribute (datenspezifische Eigenschaften) und Methoden (funktionsspezifisches Verhalten)
    • Attribute sind i.A. selbst Objekte und beschreiben den internen Zustand eines Objekts
    • Zugriff auf die Attribute ist nur mit Hilfe der Methoden möglich (Kapselung)

Beispielobjekte:
"Newton-Reflektor" und "Schmitt-Casegrain" mit ihren Methoden (änderePreis , lesePreis , sowie leseSeriennummer) und Attributen (Seriennummer und Preis)

Auto PC

Darstellung zweier Beispielobjekte mit Attributen und Methoden

Auto PDA_Phone

Darstellung zweier Beispielobjekte mit Attributen und Methoden

Die Objektidentität

  • Identität (ID480, identifier) um jedes Objekte eindeutig identifizieren und von anderen Objekten unterscheiden zu können
  • Bei Erzeugung vom System zugewiesen
  • Kann während der gesamten Laufzeit nicht geändert werden
  • Wird erst gelöscht, wenn das Objekt gelöscht wird

2

Auto

Das 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 PC

Darstellung zweier Beispielobjekte mit Attributen und Methoden

Auto PDA_Phone

Darstellung zweier Beispielobjekte mit Attributen und Methoden

Anmerkung

Eine 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ät

Um 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 Klasse

1

Auto

  • Fasst man mehrere konkreter Objekte von der gleichen Art zusammen und abstrahiert von ihren konkreten Attributausprägungen, ergibt sich eine Klasse
  • Alle Objekte einer Klasse besitzen dieselben Beschreibungsmerkmale (Attribute und Methoden)
  • Definitionen aller Attribute und Methoden werden beim Instanzieren vom Objekt übernommen

Auto PC

Klasse Teleskop

Auto PDA_Phone

Klasse Teleskop

2

Auto

Bei 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 PC

Klasse Teleskop

Auto PDA_Phone

Klasse Teleskop

Anmerkung

Vergleicht 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.

Nachrichtenaustausch

1

Auto

Kommunikation zwischen einzelnen Objekten erfolgt durch Nachrichten (engl.: message passing):

  • Sender -> Empfänger

Nachrichten-Interface:

  • Schnittstelle zwischen einem Objekt und seiner Umwelt

Nachrichtenaustausch-Abfolge:

  1. Sender spezifiziert Empfänger, Nachrichtennamen sowie Argumente oder Parameter
  2. Empfänger überprüft anhand der ihm bekannten Nachrichten, ob gesendete Nachricht verstanden wird
    • Nachricht wird verstanden: Entsprechende Methode ausgeführt
    • Nachricht wird nicht verstanden: Delegation an die Superklasse bzw. Fehlerausgabe

Nachrichtenaustausch einzige Möglichkeit um:

  • mit einem Objekt zu kommunizieren
  • seine Daten zu ändern
  • Information abzufragen
  • seine Methoden auszuführen

2

Auto

Neben 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:

  1. Der Sender spezifiziert einen Empfänger, den Nachrichtennamen sowie Argumente oder Parameter.
  2. Der spezifizierte Empfänger überprüft anhand der ihm bekannten Nachrichten, ob die gesendete Nachricht verstanden wird.
  3. Wird die Nachricht verstanden, so reagiert der Empfänger, indem er die entsprechende Methode ausführt.
  4. Wird die Nachricht nicht verstanden erfolgt eine Delegation an die Superklasse, falls eine solche existiert. Ansonsten wird ein Fehler ausgegeben.

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.

Beziehungskonzepte

1

Assoziation

  • Assoziation entspricht prinzipiell der Beziehung im ER-Modell
  • Klassen, die miteinander in Verbindung stehen, können durch eine Assoziation verbunden werden
  • Beispiel:
    • Astronom verwendet (Assoziation) Teleskop

Auto PC

Assoziation mit Richtungsangabe

Auto PDA_Phone

Assoziation mit Richtungsangabe

Aggregation und Komposition

Spezialisierungen der Assoziation:

Aggregation:
Dient der Modellierung von Strukturmodellen und deutet an, dass ein Objekt aus mehreren Teilobjekten zusammengesetzt ist.
Komposition:
Verschärfte Form der Aggregation. Die Subobjekte dürfen nur Teil eines Ganzen sein und nur so lange existieren wie ihr Ganzes.

Auto PC

Kompositionsdiagramm eines Spiegelteleskops

Auto PDA_Phone

Kompositionsdiagramm eines Spiegelteleskops

2

Assoziation

Die 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 PC

Assoziation mit Richtungsangabe

Auto PDA_Phone

Assoziation mit Richtungsangabe

Auto

Die 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 Komposition

Sowohl 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 PC

Kompositionsdiagramm eines Spiegelteleskops

Auto PDA_Phone

Kompositionsdiagramm eines Spiegelteleskops

Vererbung

1

Generalisierung

Generalisierung:
Verallgemeinerung einer Klasse beschreibt (Fahrzeug verallgemeinert MotorisiertesFahrzeug)
Spezialisierung:
Verfeinerung einer Klasse (Motorrad verfeinert MotorisiertesFahrzeug)
Vererbung:
Subklasse verfügt über alle Attribute und Methoden der Basisklasse (verallgemeinerte Klasse besitzt alle gemeinsamen Attribute und Methoden der Subklassen)

Auto PC

Generalisierungs- bzw. Spezialisierungshierarchie Fahrzeuge

Auto PDA_Phone

Generalisierungs- bzw. Spezialisierungshierarchie Fahrzeuge

Einfache Vererbung

Einfache Vererbung: Jede einzelne Klasse beerbt nur jeweils eine einzige Klasse direkt.

Beispiel:

  • Die Klasse PKW (Vererbungshierarchie in der folgenden Abbildung) erbt alle Methoden und Attribute der Klasse MotorisiertesFahrzeug die wiederum die Klasse Fahrzeug beerbt.
    • Soll bei einem Objekt LanciaY vom Typ PKW das Attribut höchstgeschwindigkeit geändert werden, wird:
      • zuerst in der Klasse PKW nach einer passenden Methode
      • wird dort keine entsprechende Definition gefunden, wird die nächst höhere Klasse durchsucht
      • Die dort gefundene Methode wird schließlich verwendet, um das Attribut höchstgeschwindigkeit zu ändern

Auto PC

Einfache Vererbung

Auto PDA_Phone

Einfache Vererbung

Überschreiben

Überschreiben (engl.: overriding):

  • Nochmalige Definition einer Methode in einer Subklasse genannt.
  • Kann dazu dienen die Methode in der Subklasse, durch Kenntnis der speziellen Eigenheiten der Klasse, noch effizienter zu gestalten.

Beispiel:

  • Soll im unten abgebildeten Beispiel die Motorstärke geändert werden, so wird nicht die Methode ändereMotorstärke aus der Klasse MotorisiertesFahrzeug sondern jene in der Klasse PKW verwendet.

Überladen: Mehrere Methoden mit demselben Methodennamen aber mit unterschiedlichen Parameterlisten definiert.

Auto PC

Überschreiben von Methoden

Auto PDA_Phone

Überschreiben von Methoden

Mehrfachvererbung

Mehrfachvererbung:

  • Tritt auf, wenn eine Klasse mehr als eine Basisklasse besitzt.
  • Subklasse erbt die Attribute und Methoden aller Basisklassen.

Beispiel:

  • Klasse PKW außer von der Klasse MehrspurigesFahrzeug ebenso von der Klasse MotorisiertesFahrzeug abgeleitet.

Auto PC

Mehrfachvererbung

Auto PDA_Phone

Mehrfachvererbung

2

Generalisierung

Im 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 PC

Generalisierungs- bzw. Spezialisierungshierarchie Fahrzeuge

Auto PDA_Phone

Generalisierungs- bzw. Spezialisierungshierarchie Fahrzeuge

Auto

Im 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 Vererbung

Die 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 PC

Einfache Vererbung

Auto PDA_Phone

Einfache Vererbung

Auto

Soll 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.

Überschreiben

Die folgende Abbildung zeigt dieselbe Vererbungshierarchie wie oben mit dem Unterschied, dass nun auch die Klasse PKW eine Definition der Methode ändereMotorstärke aufweist.

Auto PC

Überschreiben von Methoden

Auto PDA_Phone

Überschreiben von Methoden

Auto

Soll 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).

Mehrfachvererbung

Neben 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 PC

Mehrfachvererbung

Auto PDA_Phone

Mehrfachvererbung

Auto

Die 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).

Bibliographie

2

Auto

Bob97

DT93

JRH+03

HK03

MW00


Notes
(empty)