我看到你掉入了经典的陷阱,即“手册的第一页并不能代表整个工具”(1)。
除了各种 UML 图表(例如您遇到的序列图),PlantUML 还支持各种其他与软件开发相关的格式(例如 archimate,块图,bpmn,c4,计算机网络图表,erd,gantt 图表,思维导图和 wbd),以及可视化 json 和 yaml 文件。
事实上,它甚至理解Graphviz语法!(2)
由于所有这些,“直观”不会在您拥有一些PlantUML的基本知识之前发生。
因此回到您的问题……您看到的不是您所想象的。
与Graphviz相关的事物,而不是这个:
digraph d {
Bob -> Alice : hello
}
你实际上看到了这个:(3)
@startuml
digraph sequenceDiagramExample {
bobHead [ label="Bob" pos="0,1.5!" shape="record" ];
bobPoint0 [ pos="0,0.75!" shape="point" width="0" ]
bobFoot [ label="Bob" pos="0,0!" shape="record" ];
aliceHead [ label="Alice" pos="1,1.5!" shape="record" ];
alicePoint0 [ pos="1,0.75!" shape="point" width="0" ]
aliceFoot [ label="Alice" pos="1,0!" shape="record" ];
bobHead -> bobPoint0 -> bobFoot [ dir="none" style="dashed" ]
aliceHead -> alicePoint0 -> aliceFoot [ dir="none" style="dashed" ]
bobPoint0 -> alicePoint0 [ label="hello" labelloc="c" style="solid" ]
}
@enduml
仅有两个节点和之间箭头的示例看起来取决于所选择的图形类型...
需要记住的是,在Graphviz中,你必须自行应用所有含义于图表。在PlantUML中,PlantUML为你提供含义。你只需要告诉PlantUML你的意思。
通过一些基本指针,这很快变得直观。在开始之前,你只需要知道要绘制什么样的图表...
从下面的示例中可以看出,PlantUML是一种非常强大的工具,可添加到软件开发工具中。
我希望这些示例将有助于使事情更加直观,并且您的第一次错误不会阻止您进一步探索PlantUML!
@startuml
:Alice;
:Bob;
@enduml
@startuml
archimate #Application Alice
archimate #Business Bob
Alice -> Bob
@enduml
@startuml
Alice -|> Bob: Hello
@enduml
@startuml
[Alice] -> [Bob]: Hello
@enduml
@startuml
folder Alice
file Bob
Alice -> Bob: Hello
@enduml
@startditaa
+-------+ +-----+
| | hello | |
| Alice +------>| Bob |
| | | |
+-------+ +-----+
@endditaa
@startgantt
[Alice]->[Bob]
@endgantt
@startjson
{
"Alice": ["Bob"]
}
@endjson
@startmindmap
+ Alice
++ Bob
@endmindmap
@startuml
nwdiag {
network hello {
Alice;
Bob;
}
}
@enduml
@startuml
object Alice
object Bob
Alice -> Bob
@enduml
@startuml
Bob -> Alice : hello
@enduml
@startuml
[*] -> Alice
Alice -> Bob: hello
Bob -> [*]
@enduml
@startuml
concise Hello
0 is Alice
+100 is Bob
@enduml
@startuml
:Alice: -> :Bob: : Hello
@enduml
@startwbs
+ Alice
++ Bob
@endwbs
neato
而不是dot
渲染,请参阅https://dev59.com/W0nSa4cB1Zd3GeqPPI8G#53470455skinparam style strictuml
完整代码
@startuml
skinparam style strictuml
Bob -> Alice : hello
Alice -> Bob : ok
@enduml