TU Wien:Objektorientierte Modellierung VU (Kappel)/Kapitel Klassen- und Objektdiagramm

From VoWi
Jump to navigation Jump to search

Folien

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[edit]

  • 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[edit]

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[edit]

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[edit]

  • transitiv & anti-symmetrisch
  • schwache Aggregation: Teile sind unabhängig vom Ganzen
    TU Wien-Objektorientierte Modellierung VU (Kappel)-Kapitel Klassen- und Objektdiagramm - UML schwache aggregation.png
  • starke Aggregation (auch Komposition)
    TU Wien-Objektorientierte Modellierung VU (Kappel)-Kapitel Klassen- und Objektdiagramm - UML starke aggregation.png
    • Propagierungssemantik
    • maximale Multiplizität von 1

Generalisierung[edit]

  • 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[edit]

  • primitive Datentypen
  • Aufzählungstyp
┌─────────────┐
│«enumeration»│
│    Farbe    │
├─────────────┤
│rot          │
│gelb         │
│grün         │
└─────────────┘

Sonstiges[edit]

Objektdiagramm[edit]

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[edit]

  • Pakete analog zu Namensräumen
  • Pakete können beliebig tief geschachtelt werden.
  • Import von Elementen und Paketen

Abhängigkeiten[edit]

Werden als gestrichelte Linien dargestellt.