Ein
Objektdiagramm ist eine grafische Darstellung, die Objekte und ihre Beziehungen zu einem bestimmten Zeitpunkt zeigt. Es bietet eine Momentaufnahme der Systemstruktur und erfasst die statische Ansicht der vorhandenen Instanzen und ihrer Beziehungen.
PlantUML bietet eine einfache und intuitive Möglichkeit, Objektdiagramme mit einfachem Text zu erstellen. Die benutzerfreundliche Syntax ermöglicht die schnelle Erstellung von Diagrammen, ohne dass komplexe GUI-Tools erforderlich sind. Darüber hinaus bietet das
PlantUML-Forum eine Plattform für Benutzer, um zu diskutieren, sich auszutauschen und Hilfe zu suchen, wodurch eine kollaborative Gemeinschaft gefördert wird. Durch die Wahl von PlantUML profitieren die Nutzer sowohl von der Effizienz der markdown-basierten Diagrammerstellung als auch von der Unterstützung durch eine aktive Gemeinschaft.
Eine Instanz eines Objekts wird mit dem Schlüsselwort
object
definiert.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
object firstObject
object "My Second Object" as o2
@enduml
|
WARNING
This translation need to be updated. WARNING
Beziehungen zwischen Objekten werden mit den folgenden Symbolen definiert
Typ | Symbol | Bild |
Erweiterung | <|-- | ![](/img/extends01.png) |
Zusammensetzung | *-- | ![](/img/sym03.png) |
Aggregation | o-- | ![](/img/sym01.png) |
Es ist möglich,
--
durch
..
zu ersetzen, um eine gepunktete Linie zu erhalten.
Mit diesen Regeln ist es möglich, die folgenden Zeichnungen zu zeichnen.
Es ist möglich, eine Beschriftung der Beziehung hinzuzufügen, indem man
:
verwendet, gefolgt von dem Text der Beschriftung.
Für die Kardinalität kann man doppelte Anführungszeichen
""
auf jeder Seite der Beziehung verwenden.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
object Object01
object Object02
object Object03
object Object04
object Object05
object Object06
object Object07
object Object08
Object01 <|-- Object02
Object03 *-- Object04
Object05 o-- "4" Object06
Object07 .. Object08 : some labels
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
object o1
object o2
diamond dia
object o3
o1 --> dia
o2 --> dia
dia --> o3
@enduml
|
Um Attribute zu deklarieren, wird das Symbol
:
, gefolgt vom Feldnamen, verwendet:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
object user
user : name = "Dummy"
user : id = 123
@enduml
|
Es ist auch möglich, alle Attribute eines Objekts zwischen geschweiften Klammern
{}
aufzuführen:
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
object user {
name = "Dummy"
id = 123
}
@enduml
|
You can define a map table or
associative array, with
map
keyword and
=>
separator.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
map CapitalCity {
UK => London
USA => Washington
Germany => Berlin
}
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
map "Map **Contry => CapitalCity**" as CC {
UK => London
USA => Washington
Germany => Berlin
}
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
map "map: Map<Integer, String>" as users {
1 => Alice
2 => Bob
3 => Charlie
}
@enduml
|
And add link with object.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
object London
map CapitalCity {
UK *-> London
USA => Washington
Germany => Berlin
}
@enduml
|
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
object London
object Washington
object Berlin
object NewYork
map CapitalCity {
UK *-> London
USA *--> Washington
Germany *---> Berlin
}
NewYork --> CapitalCity::USA
@enduml
|
[Ref. #307]
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
package foo {
object baz
}
package bar {
map A {
b *-> foo.baz
c =>
}
}
A::c --> foo
@enduml
|
[Ref. QA-12934]
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
object Foo
map Bar {
abc=>
def=>
}
object Baz
Bar::abc --> Baz : Label one
Foo --> Bar::def : Label two
@enduml
|
[Ref. #307]
You can use
map table
in order to make
Program (or project) evaluation and review technique (PERT) diagram.
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml PERT
left to right direction
' Horizontal lines: -->, <--, <-->
' Vertical lines: ->, <-, <->
title PERT: Project Name
map Kick.Off {
}
map task.1 {
Start => End
}
map task.2 {
Start => End
}
map task.3 {
Start => End
}
map task.4 {
Start => End
}
map task.5 {
Start => End
}
Kick.Off --> task.1 : Label 1
Kick.Off --> task.2 : Label 2
Kick.Off --> task.3 : Label 3
task.1 --> task.4
task.2 --> task.4
task.3 --> task.4
task.4 --> task.5 : Label 4
@enduml
|
[Ref. QA-12337]
Simple example
🎉 Copied! ![Copy to clipboard](/clipboard1.svg)
![Edit online](/edit1.svg) | @startuml
class Class
object Object
json JSON {
"fruit":"Apple",
"size":"Large",
"color": ["Red", "Green"]
}
@enduml
|
[Ref. QA-15481] For another example, see on
JSON page.