一. PlantUML活动图
(1)开始/结束指令
我们使用关键字start
和stop/end
表示图示的开始和结束。
@startuml
start
:UML;
:Plant **UML**;
stop
@enduml
@startuml
start
:UML;
:Plant **UML**;
end
@enduml
(2)条件判断
我们使用关键字if、
then
和else
设置分支测试,使用关键字elseif
设置多个分支测试(标注文字放在括号中)。
@startuml
start
if (This is a test) then (yes)
:yes;
else (no)
:no;
stop
endif
if (test A) then (yes)
:test A;
elseif (test B) then (yes)
:test B;
stop
elseif (test C) then (yes)
:test C;
elseif (test D) then (yes)
:test D;
else (nothing)
:Text else;
endif
end
@enduml
(3)重复循环
我们使用关键字repeat
和repeatwhile
进行重复循环。
@startuml
start
repeat
:test 1;
:test 2;
repeat while (test 3)
stop
@enduml
(四)While循环
我们使用关键字while
和end while
进行while循环,并且在关键字endwhile和is
后添加标注。
@startuml
start
while (This is a test) is (this also a test)
:re-test;
endwhile (test)
:close test;
stop
@enduml
(五)并行处理
我们使用关键字fork、
fork again
和end fork
表示并行处理。
@startuml
start
if (This is a test) then (yes)
fork
:Test 1;
fork again
:Test 2;
end fork
else (no)
:Test 1;
:Test 2;
endif
@enduml
(六)组合(grouping)
我们通过定义分区(partition)把多个活动组合(group)在一起。
@startuml
start
partition Test1 {
:Tap 1;
:Tap 2;
}
partition Test2 {
:Tap 3;
:Tap 4;
}
stop
@enduml
(七)泳道(Swimlanes)
我们使用管道符|
来定义泳道,并且还可以改变泳道的颜色。
@startuml
|Swimlane1|
start
:foo1;
|#AntiqueWhite|Swimlane2|
:foo2;
:foo3;
|Swimlane1|
:foo4;
|Swimlane2|
:foo5;
stop
@enduml
(八)分离(detach)
我们使用关键字detach
移除箭头。
@startuml
:start;
fork
:foo1;
:foo2;
fork again
:foo3;
detach
endfork
if (foo4) then
:foo5;
detach
endif
:foo6;
detach
:foo7;
stop
@enduml
二. 超市购物
超市购物系统中的活动主体有三个:顾客|收银员|收款机
设置三个相对应活动分区
超市购物流程如下:
- 顾客进入超市选择所需商品,将商品提交给收银员;
- 收银员询问顾客是否是会员。是则向顾客索要会员卡,将会员卡扫描进系统并对会员进行认证;
- 收银员逐一扫描顾客所选商品的商品条形码,收款机接收商品条形码,累加商品金额;
- 扫描完全部商品后收银员根据收款机上的金额收款,并通过收款机打印售货单;
- 收银员将售货单和商品提交给顾客,本次购物流程结束。
三. 脚本程序
@startuml
|顾客|
start
:进入超市;
:选择商品;
:提交商品;
|#AntiqueWhite|收银员|
if (是否是会员) then (no)
:扫描商品条形码;
else (yes)
:扫描会员卡;
|#AntiqueWhite|收款机|
if (会员卡是否有效) then (yes)
:提示会员卡有效;
else (no)
:提示会员卡无效;
endif
|收银员|
:扫描商品条码;
endif
|收款机|
:接收商品条形码;
:增加商品金额;
|收银员|
while (是否还有商品) is (yes)
|收款机|
:接收商品条形码;
:累加商品金额;
endwhile (no)
:显示商品金额;
|收银员|
:输出累计金额并请求顾客付款;
|顾客|
:付款;
|收银员|
:收款并核对;
:提交商品;
|顾客|
:接收商品;
:离开;
end
@enduml
四. 活动图