Aufgabe 1

Theorie Icon
Assoziationen und Multiplizitäten/Kardinalitäten in UML

Wir beginnen mit der schwächsten Relation zwischen zwei Klassen der Assoziation. Es gibt eine Assoziation zwischen den Klassen A und B, wenn es eine semantische Beziehung zwischen den Klassen gibt. Üblicherweise werden Assoziationen durch Referenzen realisiert (d.h. eine der Klassen hat ein Attribut vom Typ der anderen Klasse).

Wie bei ER-Diagrammen können wir in UML auch Multiplizitäten angeben. Dies geht in Form von Intervallen m..n (oder einfach nur m für m..m, * für unbegrenzte) angegeben.

Als Spezialfälle der Assoziation gibt es die Aggregation und die Komposition. Die wir in dieser Veranstaltung aber nicht näher betrachten.

Aufgabe

Beispiel für Multiplizitäten in UML

Aufgabe Icon
Software für eine Bank.

Wir wollen nun eine Software für eine Bank modellieren. Folgende Anforderungen stellen wir:

  • Eine Bank hat mehrere Kunden und mehrere Angestellte.
  • Eine Bank führt eine Menge von Konten.
  • Konten können Giro- oder Sparkonten sein.
  • Ein Sparkonto wirft höhere Zinsen ab, darf aber nicht ins Minus absinken.
  • Die Konten können in Euro oder in Dollar geführt werden.

Folgende Operationen sollen auf den Konten ausgeführt werden: Einzahlen, Abheben, Verzinsen und Umbuchen.

Außerdem sollen alle Objekte (inklusive der Bank) ihre Darstellung ausdrucken können. Dazu hat jedes Objekt eine eigene print-Methode. Legen Sie auch eine Klasse für den Betrag an und leiten die passenden Unterklassen ab.

Aufgabe 2

Nur für SE-GY!
Theorie Icon
Geheimnisprinzip und Kapselung

Nach dem Geheimnisprinzip sind nur diejenigen Attribute einer Klasse öffentlich sichtbar, bei denen es absolut notwendig ist. Die anderen Attribute sind geheim (unbekannt) und werden nur über Zugriffsmethoden angesprochen. Je mehr Attribute geheim sind, desto einfacher wird es, die Software an weitere Anforderungen anzupassen (da nur die unbekannten = geheimen Bereiche geändert werden, die öffentliche API bleibt jedoch konstant).

Eine Eigenschaft oder Methode einer Klasse gilt als gekapselt, wenn diese nur über Zugriffsmethoden abgefragt oder geändert werden kann. Die eigentliche Eigenschaft oder Methode bleibt verborgen. In UML wird dies durch Zugriffsmodifikatoren realisiert. Zugriffsmodifikatoren legen fest, wer auf Klassen, Attribute oder Objekte zugreifen kann. Damit können z.B. einzelne Attribute vor absichtlichen oder versehentlichen Veränderungen von außen geschützt werden:

Theorie Icon
Übersicht
  • Public:
    • Öffentlich sichtbar: Attribute und Methoden
    • Unterklassen und andere Klassen können auf public-Elemente zugreifen.
    • UML-Symbol: +
  • Protected:
    • Geschützte Sichtbarkeit
    • Anderer Klassen können auf protected Attribute und Methoden nicht zugreifen.
    • Unterklassen und Superklassen können Attribute und Methoden benutzen.
    • UML-Symbol: #
  • Private:
    • Methoden können nur innerhalb der Klasse auf private Attribute und Methoden zugreifen.
    • Selbst Unterklassen können nicht auf die privaten Attribute und Methoden zugreifen.
    • UML-Symbol: -

Aufgabe

Beispiel für Zugriffsmodifikatoren

Aufgabe Icon
Umsetzung Geheminsprinzip.

Verändern Sie Ihre Lösung aus Aufgabe 1 so, dass sie alle Attribute und Methoden darauf überprüfen, welche Zugriffsmodifikatoren für diese gelten sollten. Beachten Sie dabei das Geheimnisprinzip und modellieren sie ggf. Getter- und Settermethoden zum Zugriff auf die Attribute einer Klasse.

Aufgabe 3

Folgende Aufgabe ist aus dem Pool der Aufgaben für das Zentralabitur aus Baden-Württemberg entnommen und um die Programmieranteile gekürzt. Auf die fehlenden Stellen wird in den Folgeübungen eingegangen.

Theorie Icon
Abituraufgaben zur Objektorientierten Modellierung

Ein Taxiunternehmen unterhält einen Fuhrpark mit verschiedenen Fahrzeugen zur Personenbeförderung, u.a. mit Autos und Fahrradrikschas (kurz: Rikschas). Das Unternehmen beauftragt Sie mit der Erstellung einer Software zur Verwaltung der Fahrzeugdaten und des täglichen Fahrgeschäfts. Mit dem zu erstellenden Programm sollen eine ganze Reihe von Fahrzeugen verwaltet werden. Mit den Fahrzeugdaten werden -sofern vorhanden - auch deren Verbrauch, die gefahrenen Wegstrecken und die Einnahmen, die mit dem jeweiligen Fahrzeug erwirtschaftet werden, erfasst.

Jedes Fahrzeug wird eindeutig über sein Kennzeichen (z.B: S-AB-123) identifiziert. Bei der Neuaufnahme der Fahrzeugdaten mit der Software werden neben dem Kennzeichen auch die Anzahl der Sitzplätze, der Grundpreis und der Kilometerpreis eingegeben. Rikschas werden mit Muskelkraft angetrieben. Sie haben drei Sitzplätze, der Grundpreis beträgt 2,70 €, der Kilometerpreis 0,50 €. Autos werden mit Benzin betrieben. Sie haben je nach Typ vier bis neun Sitzplätze. Um den Benzinverbrauch der Autos kontrollieren zu können, sollen bei der Neuerfassung der Autodaten zusätzlich das Volumen des Benzintanks und der durchschnittliche Benzinverbrauch auf 100 km erfasst werden. Der Grundpreis für ein Auto beträgt einheitlich 5,80 €, der Kilometerpreis 1,60 €.

Bei allen Fahrzeugen sind die ersten drei gefahrenen Kilometer im Grundpreis enthalten. Für den Stadtverkehr hat das Taxiunternehmen Hybrid-Fahrzeuge (Autos mit einem gewöhnlichen Verbrennungsmotor, der von einem Elektromotor unterstützt wird) angeschafft. Der Strom für den Elektromotor wird einer Batterie entnommen, die mit Hilfe des Verbrennungsmotors geladen wird. Bei Betriebsbeginn übernehmen die Fahrer die Fahrzeuge, Autos sind dann vollgetankt. Nach jeder Fahrt wird in Abhängigkeit von der zurückgelegten Wegstrecke für den Kunden der Fahrpreis berechnet. Für jedes Fahrzeug werden dabei der Kilometerstand, die Tagesfahrstrecke, die Tageseinnahmen und bei Autos der Tankinhalt aktualisiert.

Aufgabe Icon
Aufgabenstellung
  1. Assoziationen

    Stellen Sie die Beziehungen zwischen den Klassen FuhrparkVerwaltung, Fahrzeug, Rikscha, Auto und HybridFahrzeug in einem Klassendiagramm dar. Die Klassen sollen nur den Klassennamen, keine Attribute oder Methoden enthalten.

  2. UML-Klassendiagramm

    Entwerfen Sie ein UML-Klassendiagramm für die Klasse Fahrzeug. Die Attribute, Methoden sowie Parameterlisten und eventuelle Rückgabewerte sollen mit angegeben werden.

Aufgabe Icon
Geheimnisprinzip und Datenkapselung
Diese Aufgabe nur für SE-GY!

Modifiziere die Lösung aus der vorherigen Aufgabe unter Berücksichtigung des Geheimnisprinzips. Die Sichtbarkeit von allen Attributen und Methoden, sowie Parameterlisten und eventuelle Rückgabewerte sollen mit angegeben werden.