UML作业第四次:分析系统,绘制活动图

一. PlantUML活动图

(1)开始/结束指令

我们使用关键字startstop/end表示图示的开始和结束。

@startuml                            
start
:UML;
:Plant **UML**;
stop
@enduml

@startuml
start
:UML;
:Plant **UML**;
end
@enduml

UML作业第四次:分析系统,绘制活动图_第1张图片UML作业第四次:分析系统,绘制活动图_第2张图片

 

(2)条件判断

我们使用关键字if、thenelse设置分支测试,使用关键字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

 UML作业第四次:分析系统,绘制活动图_第3张图片

 

(3)重复循环

我们使用关键字repeatrepeatwhile进行重复循环。

@startuml
start
repeat
  :test 1;
  :test 2;
repeat while (test 3)
stop
@enduml

UML作业第四次:分析系统,绘制活动图_第4张图片

 

 

(四)While循环

我们使用关键字whileend while进行while循环,并且在关键字endwhile和is后添加标注。

@startuml
start
while (This is a test) is (this also a test)
  :re-test; 
endwhile (test)
  :close test;
stop
@enduml

 

UML作业第四次:分析系统,绘制活动图_第5张图片

 

(五)并行处理

我们使用关键字fork、fork againend 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

 

 UML作业第四次:分析系统,绘制活动图_第6张图片

 

(六)组合(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

 

 UML作业第四次:分析系统,绘制活动图_第7张图片

 

(八)分离(detach)

我们使用关键字detach移除箭头。

@startuml
:start;
 fork
   :foo1;
   :foo2;
 fork again
   :foo3;
   detach
 endfork
 if (foo4) then
   :foo5;
   detach
 endif
 :foo6;
 detach
 :foo7;
 stop
@enduml

 

 UML作业第四次:分析系统,绘制活动图_第8张图片

 

二. 超市购物

超市购物系统中的活动主体有三个:顾客|收银员|收款机

设置三个相对应活动分区

超市购物流程如下:

  1. 顾客进入超市选择所需商品,将商品提交给收银员;
  2. 收银员询问顾客是否是会员。是则向顾客索要会员卡,将会员卡扫描进系统并对会员进行认证;
  3. 收银员逐一扫描顾客所选商品的商品条形码,收款机接收商品条形码,累加商品金额;
  4. 扫描完全部商品后收银员根据收款机上的金额收款,并通过收款机打印售货单;
  5. 收银员将售货单和商品提交给顾客,本次购物流程结束。

三. 脚本程序

 

@startuml
|顾客|
start
:进入超市;
:选择商品;
:提交商品;
|#AntiqueWhite|收银员|
if (是否是会员) then (no)
    :扫描商品条形码;
else (yes)
    :扫描会员卡;
  |#AntiqueWhite|收款机|
  if (会员卡是否有效) then (yes)
      :提示会员卡有效;
  else (no) 
      :提示会员卡无效;
  endif
  |收银员|
  :扫描商品条码;
endif
|收款机|
:接收商品条形码;
:增加商品金额;
|收银员|
  while (是否还有商品) is (yes)
    |收款机|
    :接收商品条形码;
    :累加商品金额;
  endwhile (no)
  :显示商品金额;
|收银员|
:输出累计金额并请求顾客付款;
|顾客|
:付款;
|收银员|
:收款并核对;
:提交商品;
|顾客|
:接收商品;
:离开;
end
@enduml

四. 活动图

 UML作业第四次:分析系统,绘制活动图_第9张图片

 

你可能感兴趣的:(UML作业第四次:分析系统,绘制活动图)