Activity Diagram 活动图
活动图(英語:activity diagram)是工作流的图形化表示。活动图主要由活动和动作构成,也可以支持分支选择、迭代、并行。 维基百科
简介
活动图参考了 PlantUML 的 Activity Diagram Beta 语法。
简单动作
简单动作行以 : 开始,以 ; 结尾,之间为描述文字。
activityDiagram :动作 1; :动作 2;
start/end 关键字
使用 start 和 stop 关键字来表示一个图的开始和结束。
activityDiagram start :纸上得来终觉浅; :绝知此事要躬行; end
条件语句
使用关键词 if, then 和 else 指定条件分支。说明文字放在括号中。
以下是几种常见语法:
if (...) then (...)
activityDiagram
  if (diagram registered ?) then
    :get implementation;
  else (no)
    :print error;
  endif
While 循环语句
使用关键词 while 和 endwhile 可指定 While 循环语句。
同时,可选择使用 is (...) 来指定条件满足时的说明文字。
activityDiagram
  start
  while (data available)
    :read data;
    :generate diagrams;
  endwhile
  while (met another test) is (yes)
    :do something;
  endwhile
  end
Repeat 循环语句
使用关键词 repeat 和 repeatwhile 可指定 Repeat 循环语句。
activityDiagram
  start
  repeat
    :read data;
    :generate diagrams;
  repeatwhile (data available ?)
  end
activityDiagram
  start
  repeat :prepare for each loop;
    :read data;
    :generate diagrams;
  repeatwhile (there is more data ?) is (alright then) not (nope)
  end
Switch/Case 语句
使用 switch 和 case 关键字可组成分支选择语句。
activityDiagram
  switch (test ?)
  case ( condition A )
    :Text 1;
  case ( condition B )
    :Text 2;
  case ( condition C )
    :Text 3;
  endswitch
分组
使用分组关键词和花括号来实现分组,目前支持的分组关键字有:
grouppartition
同时,也可选择在分组关键字后添加颜色 #\d{6} 来指定背景色。
activityDiagram
  start
  partition Init {
    :Read config;
    group #88bbf4 "Inner Process" {
      :Init themes;
      :Init symbols;
    }
  }
  end
并行(fork)
使用 fork / forkagain / endfork / endmerge 来实现并行处理的实例。
- 并行的 fork
 
activityDiagram
  start
  fork
    :Action 1;
  forkagain
    :Action 2;
  forkagain
    :Action 3;
  endfork
  end
- 带有 
endmerge 
activityDiagram
  start
  fork
    :Action 1;
  forkagain
    :Action 2;
  endmerge
  end
- 配合条件语句一起使用
 
activityDiagram
  start
  if (multiprocessor?) then
    fork
      :Action 1;
    forkagain
      :Action 2;
    endfork
    else (monoproc)
      :Action 1;
      :Action 2;
    endif
  end
添加备注
在动作语句之后使用 @note,以及带上方位指示词和参与者来添加便签样式的备注。
- 方位词 
left和right表示在参与者的左/右添加备注 - 可添加多行备注,在结尾使用 
@end_note结束 
activityDiagram
  start
  :Some action;
  @note right: 右边的注释
  if (diagram registered ?) then
    :get implementation;
  else (no)
    :print error;
  endif
  @note left
  左边的
  多行注释
  @end_note
  end
为箭头添加文字
在动作语句下一行可以使用箭头标记语法来指定箭头文字。
目前只支持单行文字。
-> [说明文字];
activityDiagram start :行动 1; -> 行动说明文字; :行动 2; end
覆盖设置
可以使用 @param 指令覆盖图表的部分设置。
可设置项的说明请见 Config page.
activityDiagram
  @param actionBackground #61afef
  @param textColor #fff
  @param noteTextColor #purple
  @param edgeColor #143C9A
  @param edgeType curved
  @param {
    keywordBackground #143C9A
    labelTextColor #143C9A
  }
  start
  partition Init {
    :Read config;
    @note right: comment
  }
  while (data available) is (yes)
    :read data;
  endwhile
  end