🧩
New! Render PlantUML diagrams directly inside GitHub with our official browser extension — No server. No tokens. No tracking. Zero permissions but clipboard. — Try it out and let us know what you think!

액티비티 다이어그램

액티비티 다이어그램은 워크플로 또는 프로세스를 표현합니다. 각 단계, 그 순서, 그리고 분기와 병렬 경로를 기술하며, 업무 프로세스, 알고리즘, 시작에서 끝으로 흐르는 모든 것에 적합합니다.

PlantUML에서는 각 액티비티를 한 줄씩 작성하고, 화살표와 if, repeat, fork 같은 키워드로 제어 흐름을 표현합니다. 다이어그램은 자동으로 생성됩니다.

기존 다이어그램을 유지보수하는 경우, 이전 구문도 계속 지원되지만 새 다이어그램에는 더 이상 권장되지 않습니다.

모든 다이어그램 유형에서 사용 가능한 기능은 공통 명령어를 참조하세요.

Simple action

Activities label starts with : and ends with ;.

Text formatting can be done using creole wiki syntax.

They are implicitly linked in their definition order.

Other simple action (defined as a list)

Simple action list separated by -

Simple action list separated by *

With one level

With several levels

[Ref. GH-2376]

Start/Stop/End

You can use start and stop keywords to denote the beginning and the end of a diagram.

You can also use the end keyword.

Conditional

You can use if, then and else keywords to put tests if your diagram. Labels can be provided using parentheses.

You can use the elseif keyword to have several tests :

*[Refs. [QA-3931](https:forum.plantuml.net/3931/please-provide-elseif-structure-vertically-activity-diagrams), [issue-582](https:github.com/plantuml/plantuml/issues/582)]*

*[Refs. [QA-3931](https:forum.plantuml.net/3931/please-provide-elseif-structure-vertically-activity-diagrams), [GH-582](https:github.com/plantuml/plantuml/issues/582)]*

WARNING
 This translation need to be updated. 
WARNING

Switch and case [switch, case, endswitch]

You can use switch, case and endswitch keywords to put switch in your diagram.

Labels can be provided using parentheses.

Conditional with stop on an action [kill, detach]

You can stop action on a if loop.

But if you want to stop at the precise action, you can use the kill or detach keyword:

[Ref. QA-265]

Repeat loop

Simple repeat loop

You can use repeat and repeat while keywords to have repeat loops.

Repeat loop with repeat action and backward action

It is also possible to use a full action as repeat target and insert an action in the return path using the backward keyword.

[Ref. QA-5826]

Break on a repeat loop [break]

You can use the break keyword after an action on a loop.

[Ref. QA-6105]

Goto and Label Processing [label, goto]

⚠ It is currently only experimental 🚧

You can use label and goto keywords to denote goto processing, with:

[Ref. QA-15026, QA-12526 and initially QA-1626]

While loop

Simple while loop

You can use while and endwhile keywords to have while loop.

It is possible to provide a label after the endwhile keyword, or using the is keyword.

While loop with backward action

It is also possible to insert an action in the return path using the backward keyword.

[Ref. QA-11144]

Infinite while loop

If you are using detach to form an infinite while loop, then you will want to also hide the partial arrow that results using -[hidden]->

Parallel processing [fork, fork again, end fork, end merge]

You can use fork, fork again and end fork or end merge keywords to denote parallel processing.

Simple fork

fork with end merge

[Ref. QA-5320]

[Ref. QA-13731]

Label on end fork (or UML joinspec):

[Ref. QA-5346]

Other example

Split processing

Split

You can use split, split again and end split keywords to denote split processing.

Input split (multi-start)

You can use hidden arrows to make an input split (multi-start):

[Ref. QA-8662]

Output split (multi-end)

You can use kill or detach to make an output split (multi-end):

Notes

Text formatting can be done using creole wiki syntax.

A note can be floating, using floating keyword.

You can add note on backward activity:

[Ref. QA-11788]

You can add note on partition activity:
[Ref. QA-2398]

Colors

You can specify a color for some activities.

You can also use gradient color.
[Ref. QA-4906]

Lines without arrows

You can use skinparam ArrowHeadColor none in order to connect activities using lines only, without arrows.

Arrows

Using the -> notation, you can add texts to arrow, and change their color.

It's also possible to have dotted, dashed, bold or hidden arrows.

Simple colored arrow [link]

You can use simple colored arrow with the link keyword.

Multiple colored arrow

You can use multiple colored arrow.

[Ref. QA-4411]

Connector (or Circle)

You can use parentheses to denote connector.

Color on connector

You can add color on connector.

[Ref. QA-10077]

And even use style on Circle:

[Ref. QA-19975]

Grouping or partition

Group

You can group activity together by defining group:

Partition

You can group activity together by defining partition:

It's also possible to change partition color:

[Ref. QA-2793]

It's also possible to add link to partition:
[Ref. QA-542]

Group, Partition, Package, Rectangle or Card

You can group activity together by defining:

Swimlanes

Using pipe |, you can define swimlanes.

It's also possible to change swimlanes color.

You can add if conditional or repeat or while loop within swimlanes.

You can also use alias with swimlanes, with this syntax:

[Ref. QA-2681]

Detach or kill [detach, kill]

It's possible to remove an arrow using the detach or kill keyword:

Emoji as action (with icon stereotype)

You can use emoji as action, with the stereotype <<icon>>:

[Ref. GH-2436]

SDL (Specification and Description Language) (with SDL sterotype)

Table of SDL Shape Name

Name Stereotype syntax Deprecated syntax
Input <<input>> <
Output <<output>> >
Procedure <<procedure>> |
Load <<load>> \
Save <<save>> /
Continuous <<continuous>> }
Task <<task>> ]
Object <<object>> ]

[Ref. QA-11518, GH-1270]

SDL using stereotype (Current official form)

UML (Unified Modeling Language) Shape (with UML stereotype)

Table of UML Shape Name

Name Stereotype syntax
ObjectNode <<object>>
ObjectNode
typed by signal
<<objectSignal>> or <<object-signal>>
AcceptEventAction
without TimeEvent trigger
<<acceptEvent>> or <<accept-event>>
AcceptEventAction
with TimeEvent trigger
<<timeEvent>> or <<time-event>>
SendSignalAction

SendObjectAction
with signal type
<<sendSignal>> or <<send-signal>>
Trigger <<trigger>>

[Ref. GH-2185]

UML Shape Example using Stereotype

[Ref. GH-2185, QA-16558, GH-1659]

Complete example

Condition Style

Inside style (by default)

Diamond style

InsideDiamond (or Foo1) style

[Ref. QA-1290 and #400]

Condition End Style

Diamond style (by default)

Horizontal line (hline) style

[Ref. QA-4015]

Using (global) style

Without style (by default)

With style

You can use style to change rendering of elements.

Creole on Activity

You can use Creole or HTML Creole on Activity diagram: