PlantUML

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

classDiag.png

@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

seqDiag.png

@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

seqDiag2.png

@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

useCaseDiag.png

@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

useCaseDiag2.png

@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

activityDiag.png

@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

stateDiag.png

@startuml
[*] -> Created
Created --> Waiting
Waiting --> Processing : Received message
Processing --> Waiting : Processed message
Waiting --> [*] : Aborted
@enduml

stateDiag2.png

@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

PlantUML (last edited 2021-10-14 18:32:27 by localhost)