Tutorial:Klassendiagramme in PlantUML
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:
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.
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
- ↑ Beziehungen in UML-Klassendiagrammen in Edrawsoft, abgerufen am 26.09.2023