Next: Sequenzdiagramm Up: Die UML Referenz Previous: Aktivitätsdiagramm

#
Klassendiagramm

class diagram

Syntax der Klassendiagramme 1

Kla:1
  Klasse
  Abbildung: A.6
  Engl.: class
  Regeln:
  - Eine Klasse wird durch Fächer näher beschrieben. Vordefinierte Fächer gibt es für:
    - Name
    - Attribute
    - Operationen
  - Eine Klasse hat einen innerhalb des umfassenden Paketes eindeutigen Namen.
  - Vor den eigentlichen Klassennamen werden die Namen der umfassenden Pakete gestellt. Syntax:
    Klassenname ::= [ Paketname ::] Klassenname
  - Der Klassenname sollte mit einem Großbuchstaben beginnen.
  - Der Klassenname einer abstrakte Klasse wird kursiv gedruckt, zusätzlich kann die Klasse mit der Bedingung `{abstract}` versehen werden.
  - Stereotypen charakterisieren unter Umständen die Klasse. Es gibt folgende vordefinierte Stereotypen:
    - interface Schnittstelle für einen Teilaspekt
    - implementationClass festgelegte Struktur im Sinne einer Programmiersprache
    - metaclass Exemplare sind Klassen
    - type beschreibt Zustand und Verhalten ohne Implementierung.
    - utility Sammlung von eigenständigen Attributen und Operationen
  - In einer Eigenschaftsliste können weitere Eigenschaften z. B. das Persistenzverhalten der Klasse angegeben werden.

  siehe auch: Attribut (2), Operation (3), Stereotyp (All:4), Eigenschaftsliste (All:5)
  Andere Diagramme: Kompositionsdiagramm (Kps:1), Paketdiagramm (Pak:1)
  Beschreibung: Seite 44

Kla:2
  Attribut
  Abbildung: A.6
  Engl.: attribute
  Regeln:
  - Jedes Attribut hat in der Klasse einen eindeutigen Namen.
  - Ist die verwendete Sprache Englisch, so sollte der Attributname mit einem Kleinbuchstaben beginnen.
  - Ein Klassenattribut wird unterstrichen dargestellt.
  - Syntax:
    Attribut ::= [ Sichtbarkeit ] Attrname : Typ [ Multiplizität [ordered]]
    [ = Defaultwert] [ { Eigenschaften } ]
  siehe auch: Klasse (1), Operation (3), Multiplizität (10)
  Beschreibung: Seite 45

Kla:3
  Operation
  Abbildung: A.6
  Engl.: operation
  Regeln:
  - Jede Operation muss in Kombination mit ihren Typen der Parameterliste und dem Typ des Rückgabewertes in der Klasse eindeutig sein.
  - Eine Klassenoperation wird unterstrichen dargestellt.
  - Eine abstrakte Operation wird kursiv dargestellt oder mit der Bedingung `{abstract}` versehen.
  - Syntax:
    Operation ::= [ Sichtbarkeit ] Operationsname ( [ Parameterliste ] )
    [ : Rückgabetyp ] [ { Eigenschaften } ]
    Parameterliste ::= Parameter [ , Parameterliste ]
    Parameter ::= [ in , inout , out ] Name : Typ [ = Defaultwert ]

    Der Rückgabetyp kann auch durch einen Parameter namens `return` bestimmt werden.

  - Die Eigenschaft `query` bezeichnet eine Operation ohne Zustandsveränderung.
  - Die Verwirklichung der Operation durch eine Methode kann in einer Notiz als Kommentar angegeben werden.
  siehe auch: Klasse (1), Attribut (2), Notiz (All:3)
  Beschreibung: Seite 46
Kla:4
  Sichtbarkeit
  Abbildung: A.6
  Engl.: visibility
  Regeln:
  - Die Sichtbarkeit eines Klassenelements wird durch folgende Zeichen geregelt:
  - `+`: public
  - `~`: package
  - `#`: protected
  - `-`: private
  siehe auch: Klasse (1), Attribut (2), Operation (3)
  Andere Diagramme: Paketdiagramm (Pak:3)
  Beschreibung: Seite 47

  Syntax der Klassendiagramme 2

Kla:5
  Assoziation
  Abbildung: A.7, A.9
  Engl.: association
  Regeln:
  - Eine (binäre) Assoziation verbindet zwei Klassen miteinander.
  - Eine Assoziation kann als navigierbar (mit Pfeilspitze) oder nicht navigierbar (mit Kreuz) gekennzeichnet werden. so entstehen gerichtete Assoziationen.
  - Eine reflexive Assoziation verbindet eine Klasse mit sich selbst.
  - Für jede Assoziation kann ein Assoziationsname mit optionaler Leserichtung angegeben werden.
  - Für jeden Anknüpfpunkt der Assoziation an eine Klasse kann ein Rollenname und die Multiplizität der Klasse in dieser Assoziation angegeben werden.
  - Außerdem sind Objektselektoren möglich.
  - Die üblichen Zugriffsrechte schränken gegebenenfalls die Sichtbarkeit der Rollennamen ein.
  - Ist die Multiplizität größer als 1, so kann die Kollektion als `{ordered}` oder `{unique}` spezifiziert werden.
  - Die Bedingung `{xor}` kennzeichnet zwei verschiedene Assoziationen von einer Klasse aus als Alternativen.
  siehe auch: Aggregation (6), n-äre Assoziation (8), Assoziationsklasse (9), Klasse (1), Komposition (7), Multiplizität, (10), Objektselektor (11)
  Andere Diagramme: Use-Case-Diagramm (Use:4), Kommunikationsdiagramm (Kmk:4)
  Beschreibung: Seite 51

  Syntax der Klassendiagramme 3

Kla:6
  Aggregation
  Abbildung: A.8
  Engl.: aggregation
  Regeln:
  - Eine Aggregation ist eine gerichtete, binäre Assoziation.
  siehe auch: Assoziation (5), Komposition (7), Klasse (1)
  Beschreibung: Seite 57

Kla:7
  Komposition
  Abbildung: A.8
  Engl.: composition
  Regeln:
  - Eine Komposition ist eine Aggregation.
  - Eine Komposition kann auch durch Einzeichnen der Einzelteile in das Aggregat dargestellt werden.
  - In diesem Fall wird die Multiplizität oben rechts notiert.
  siehe auch: Aggregation (6), Klasse (1), Multiplizität (10)
  Andere Diagramme: Kompositionsdiagramm (Kps:1)
  Beschreibung: Seite 57

Kla:8
  n-äre Assoziation
  Abbildung: A.7
  Engl.: n-ary association
  Regeln:
  - Eine n-äre Assoziation verbindet n Klassen miteinander.
  - Die Enden einer n-äre Assoziation können nicht mit Objektselektoren versehen und nicht als Aggregation oder Komposition ausgezeichnet werden.
  siehe auch: Assoziation (5), Klasse (1)
  Beschreibung: Seite 63

  Syntax der Klassendiagramme 4

Kla:9
  Assoziationsklasse
  Abbildung: A.9
  Engl.: association class
  Regeln:
  - Eine Assoziationsklasse ist eine Klasse als Assoziation.
  - Der Name der Assoziationsklasse muss mit dem Namen der Assoziation übereinstimmen.
  siehe auch: Assoziation (5), Klasse (1)
  Beschreibung: Seite 61

Kla:10
  Multiplizität
  Abbildung: A.7, A.8, A.9
  Engl.: multiplicity
  Regeln:
  - Syntax: Multiplizität ::= * Intervall
    Intervall ::= Zahl Zahl .. Zahl Zahl .. *
  siehe auch: Assoziation (5), Attribut (2)
  Beschreibung: Seite 59

Kla:11
  Objektselektor
  Abbildung: A.9
  Engl.: qualifier
  Regeln:
  - Ein Objektselektor verbindet ein Ende einer Assoziation mit einer Klasse.
  - Er beinhaltet ein Attribut oder eine Liste von Attributen der gegenüberliegenden Klasse, die dort deshalb nicht aufgeführt werden brauchen.
  siehe auch: Assoziation (5), Klasse (1).
  Beschreibung: Seite 60

Kla:12
  Generalisierung
  Abbildung: A.10
  Engl.: generalization
  Regeln:
  - Jede Klasse kann beliebig viele Oberklassen und Unterklassen haben.
  - Der Graph, der aus den Klassen und Generalisierungspfeilen entsteht, muss kreisfrei sein.
  - Die Generalisierungsbeziehungen können unter Angabe eines Kriteriums zu Gruppen zusammengefasst werden.
  siehe auch: Klasse (1)
  Andere Diagramme: Use-Case-Diagramm (Use:6)
  Beschreibung: Seite 65

  Syntax der Klassendiagramme 5

  Syntax der Klassendiagramme 6

Kla:13
  Interface, Schnittstelle
  Abbildung: A.11
  Engl.: interface
  Regeln:
  - Ein Interface wird als Klasse mit dem Stereotyp interface dargestellt.
  - Ein Interface beinhaltet keine Attribute und nur abstrakte Operationen.
  siehe auch: Interface-Realisierung (14), Klasse (1)
  Andere Diagramme: Komponentendiagramm (Kmp:2)
  Beschreibung: Seite 69

Kla:14
  Interface-Realisierung
  Abbildung: A.11
  Engl.: implemenation of interface
  Regeln:
  - Eine solche Beziehung verbindet ein Interface mit einer Klasse.
  - In der Kurzform wird nur der Name des Interfaces angegeben.
  siehe auch: Interface (13) Klasse (1), Abhängigkeit (18)
  Andere Diagramme: Komponentendiagramm (Kmp:6)
  Beschreibung: Seite 69

  Syntax der Klassendiagramme 7

Kla:15
  Objekt
  Abbildung: A.12
  Engl.: object
  Regeln:
  - Ein Objekt besteht aus einem Namensfach und einem Attributfach.
  - Syntax des kompletten Objektnamens:
    [ Objektname ] [ : Klassenname ] [ [ Zustandsliste ] ]
  - Objektname oder Klassenname können fehlen, aber nicht gleichzeitig.
  - Gehört ein Objekt mehreren Klassen gleichzeitig an, so werden deren Namen durch Komma getrennt.
  - Der Stereotyp der Klasse kann angegeben werden.
  - Im Attributfach stehen Wertbelegungen interessanter Attribute.
  - Syntax: Wertbelegung ::= Attributname [ : Typ ] = Wert
  - Objekte sind durch Links miteinander verbunden.
  - Ein zusammengesetztes Objekt (Kompositum) ist eine Instanz einer Komposition.
  siehe auch: Link (16) Klasse (1), Komposition (7)
  Andere Diagramme: Aktivitätsdiagramm (Akt:3), Sequenzdiagramm (Seq:1), Kommunikationsdiagramm (Kmk:1)
  Beschreibung: Seite 49

Kla:16
  Link, Verknüpfung
  Abbildung: A.12
  Engl.: link
  Regeln:
  - Links verknüpfen Objekte.
  - Links können unidirektional oder bidirektional sein.
  - Links sind Exemplare von Assoziationen.
  - Bei der Assoziation kann als Eigenschaft vermerkt werden, ob Links nur bei der Objekterzeugung geschaltet (`{readOnly}`), nur hinzugefügt (`{addOnly}`) werden dürfen oder frei veränderbar sind.
  siehe auch: Objekt (15), Assoziation (5), Eigenschaftsliste (5)
  Andere Diagramme: Kommunikationsdiagramm (Kmk:4)
  Beschreibung: Seite 51

  Syntax der Klassendiagramme 8

Kla:17
  Schablone
  Abbildung: A.13
  Engl.: template
  Regeln:
  - Eine Schablone ist eine parametrisierte Klasse.
  - Die Parameter im eingeschobenen Rechteck werden bei der Ausprägung ersetzt.
  - Die Ausprägung geschieht durch Angabe von aktuellen Parametern
  - oder eine Abhängigkeitsbeziehung mit dem Stereotyp bind
  siehe auch: Klasse (1), Abhängigkeit (18)
  Beschreibung: Seite 71

Kla:18
  Abhängigkeit
  Abbildung: A.11
  Engl.: dependency
  Regeln:
  - Eine beliebige Beziehung zwischen Modellelementen.
    - Interface und Realisierung
    - Schablone und ausprägendem Typ
  siehe auch: Assoziation (5), Schablone (17), Interface (13),
  Interface-Realisierung (14)
  Andere Diagramme: Komponentendiagramm (Kmp:6), Paketdiagramm (Pak:2), Use-Case-Diagramm (Use:7)
  Beschreibung: Seite 71

Next: Sequenzdiagramm Up: Die UML Referenz Previous: Aktivitätsdiagramm