Beispiel: Tic-Tac-Toe
- Steine:
- Umsetzung ohne Steine ist möglich in der Umsetzung aber missverständlich im Design. Beim Schachspiel z.B. brauch man eigene Stein-Objekte mit ihren eigenen Funktionen.
- Brett:
- Besteht aus seinen Feldern, die mittels x,y-Koordinaten identifiziert werden
- Spieler
- Spieler darf keine eigene Farbe / Symbol als Attribut haben, da er sonst keine zwei Spiele gleichzeitig ( andere Spieltische ) spielen könnte. D.h. eine Verbindung zwischen Spieler und Stein muss erzeugt werden ( Farbe des Steins → Spieler )
- Spieler-Spiel
- Zwischen Spieler und Spiel enthält eine Assoziationsklasse ein Attribut mit der Information: „Wer hat welchen Stein in welchem Spiel?“
Assoziationsklassen
- Kann es nur dort geben, wo es auch Assoziationen gibt
- Dient dazu um besondere individuelle Informationen zu speichern, die in keine der 2 verbundenen Klassen gehört, aber nicht irrelevant sind
Constraints
- zu dt. „Einschränkung“
- Auch für Assoziationen möglich
- Beispiel: Polygon
- Vier Punkte, die eine definierte Reihenfolge haben.
- Ohne die Reihenfolge lässt sich das Polygon beliebig darstellen.
- Ein Constraint erlaubt es einheitliche Objekte zu erstellen.
- Beispiel: Vergütung
- Je nach Typ wird durch den Constraint dem Vergütungs-Berechtigten eine entsprechende Vergütung zukommen.
- Professor bekommt Professoren-Vergütung
- Tutor bekommt Tutoren-Vergütung
Höherwertige Assoziationen
- Oft sind vermeintliche 3-er Beziehungen in Wahrheit drei 2-er Beziehungen!
- 3-er und höherwertige Assoziationen sollten, falls möglich, vermieden werden !
- Oft gibt es Alternativen zur 3-er bzw. höherwertigen Assoziation durch die Einführung einer Klasse statt 3er-Beziehung
- Bsp.:
- Fußballspieler – Mannschaft – Saison
- Fußballspieler R spielt in Saison X bei Mannschaft A
- Fußballspieler R spielt in Saison X+1 bei Mannschaft B
Zusatzfragen
- Sie sitzen in einer Vorlesung. Wo ist die Beziehung zu Ihrem Professor?
- Was verändert sich, wenn 2 Professoren eine Masterarbeit betreuen?
- Eine Zwischenklasse anstelle der Assoziationsklasse muss eingeführt werden
[Student]1 ↔ 0..1 [MA] 0..* ↔ 0..2 [Professor]
- Was verändert sich, wenn wir darstellen wollen, dass Lehrbeauftragte zu mehreren Fachbereichen gehören können, Professoren aber nur zu einem?
- Einführung einer Klasse Lehrbeauftragter (LB)
- Die Assoziation Fachbereich ↔ Dozent muss aufgelöst werden
- Neue Assoziationen: Fachbereich ↔ Professor & Fachbereich ↔ LB
- Dozent vererbt seine Fähigkeit zu unterrichten an LB und Professor
- Dozent wird um ein Attribut Fachbereich ergänzt
- In Lehrveranstaltungen werden Werte von Attributen redundant gespeichert (In der OOAD-LV von Herrn Weber, als auch in der OOAD-LV von Herrn Hahn stehen Titel und ECTS). Wie könnte man das vermeiden? stehen Titel und ECTS). Wie könnte man das vermeiden?
- Einführung einer Klasse Modulhandbuch und Ausgliedern der Attribute