Skip to main content

Activity Diagram 活动图

活动图(英語:activity diagram)是工作流的图形化表示。活动图主要由活动和动作构成,也可以支持分支选择、迭代、并行。

维基百科

简介

活动图参考了 PlantUML 的 Activity Diagram Beta 语法

简单动作

简单动作行以 : 开始,以 ; 结尾,之间为描述文字。

activityDiagram
  :动作 1;
  :动作 2;

start/end 关键字

使用 startstop 关键字来表示一个图的开始和结束。

activityDiagram
  start
  :纸上得来终觉浅;
  :绝知此事要躬行;
  end

条件语句

使用关键词 ifthenelse 指定条件分支。说明文字放在括号中。

以下是几种常见语法:

  • if (...) then (...)
activityDiagram
  if (diagram registered ?) then
    :get implementation;
  else (no)
    :print error;
  endif

While 循环语句

使用关键词 whileendwhile 可指定 While 循环语句。

同时,可选择使用 is (...) 来指定条件满足时的说明文字。

activityDiagram
  start
  while (data available)
    :read data;
    :generate diagrams;
  endwhile

  while (met another test) is (yes)
    :do something;
  endwhile
  end

Repeat 循环语句

使用关键词 repeatrepeatwhile 可指定 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 语句

使用 switchcase 关键字可组成分支选择语句。

activityDiagram
  switch (test ?)
  case ( condition A )
    :Text 1;
  case ( condition B )
    :Text 2;
  case ( condition C )
    :Text 3;
  endswitch

分组

使用分组关键词和花括号来实现分组,目前支持的分组关键字有:

  • group
  • partition

同时,也可选择在分组关键字后添加颜色 #\d{6} 来指定背景色。

activityDiagram
  start
  partition Init {
    :Read config;

    group #88bbf4 "Inner Process" {
      :Init themes;
      :Init symbols;
    }
  }
  end

并行(fork)

使用 fork / forkagain / endfork / endmerge 来实现并行处理的实例。

  1. 并行的 fork
activityDiagram
  start
  fork
    :Action 1;
  forkagain
    :Action 2;
  forkagain
    :Action 3;
  endfork
  end
  1. 带有 endmerge
activityDiagram
  start
  fork
    :Action 1;
  forkagain
    :Action 2;
  endmerge
  end
  1. 配合条件语句一起使用
activityDiagram
  start
  if (multiprocessor?) then
    fork
      :Action 1;
    forkagain
      :Action 2;
    endfork
    else (monoproc)
      :Action 1;
      :Action 2;
    endif
  end

添加备注

在动作语句之后使用 @note,以及带上方位指示词和参与者来添加便签样式的备注。

  1. 方位词 leftright 表示在参与者的左/右添加备注
  2. 可添加多行备注,在结尾使用 @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