Tutorial:Klassendiagramme in PlantUML: Unterschied zwischen den Versionen

Aus KGS-Wiki
(Links)
(Diagramm ergänzt)
 
Zeile 1: Zeile 1:
{{Thumbnailbox|INHALT=<uml>
@startuml
class Bar extends Foo {
-{static} attribut1: int
#attribut2: String
~methode1(parameter: Baz)
+methode2()
}
abstract class Foo {
  +{abstract} methode3()
  -attribut3: boolean
}
Bar --> Baz
@enduml
</uml>|CAPTION=Ein Klassendiagramm}}
Die [[Klassendiagramm|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:<syntaxhighlight lang="java" line="1">
Die [[Klassendiagramm|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:<syntaxhighlight lang="java" line="1">
@startuml
@startuml

Aktuelle Version vom 14. Mai 2024, 21:25 Uhr

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