Tutorial:Klassendiagramme in PlantUML

Aus KGS-Wiki

Ein Klassendiagramm

Die Klassendiagramme in diesem Wiki sind mit PlantUML gezeichnet. PlantUML ist ein Werkzeug, das kompakte und gut lesbare Beschreibungen von UML-Diagrammen in Grafiken umsetzt. Das Diagramm oben auf der Seite ist mit folgendem PlantUML-Code erzegt worden:

@startuml

class Bar extends Foo {
 -{static} attribut1: int
 #attribut2: String
 ~methode1(parameter: Baz)
 +methode2()
}

abstract class Foo {
  +{abstract} methode3()
  -attribut3: boolean
}

Bar --> Baz

@enduml

Klassen, Attribute und Methoden

Alle Bezeichner, hinter denen Klammern (ggf. mit Parametern) stehen, werden von PlantUML automatisch als Methoden erkannt, alle anderen als Attribute. Mit den Schlüsselwörtern {static} und {abstract} vor den Namen der Attribute und Methoden können diese als statisch bzw. abstrakt gekennzeichnet werden.

Die Zeichen +, #, ~ und - stehen dabei für die Sichtbarkeit der Attribute:

Sichtbarkeits-Symbole
Symbol Sichtbarkeit
+ public
~ package
# protected
- private

Beziehungen

Die Beziehungen zwischen den Klassen können mit Pfeilen dargestellt werden. Wenn eine Beziehung auf eine nicht ausführlich definierte Klasse verweist, wird eine leere Klassenbox eingefügt.

Beziehungen zwischen den Klassen[1]
Beziehung Darstellung Semantik
A steht in Beziehung zu B (Uni-Direktionale Assoziation) A --> B A kann B aufrufen (über eine Methode)
A und B stehen in Beziehung zueinander (Assoziation) A -- B A und B können einander aufrufen (über eine Methode)
A implementiert Interface B A ..|> B A implementiert B (B ist ein Interface)
A benutzt Interface B (Use Interface) A ..> B A benutzt Interface B (welches in C implementiert ist, um C zu verändern)

In BlueJ ist ..> eine Assoziation!

Vererbung A --|> B oder A extends B A ist B (oder eine Art von B)
Aggregation A --o B A ist Teil von B, sodass A alleine existieren kann
Komposition A --* B A ist Teil von B, sodass A nur mit B existieren kann

In PlantUML werden die Kardinalitäten an den Enden des Pfeils notiert. Dahinter kann der Beziehung noch ein Name gegeben werden

Kunde "*" -- "*" Konto
Klasse "1" -- "1" Klassenlehrkraft : leitet
Halter "1" <-- "*" Haustier

Weblinks

Quellen

  1. Beziehungen in UML-Klassendiagrammen in Edrawsoft, abgerufen am 26.09.2023