UML第四次作业

. PlantUML活动图

1)开始/结束指令

 

@startuml                            

start

:UML;

:Plant **UML**;

stop

@enduml

 

@startuml

start

:UML;

:Plant **UML**;

end

@enduml、

 

 

 

 

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

 

 


3)重复循环

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

@startuml

start

repeat

  :test 1;

  :test 2;

repeat while (test 3)

stop

@enduml

 

 

 

 

(四)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

 

 

 

 

 

(五)并行处理

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

 

 

 

 

 

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

 

 

 

 

 

. 超市购物

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

设置三个相对应活动分区

超市购物流程如下:

  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

 

. 活动图

 

 

 

 

 

posted @ 2019-05-07 11:38  lynn-lz  阅读(283)  评论(0编辑  收藏  举报