Activity Diagram

Table of Contents

简单活动

使用 (*) 作为活动图的开始点和结束点。

使用 (*top) 强制开始点位于图示的顶端。

@startuml
(*) --> "First Activity"
"First Activity" --> (*)
@enduml

231017-简单活动.png

箭头上的标签

使用 [] 定义标签。

@startuml
(*) --> "First Activity"
--> [You can put also labels] "Second Activity"
--> (*)
@enduml

231017-箭头上的标签.png

改变箭头方向

  • -down-> (default arrow)
  • -right-> or ->
  • -left->
  • -up->
@startuml
(*) -up-> "First Activity"
-right-> "Second Activity"
--> "Third Activity"
-left-> (*)
@enduml

231017-改变箭头方向.png

分支

if/then/else

@startuml
(*) --> "Initialization"

if "Some Test" then
        -->[true] "Some Activity"
        --> "Another activity"
        -right-> (*)
else
        ->[false] "Something else"
        -->[Ending process] (*)
endif
@enduml

231017-分支.png

有时需要重复定义同一个活动:

@startuml
(*)  --> "check input"
If "input is verbose" then
        --> [Yes] "turn on verbosity"
        --> "run command"
else
        --> "run command"
Endif
-->(*)
@enduml

231017-重复定义活动.png

更多分支

@startuml
(*) --> if "Some Test" then
        --> [true] "action 1"
        if "" then
                -> "action 3" as a3
        else
                if "other test" then
                        -left-> "action 5"
                else
                        --> "action 6"
                endif
        endif

else
        -> [false] "action 2"
endif

a3 --> if "last test" then
        --> "action 7"
else
        -> "action 8"
endif
@enduml

231017-更多分支.png

同步

使用 === code === 显示同步条。

@startuml
(*) --> ===B1===
--> "Parallel Activity 1"
--> ===B2===

===B1=== -> "Parallel Activity 2"
--> ===B2===

--> (*)
@enduml

231017-同步.png

长的活动描述

使用 \n 来定义跨越多行的描述。

可以用 as 关键字给活动起一个短的别名。

@startuml
(*) -left-> "this <size:20>activity</size>
is <b>very</b> <color:red>long2</color>
and defined on several lines
that contains many <i>text</i>" as A1

-up-> "Another activity\n on several lines"

A1 --> "Short activity <img:sources/sourceforge.jpg>"
@enduml

231017-长活动描述.png

TODO 图片无法解析。

注释

plantuml 语法的注释是 ' 单引号。

note leftnote rightnote top or note bottom 给活动添加注释。

如果要给开始点添加注释,只需要吧注释的定义放在活动图最开始的地方即可。

也可以使用关键字 end note 定义多行注释。

@startuml
'这是一个注释
(*) --> "Some Activity"
note right: This activity has to be defined
"Some Activity" --> (*)
note left
        This note is on
        several lines
end note
@enduml

231017-注释.png

分区

partition 定义分区,还可以设置背景色。

@startuml

partition Conductor {
    (*) --> "Climbs on Platform"
    --> === S1 ===
    --> Bows
}

partition Audience #LightSkyBlue {
    === S1 === --> Applauds
}

partition Conductor {
        Bows --> === S2 ===
        --> WavesArmes
        Applauds --> === S2 ===
}

partition Orchestra #CCCCEE {
        WavesArmes --> Introduction
        --> "Play music"
}

@enduml

231017-分区.png

显示参数

skinparam 修改字体和颜色。

@startuml

skinparam backgroundColor #AAFFFF
skinparam activity {
  StartColor red
  BarColor SaddleBrown
  EndColor Silver
  BackgroundColor Peru
  BackgroundColor<< Begin >> Olive
  BorderColor Peru
  FontName Impact
}

(*) --> "Climbs on Platform" << Begin >>
--> === S1 ===
--> Bows
--> === S2 ===
--> WavesArmes
--> (*)

@enduml

231017-显示参数.png

这个字体是很粗的字体,所以设置字体也成功了。

八边形活动

使用 skinparam activityShape octagon 命令将活动的外形改为八边形。

@startuml
'Default is skinparam activityShape roundBox
skinparam activityShape octagon

(*) --> "First Activity"
"First Activity" --> (*)

@enduml

231017-八边形活动.png