PlantUML
wget http://vorboss.dl.sourceforge.net/project/plantuml/plantuml.jar
- java -Djava.awt.headless=true -jar ~/Downloads/plantuml.jar sequence1.txt
- requires graphviz (dot)
- java -Djava.awt.headless=true -jar ~/Downloads/plantuml.jar class1.txt
Graphviz for windows https://graphviz.gitlab.io/_pages/Download/windows/graphviz-2.38.msi
PlantUML web server
cd ~ cd tmp/ git clone https://github.com/plantuml/plantuml-server.git cd plantuml-server/ mvn jetty:run -Djetty.port=8080 mvn jetty:run -Djetty.port=8181
Class diagram
@startuml class Car interface ICar{ addWheel(Wheel w) } note "This is a floating note" as CarNote CarNote .. Car Driver - Car : drives > Car *- Wheel : have 4 > Car -- Person : < owns /' <|-- extends -- association ..> depends <|.. implements / realizes '/ Car ..|> ICar Car : engine : String Car : startEngine() @enduml
Sequence diagram example
@startuml autonumber actor Xyz1 boundary Xyz2 control Xyz3 entity Xyz4 database Xyz5 /' comment -> synch call --> response ->> asynch call '/ Xyz1 -> Xyz2 : To boundary Xyz1 -> Xyz3 : To control Xyz1 -> Xyz4 : To entity Xyz1 -> Xyz5 : To database Xyz5 --> Xyz1 : To Foo1 @enduml
@startuml Alice -> Bob: Authentication Request alt successful case Bob -> Alice: Authentication Accepted else some kind of failure Bob -> Alice: Authentication Failure group My own label Alice -> Log : Log attack start loop 1000 times Alice -> Bob: DNS Attack break ccc else ddd end end Alice -> Log : Log attack end end else Another type of failure Bob -> Alice: Please repeat end opt aaaa Alice -> Bob : llll else bbb Alice -> Log : kkk end @enduml
Use case diagram example
@startuml 'left to right direction 'skinparam packageStyle rect actor user actor admin rectangle System { user -- (search stuff) (search stuff) .> (show search fields) : include (help) .> (search stuff) : extends (search stuff) -- admin } @enduml
@startuml left to right direction skinparam packageStyle rectangle actor customer actor clerk actor a2 rectangle system{ customer -- (checkout) customer -- (ch1) customer -- (ch2) a2 -- (ch2) a2 -- (ch3) (checkout) .> (payment) : include (help) .> (checkout) : extends (checkout) -- clerk (checkout1) -- clerk (checkout2) -- clerk } @endum @enduml
Activity example
@startuml (*) --> "First Activity" "First Activity" --> [label] "Second Activity" "Second Activity" --> "Third Activity" if "Activities are complete?" then --> [true] (*) else --> [false] "Second Activity" endif @enduml
State diagram
@startuml [*] -> Created Created --> Waiting Waiting --> Processing : Received message Processing --> Waiting : Processed message Waiting --> [*] : Aborted @enduml
@startuml [*] -> SubmissionIncomplete SubmissionIncomplete --> Submitted : all submitted Submitted --> ReceivedPhotosNoXrays : photos uploaded ReceivedPhotosNoXrays --> ReceivedPhotosAndCast : cast uploaded ReceivedPhotosAndCast --> CreatingModel : model creation started ReceivedPhotosNoXrays --> ReceivedPhotosAndXrays : xrays uploaded Submitted --> ReceivedXraysNoPhotos : xrays uploaded ReceivedXraysNoPhotos-->ReceivedPhotosAndXrays : photos uploaded ReceivedPhotosAndXrays --> CreatingModel : model creation started CreatingModel --> ModelComplete : model is ready ModelComplete -> [*] : model shipped @enduml