TU Wien:Objektorientierte Modellierung VU (Kappel)/Kapitel Klassen- und Objektdiagramm
Zur Navigation springen
Zur Suche springen
Wikifizierung (in Bearbeitung) von Zusammenfassung Klassendiagramm.pdf
Ein Klassendiagramm beschreibt den strukturellen Aspekt eines Systems auf Typebene in Form von Klassen, Interfaces und Beziehungen.
Klassen[Bearbeiten | Quelltext bearbeiten]
- Werden als Vierecke dargestellt.
- Bestehen üblicherweise aus 3 Abschnitten: Name, Attribute und Operationen. Eine Klasse kann allerdings noch mehr Abschnitte haben (z.B. weitere Einschränkungen).
- Achtung: Manche Tools können Abschnitte ausblenden.
Attribute und Operationen[Bearbeiten | Quelltext bearbeiten]
Statische Attribute / Operationen werden unterstrichen.
- Sichtbarkeitsoperatoren
- + public
- − private
- # protected
- ~ package
- Attribute
Syntax: Sichtbarkeitsoperator Name : Datentyp/Klasse
- Namen die mit einem Schrägstrich (/) beginnen kennzeichnen berechnete Attribute
- {optional} kennzeichnet, dass null-Werte erlaubt sind
- [n..m] kennzeichnet Multiplizität
- Operationen
Syntax: Sichtbarkeitsoperator Name(Inputparameter) : Rückgabewert
- Inputparameter können entweder mit Datentyp, Variablenname oder beidem (Variablenname : Datentyp) angegeben werden.
Assoziationen[Bearbeiten | Quelltext bearbeiten]
Sind Beziehungen zwischen Klassen; werden als Linien dargestellt.
- Name
- Leserichtung: ◄ bzw. ► neben Namen
- Navigationsrichtung
Standard <──x x──> <──> (Keine Pfeilspitze & kein Kreuz = undefined) Best practice <─── ───> ──── - Multiplizität (auch Kardinalität)
- Default = 1
- Rollen
- XOR: ----{XOR}----
- Assoziationsklassen
- n-äre Assoziationen (z.B. ternäre Assoziation)
- Ordnung und Eindeutigkeit
Aggregation[Bearbeiten | Quelltext bearbeiten]
- transitiv & anti-symmetrisch
- schwache Aggregation: Teile sind unabhängig vom Ganzen
- starke Aggregation (auch Komposition)
- Propagierungssemantik
- maximale Multiplizität von 1
Generalisierung[Bearbeiten | Quelltext bearbeiten]
- Abstrakte Klassen (nicht instanzierbar) werden mit {abstract} oder kursiv gekennzeichnet (bei Prüfungen soll man die Klammerschreibweise verwenden).
- Mehrfachvererbung (Anm: nicht von Java unterstützt)
- Redefinition
Datentypen[Bearbeiten | Quelltext bearbeiten]
- primitive Datentypen
- Aufzählungstyp
┌─────────────┐ │«enumeration»│ │ Farbe │ ├─────────────┤ │rot │ │gelb │ │grün │ └─────────────┘
Sonstiges[Bearbeiten | Quelltext bearbeiten]
Objektdiagramm[Bearbeiten | Quelltext bearbeiten]
Beschreibt strukturellen Aspekte eines Systems auf Instanzebene. Enthält nur Objekte und Links, keine Klassen. Momentaufnahme des Systems.
Objekte werden als Vierecke ohne Abschnitte dargestellt:
┌─────────────┐ │Name : Klasse│ └─────────────┘
Paketdiagramm[Bearbeiten | Quelltext bearbeiten]
- Pakete analog zu Namensräumen
- Pakete können beliebig tief geschachtelt werden.
- Import von Elementen und Paketen
Abhängigkeiten[Bearbeiten | Quelltext bearbeiten]
Werden als gestrichelte Linien dargestellt.