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

Aus VoWi
Zur Navigation springen Zur Suche springen

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[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.