LoginSignup
4
5

More than 5 years have passed since last update.

PlantUMLコピペ用サンプル

Posted at

導入方法

シーケンス図

SequenceA.png

sequence.pu
/'
PlantUML sample
'/
@startuml
title SequenceA

'Replace name
participant "モジュールA" as ModuleA
participant "モジュールB" as ModuleB

== Sync Call ==
[-> ModuleA : start sync
activate ModuleA
ModuleA -> ModuleB : sendMsgSync(10, "a")
activate ModuleB
ModuleB -> ModuleB : do something()
ModuleA <-- ModuleB : response(OK)
deactivate ModuleB
ModuleA -> ModuleA : do something()
deactivate ModuleA

'space
||| 

== Async Call ==
[-> ModuleA : start async
activate ModuleA
ModuleA ->> ModuleB : sendMsgAsync(10, "a")
activate ModuleB
ModuleB -> ModuleB : do something()
ModuleA -> ModuleA : do something()
ModuleA <-- ModuleB : response(OK)
deactivate ModuleB
deactivate ModuleA

== Other sample ==
[-> ModuleA : Note, color
activate ModuleA
ModuleA -> ModuleB : sendMsgSync(<s:#FF0000>10</s><color:red> 20</color>, "a")
note left #FF0000 : 引数変更 (ver 1.3)
activate ModuleB #00FF00
ModuleB -> ModuleB: do something()
ModuleA <-- ModuleB : response(OK)
note right
常にOKを返す
end note
note over ModuleB: 無限待ち
deactivate ModuleB
deactivate ModuleA

[-> ModuleA : loop
activate ModuleA
loop for each item
    ModuleA -> ModuleA : do something()
    break item = error
        ModuleA -> ModuleA : treatError()
    end
end
deactivate ModuleA

[-> ModuleA : ifelse
activate ModuleA
alt data < 50
    ModuleA -> ModuleA : do something()
else data < 100
    ModuleA -> ModuleA : do something()
else other
    ModuleA -> ModuleA : do something()
end
deactivate ModuleA

[-> ModuleA : opt
activate ModuleA
opt data == 100
    ModuleA -> ModuleA : do something()
end
deactivate ModuleA

[-> ModuleA : create
activate ModuleA
create ModuleC
ModuleA -> ModuleC : <create>>
ModuleC -> ModuleC : do something()
destroy ModuleC
deactivate ModuleA

[-> ModuleA : reference
ref over ModuleA, ModuleB
    Refer to
    SequenceY
end ref
deactivate ModuleA

@enduml

状態遷移図

StateMachine_CancelChattering.png

stateMachin.pu
/'
PlantUML sample
'/
@startuml
title StateMachine_CancelChattering

[*] -down-> StateOff
StateOff -down-> StateOff2On : button pushed / cnt_on = 0

StateOff2On: entry / 
StateOff2On: do / Check button status every 10msec
StateOff2On: exit / 
StateOff2On -> StateOff2On : button pushed [cnt_on < 5] / cnt_on++
StateOff2On -up-> StateOff : button released / cnt_on = 0
StateOff2On -down-> StateOn:  button pushed [cnt_on == 5] / 

StateOn -up-> StateOn2Off : button released / cnt_off = 0
StateOn2Off: entry / 
StateOn2Off: do / Check button status every 10msec
StateOn2Off: exit / 
StateOn2Off -> StateOn2Off : button released [cnt_off < 5] / cnt_off++
StateOn2Off -down-> StateOn : button pushed / cnt_off = 0
StateOn2Off -up-> StateOff:  button released [cnt_on == 5] /

@enduml
4
5
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
5