Skip to content

Activity diagram

conditiononetwoPartitionyesfirst?Action Ayessecond?noAction BAction CNoteRepeatnoAgain?yesParallel XParallel YSwitchAction iAction iiAction iiiFloating noteSecond lineBlockRectangleKillEndDetachCase iCase iiiCase iiSwimlane 1Swimlane 2
conditiononetwoPartitionyesfirst?Action Ayessecond?noAction BAction CNoteRepeatnoAgain?yesParallel XParallel YSwitchAction iAction iiAction iiiFloating noteSecond lineBlockRectangleKillEndDetachCase iCase iiiCase iiSwimlane 1Swimlane 2

@startuml

|Swimlane 1|
start

  if (condition) then (one)
  partition "Partition" {
    if (first?) then (yes)
      :Action A;
    elseif (second?) then (yes)
      :Action B;
    else (no)
      :Action C;
    endif
  }

  repeat
    :Repeat;
    note right: Note
  repeat while (Again?) is (yes) not (no)

  fork
    :Parallel X;
  fork again
    :Parallel Y;
  end merge

  switch (Switch)
  case (Case i)
    :Action i;
  case (Case ii)
    :Action ii;
  case (Case iii)
    :Action iii;
  endswitch

else (two)
  -[dotted]->

  |Swimlane 2|
  :Block; <<procedure>>

  floating note right
    Floating note
    ----
    Second line
  end note

  :Rectangle; <<task>>

  split
    :Kill;
    kill
  split again
    :End;
    end;
  split again
    :Detach;
    (Z)
    detach
  end split
endif

|Swimlane 1|

stop
@enduml