§2 Objektorientierte Modellierung: Klassen und Vererbung

«


« Der Softwarezyklus

Software wird im allgemeinen nach folgendem Verfahren entwickelt:



Anmerkungen:

« Das Objektmodell

In der objektorientierten Modellierung wird die Welt in "Objekten" modelliert, die durch "Nachrichten" miteinander kommunizieren:



« Beispiele

« Klassen

Bestimmte Objekte haben viele Eigenschaften gemeinsam, z.B. haben Busse, Züge und Schiffe in einer Transportsimulation eine Geschwindigkeit, eine Transportkapazität, einen Fahrplan, ...

Objekte, die exakt die gleiche Zahl an Eigenschaften haben (z.B. die Busse in der Transportsimulation) fasst man zu einer Klasse zusammen, denn jeder Bus der Simulation besitzt folgende Eigenschaften:




« Beispiele





« Generalisierung

Ein wichtiger Bestandteil in der Modellierung ist die Betrachtung eines Problems aus der Metaebene.
Im letzten Teil betrachteten wir die Frage: "Wie kann man mehrere Objekte zusammenfassen?". Eine Ebene höher stellt sich die Frage: "Wie kann man mehrere Klassen zusammenfassen?".
Auch hierfür gibt es ein Modellierungsmittel. Im Beispiel Planetensystem fällt das Objekt "Sonne" nicht unter die Planeten, denn sie "umkreist" die Sonne nicht, hat keine Geschwindigkeit (in diesem Modell) und ist selbstleuchtend. Es handelt sich um eine andere Objektklasse, die allerdings viel mit der Klasse "Planet" gemeinsam hat. Deshalb lässt sich die UML-Modellierung des Planetensystems folgendermaßen erweitern:



Unter Generalisierung versteht man das Zusammenfassen ähnlicher Klassen zu einer Superklasse, indem gemeinsame Eigenschaften in die Superklasse ausgelagert werden.
Unter Ableitung versteht man das Erzeugen einer Unterklasse aus einer Superklasse mit Vererbung (Weiterverwendung) der in der Superklasse definierten Eigenschaften.

Tipp: Bei der Überlegung, welches die Superklasse ist, hilft häufig die Verwendung der Worte "ist ein". Im obigen Beispiel: Sowohl ein Planet, als auch ein Stern ist ein Himmelskörper.

« Aufgaben

  1. Betrachten Sie noch einmal das Modell Schule: Erstellen Sie ein UML-Schema für die Klasse "Lehrer" und die Klasse "Schüler", stellen sie jeweils auch eine Instanz in ihrem Diagram dar und erweitern sie es um die Superklasse "Person".
  2. Gesucht ist eine Fahrzeugmodellierung. Entwickeln Sie ein UML-Diagramm für folgende Fahrzeugtypen: PKW, LKW, Fahrrad, Motorroller, Motorrad, Dreirad, Omnibus.
  3. Wie schaut eine Klassendefinition für die Räume im Schulhaus aus?
  4. Entwickeln Sie ein UML-Diagramm zur Transportsimulation.
  5. Gegeben sind folgende geometrischen Figuren: Dreieck, Viereck, Quadrat, Kreis und Rechteck. Versuchen(!) Sie eine UML-Modellierung in verschiedenen Klassen mit Generalisierung.
  6. Setzen Sie eines der oben genannten UML-Modelle in Java um.