In an attempt to improve PlantUML documentation...
Wiki Toc Recent changes View page history Add new chapter Reorder page Raw
![]() |
![]() |
||||||||||||||||||||||||||||||||||||||||
Klassendiagramm |
Class Diagram |
||||||||||||||||||||||||||||||||||||||||
Elemente deklarieren
|
Declaring element
|
||||||||||||||||||||||||||||||||||||||||
Beziehungen zwischen KlassenBeziehungen zwischen Klassen werden mit den folgenden Symbolen gekennzeichnet:
-- durch .. zu ersetzen, um eine gepunktete Linie zu erhalten.
Wenn man diese Regeln kennt, ist es möglich, die folgenden Zeichnungen zu zeichnen:
|
Relations between classesRelations between classes are defined using the following symbols :
-- by .. to have a dotted
line.
Knowing those rules, it is possible to draw the following drawings:
|
||||||||||||||||||||||||||||||||||||||||
Beschriften von BeziehungenBeziehungen können beschriftet werden, durch das Anhängen eines Doppelpunktes: gefolgt von dem Beschriftungstext.
Um Kardinalität anzuzeigen, verwendet man doppelte Anführungszeichen "" auf jeder Seite der Beziehung.
Um zu zeigen, in welche Richtung die Beziehung wirkt, können an die Beschriftung zusätzliche Pfeilspitzen angehängt werden, indem man vor die Beschriftung < oder nach der Beschriftung > verwendet.
|
Label on relationsIt is possible to add a label on the relation, using: , followed
by the text of the label.
For cardinality, you can use double-quotes "" on each side
of the relation.
You can add an extra arrow pointing at one object showing which object acts on the other object, using < or >
at the begin or at the end of the label.
|
||||||||||||||||||||||||||||||||||||||||
Methoden hinzufügenUm Feldern und Methoden zu einer Klasse hinzuzufügen, wird der Doppelpunkt:
gefolgt von dem Namen des Feldes oder der Methode verwendet.
Das System erkennt anhand der Klammern, ob es sich um eine Methode oder um ein Feld handelt.
Es ist möglich in Klammern, Feldern und Methoden mit {}
zu gruppieren
Die Syntax ist sehr flexibel bezüglich der Reihenfolge der Typen und Namen.
Sie können die Modifier {field} und {method} verwenden, um das Standardverhalten des Parsers bei Feldern und Methoden zu übersteuern.
|
Adding methodsTo declare fields and methods, you can use the symbol: followed by the field's or method's name.
The system checks for parenthesis to choose between methods and fields.
It is also possible to group between brackets {} all fields and methods.
Note that the syntax is highly flexible about type/name order.
You can use {field} and {method} modifiers to
override default behaviour of the parser about fields and methods.
|
||||||||||||||||||||||||||||||||||||||||
Sichtbarkeit festlegenBeim Definieren von Methoden und Feldern kann die Sichtbarkeit mit einem der folgenden Zeichen festgelegt werden:
Mit dem skinparam classAttributeIconSize 0 Befehl kann dieses Verhalten ausgeschaltet werden :
|
Defining visibilityWhen you define methods or fields, you can use characters to define the visibility of the corresponding item:
You can turn off this feature using the skinparam classAttributeIconSize 0 command :
|
||||||||||||||||||||||||||||||||||||||||
Abstract und StaticSie können statische oder abstrakte methoden und statische Attribute durch benutzen des{static}
oder {abstract} Modifikators definieren.
Diese Modifikatoren können am Anfang oder am Ende der Zeile benutzt werden.
Es kann auch {classifier} statt {static} benutzt werden.
|
Abstract and StaticYou can define static or abstract methods or fields using the{static}
or {abstract} modifier.
These modifiers can be used at the start or at the end of the line.
You can also use {classifier} instead of {static} .
|
||||||||||||||||||||||||||||||||||||||||
Der Klassenrumpf für FortgeschritteneStandardmäßig werden die Methoden und Felder im Klassenrumpf automatisch von PlantUML gruppiert. Mit Hilfe von Trennzeichen können Felder und Methoden aber auch selber geordnet werden. Folgende Trennzeichen sind möglich:-- (einfache durchzogene Linie), .. (einfache unterbrochene Linie), == (doppelte durchzogene Linie, __ (dicke durchzogene Linie).
Es können auch Titel innerhalb des Trennzeichen angegeben werden:
|
Advanced class bodyBy default, methods and fields are automatically regrouped by PlantUML. You can use separators to define your own way of ordering fields and methods. The following separators are possible :-- .. == __ .
You can also use titles within the separators:
|
||||||||||||||||||||||||||||||||||||||||
Notizen und StereotypenStereotypen werden mit dem Schlüsselwortclass oder mit den Symbolen << (doppelte spitze Klammer links) und >> (doppelte spitze Klammer rechts) definiert. Zwischen den Klammern wird der Name des Stereotyps angegeben.
Mit den note left of , note right of , note top of , note bottom of
Schlüsselwörtern kann man Notizen und ihre Position festlegen.
Eine Notiz zur zuletzt definierten Klasse wird mit den Schlüsselwörtern note left , note right ,note top , note bottom hinzugefügt.
Eine Notiz kann aber auch nur mit dem note Schlüsselwort erstellt werden und dann mit dem .. Symbol den Klassen zugeordnet werden.
|
Notes and stereotypesStereotypes are defined with theclass keyword, << and >> .
You can also define notes using note left of , note right of , note top of , note bottom of
keywords.
You can also define a note on the last defined class using note left , note right ,
note top , note bottom .
A note can be also define alone with the note
keywords, then linked to other objects using the .. symbol.
|
||||||||||||||||||||||||||||||||||||||||
Mehr zu NotizenEs ist auch möglich einige HTML Tags wie:
note left , note right , note top oder note bottom erstellt werden.
WARNING This translation need to be updated. WARNING |
More on notesIt is also possible to use few HTML tags (See Creole expression) like :
note left , note right ,
note top , note bottom .
|
||||||||||||||||||||||||||||||||||||||||
|
Note on field (field, attribute, member) or methodIt is possible to add a note on field (field, attribut, member) or on method.Note on field or method
Note on method with the same name
[Ref. QA-3474 and QA-5835] |
||||||||||||||||||||||||||||||||||||||||
Notizen zu BeziehungenEine Notiz zu einer Beziehung kann direkt nach der Beziehungsdefinition erfolgen:note on link .
Zur relativen Positionierung der Notiz können die Schlüsselwörter note left on link , note right on link , note top on link ,
note bottom on link verwendet werden.
|
Note on linksIt is possible to add a note on a link, just after the link definition, usingnote on link .
You can also use note left on link , note right on link , note top on link ,
note bottom on link if you want to change the relative position of the note with the label.
|
||||||||||||||||||||||||||||||||||||||||
Abstrakte Klassen und InterfacesEine abstrakte Klasse lässt sich über dasabstract oder das
abstract class Schlüsselwort definieren. Die Klasse wird dann kursiv gedruckt.
Man kann auch die interface , annotation und enum Schlüsselwörter verwenden.
*[Ref. 'Annotation with members' [Issue#458](https://github.com/plantuml/plantuml/issues/458)]* WARNING This translation need to be updated. WARNING |
Abstract class and interfaceYou can declare a class as abstract usingabstract or abstract class keywords.
The class will be printed in italic.
You can use the interface , annotation and enum keywords too.
[Ref. 'Annotation with members' Issue#458] |
||||||||||||||||||||||||||||||||||||||||
Verwendung von SonderzeichenWenn sie in dem Name Ihrer Klasse (oder des Enums, oder der Schnittstelle) Zeichen verwenden wollen, dann gibt es die folgenden Möglichkeiten:
|
Using non-lettersIf you want to use non-letters in the class (or enum...) display, you can either :
|
||||||||||||||||||||||||||||||||||||||||
Verstecken von Attributen, Methoden ...Die Anzeige einer Klasse kann über dashide/show Kommando parametrisiert werden.
Der Basisbefehl ist hide empty members . Mit diesem Befehl werden leere
Atribute und Methoden ausgeblendet.
Anstelle von empty members kann man auch die folgenden Befehle verwenden:
hide oder dem show Schlüsselwort kann man auch noch die folgenden Befehle anfügen:
show/hide Befehle verketten, um Regeln und ausnahmen festzulegen.
|
Hide attributes, methods...You can parameterize the display of classes using thehide/show
command.
The basic command is: hide empty members . This
command will hide attributes or methods if they are empty.
Instead of empty members , you can use:
hide or show
keyword:
show/hide commands to define rules and
exceptions.
|
||||||||||||||||||||||||||||||||||||||||
Verstecken von KlassenMit denshow/hide Befehlen können Klassen versteckt werden.
Dies kann hilfreich sein, wenn man eine große !included Datei verwendet und dann einige Klassen nach dem einbinden der Datei verstecken möchte.
WARNING This translation need to be updated. WARNING |
Hide classesYou can also use theshow/hide commands to hide classes.
This may be useful if you define a large !included file,
and if you want to hide some classes after file inclusion.
|
||||||||||||||||||||||||||||||||||||||||
|
Remove classesYou can also use theremove commands to remove classes.
This may be useful if you define a large !included file,
and if you want to remove some classes after file inclusion.
|
||||||||||||||||||||||||||||||||||||||||
|
Hide or Remove unlinked classBy default, all classes are displayed:
But you can:
[Adapted from QA-11052] |
||||||||||||||||||||||||||||||||||||||||
Verwenden von GenericsMit spitzen Klammern (< und > ) kann die Verwendung von Generics dargestellt werden.
Man kann diese Darstellung mittels des Befehls skinparam genericDisplay old ausschalten.
|
Use genericsYou can also use bracket< and > to define generics usage in a class.
It is possible to disable this drawing using skinparam genericDisplay old command.
|
||||||||||||||||||||||||||||||||||||||||
Besondere HervorhebungenNormalerweise werden Klassen, Schnittstellen, Enums und abstrakte Klassen mit einem hervorgehobenen Buchstaben gekennzeichnet (C, I, E or A). Es ist aber auch möglich eine eigene Hervorhebung zu erstellen wenn man einen Stereotyp definiert. Das wird durch hinzufügen eines einzelnen Buchstabens und einer Farbe so wie im folgenden Beispiel erreicht:
|
Specific SpotUsually, a spotted character (C, I, E or A) is used for classes, interface, enum and abstract classes. But you can define your own spot for a class when you define the stereotype, adding a single character and a color, like in this example:
|
||||||||||||||||||||||||||||||||||||||||
PaketePakete können über daspackage Schlüsselwort definiert werden.
Auf Wunsch kann außerdem die die Hintergrundfarbe für das Paket festgelegt werden. Dies kann durch den Farbnamen oder den HTML Code geschehen.
Es ist möglich, Pakete ineinander zu schachteln.
|
PackagesYou can define a package using thepackage keyword, and optionally declare a background color
for your package (Using a html color code or name).
Note that package definitions can be nested.
|
||||||||||||||||||||||||||||||||||||||||
PaketartenEs stehen verschiedene Arten von Paketen zur Verfügung. Welches Paket zur Verwendung kommen soll, kann mit dem Befehlskinparam packageStyle festgelegt werden. Alternativ kann ein Stereotyp in der Paketdefinition verwendet werden.
Außerdem ist es möglich, Abhängigkeiten zwischen Paketen zu definieren, wie dies im folgenden Beispiel gezeigt wird:
|
Packages styleThere are different styles available for packages. You can specify them either by setting a default style with the command :skinparam packageStyle ,
or by using a stereotype on the package:
You can also define links between packages, like in the following example:
|
||||||||||||||||||||||||||||||||||||||||
NamensraumIn Paketen ist der Name einer Klasse der eindeutige Bezeichner der Klasse. Das bedeutet, das man nicht zwei Klassen mit dem gleichen Namen in unterschiedlichen Paketen haben kann. In diesem Fall sollte ein Namensraum anstelle eine Pakets verwendet werden. Man kann auf eine Klasse aus einem anderen Namensraum verweisen, in dem man den voll qualifizierten Namen der Klasse angibt. Klassen aus dem Standartnamensraum werden mit einem beginnenden Punkt gekennzeichnet. Beachten Sie, das ein Namensraum nicht explizit festgelegt werden muss: Eine vollqulifizierte Klasse verwendet automatisch den richtigen Namensraum.
|
NamespacesIn packages, the name of a class is the unique identifier of this class. It means that you cannot have two classes with the very same name in different packages. In that case, you should use namespaces instead of packages. You can refer to classes from other namespaces by fully qualify them. Classes from the default namespace are qualified with a starting dot. Note that you don't have to explicitly create namespace : a fully qualified class is automatically put in the right namespace.
|
||||||||||||||||||||||||||||||||||||||||
Automatische Erzeugung eines NamensraumsÜber folgenden Befehl kann ein anderes Trennzeichen (als der Punkt) definiert werden:set namespaceSeparator ??? .
Die automatische Erzeugung eines Pakets kann mit set namespaceSeparator none deaktiviert werden.
|
Automatic namespace creationYou can define another separator (other than the dot) using the command :set namespaceSeparator ??? .
You can disable automatic package creation using the command set namespaceSeparator none .
|
||||||||||||||||||||||||||||||||||||||||
Lollipop SchnittstellenMit der folgenden Syntax kann man Schnittstellen von Klassen definieren:
|
Lollipop interfaceYou can also define lollipops interface on classes, using the following syntax:
|
||||||||||||||||||||||||||||||||||||||||
Ändern der PfeilrichtungNormalerweise werden Beziehungen zwischen Klassen mit zwei Strichen-- definiert und die Klassen werden Vertikal angeordnet.
Verwendet man nur einen Strich (oder Punkt), dann werden die Klassen horizontal angeordnet so wie im folgenden Beispiel zu sehen ist:
Man kann die Richtung auch durch das Umdrehen der Verbindung ändern:
Außerdem ist es möglich, die Richtung der Pfeile durch Hinzufügen der left ,
right , up oder down Schlüsselwörter innerhalb der Pfeile zu verändern:
Die Länge der Pfeile kann verkürzt werden, in dem man nur den ersten Buchstaben für die Richtung verwendet (zum Beispiel, -d- anstelle von -down- ) oder die ersten beiden
Buchstaben (-do- )
Bitte verwenden Sie diese Möglichkeit nur wenn es unbedingt sein muss: GraphViz
liefert normalerweise recht gute Ergebnisse ohne das manuell eingegriffen werden muss.
|
Changing arrows directionBy default, links between classes have two dashes-- and are vertically oriented.
It is possible to use horizontal link by putting a single dash (or dot) like this:
You can also change directions by reversing the link:
It is also possible to change arrow direction by adding left , right , up
or down keywords inside the arrow:
You can shorten the arrow by using only the first character of the direction (for example, -d- instead of
-down- )
or the two first characters (-do- ).
Please note that you should not abuse this functionality : Graphviz gives usually good results without tweaking.
And with the left to right direction parameter:
|
||||||||||||||||||||||||||||||||||||||||
AssoziationsklassenNach dem man eine Beziehung zwischen zwei Klassen definiert hat, kann man eine association class definieren. Hierzu ein Beispiel:
Die Richtung lässt ich aber auch ändern:
|
Association classesYou can define association class after that a relation has been defined between two classes, like in this example:
You can define it in another direction:
|
||||||||||||||||||||||||||||||||||||||||
|
Association on same classe
[Ref. Incubation: Associations] |
||||||||||||||||||||||||||||||||||||||||
Der Skinparam-BefehlMit dem skinparam Befehl kann die Farbe und die Schriftart der Zeichnung verändert werden. Sie können den Befehl auf die folgenden Arten verwenden:
|
SkinparamYou can use the skinparam command to change colors and fonts for the drawing. You can use this command :
|
||||||||||||||||||||||||||||||||||||||||
Das Aussehen von Stereotypen verändernEs ist möglich die Farbe und die Schriftart der Klassen zu verändern, die mit einem Stereotypen ausgezeichnet sind.
|
Skinned StereotypesYou can define specific color and fonts for stereotyped classes.
|
||||||||||||||||||||||||||||||||||||||||
FarbverlaufMit der # Notation können individuelle Farben für Klassen oder Notizen definiert werden. Es kann entweder der Standardname der Farbe oder der RGB Code verwendet werden. Für den Hintergrund kann ebenfalls ein Farbverlauf verwendet werden: Zwei Farbnamen getrennt durch:
WARNING This translation need to be updated. WARNING |
Color gradientYou can declare individual colors for classes, notes etc using the # notation. You can use standard color names or RGB codes in various notations, see Colors. You can also use color gradient for background colors, with the following syntax: two colors names separated either by:
|
||||||||||||||||||||||||||||||||||||||||
Hilfe beim LayoutManchmal ist das vorgegebene Layout nicht optimal. Sie können dastogether Schlüsselwort benutzen, um der Layout-Engine die Anweisung zu geben
eingie Klassen zu gruppieren (ähnlich einem package ).
Mit hidden Links kann man auch ein Layout erzwingen.
|
Help on layoutSometimes, the default layout is not perfect... You can usetogether keyword to group some classes together :
the layout engine will try to group them (as if they were in the same package).
You can also use hidden links to force the layout.
|
||||||||||||||||||||||||||||||||||||||||
Große Dateien aufteilenManchmal erhält man sehr große Bilddateien.Mit dempage (hpages)x(vpages) Befehl kann das erzeugte Bildauf mehrere Dateien verteilt werden:
Mit dem page (hpages)x(vpages) Befehl kann das erzeugte Bild auf mehrere Dateien aufgeteilt werden:
hpages gibt die Anzahl von horizontalen Seiten an,
und vpages gibt die Anzahl von vertikalen Seiten an.
Die Verwendung von skinparam Definitionen, ermöglicht die Darstellung von Außenrahmen für mehrseitige Bilder. (Siehe nachfolgendes Beispiel)
|
Splitting large filesSometimes, you will get some very large image files. You can use thepage (hpages)x(vpages) command to split the generated image into several files :
hpages is a number that indicated the number of horizontal pages,
and vpages is a number that indicated the number of vertical pages.
You can also use some specific skinparam settings to put borders on splitted pages (see example).
|
||||||||||||||||||||||||||||||||||||||||
|
Extends and implementsIt is also possible to useextends and implements keywords.
|
||||||||||||||||||||||||||||||||||||||||
|
Bracketed relations (linking or arrow) styleLine styleIt's also possible to have explicitlybold , dashed , dotted , hidden or plain relation, links or arrows:
[Adapted from QA-4181] Line color
Line thickness
[Ref. QA-4949] Mix
|
||||||||||||||||||||||||||||||||||||||||
|
Change relation (linking or arrow) color and style (inline style)You can change the color or style of individual relation or arrows using the inline following notation:
[See similar feature on deployment] |
||||||||||||||||||||||||||||||||||||||||
|
Change class color and style (inline style)You can change the color or style of individual class using the following notation:
First original example:
[Ref. QA-3770] |
||||||||||||||||||||||||||||||||||||||||
|
Arrows from/to class members
[Ref. QA-3636]
[Ref. QA-5261] |
||||||||||||||||||||||||||||||||||||||||