分析超市购物流程,并画出活动图

第一部分:活动图语法

(1)简单活动图:活动标签(activity label)以冒号开始,以分号结束。活动默认安装它们定义的顺序就行连接。

1 @startuml
2 :Hello world;
3 :This is on defined on
4 several **lines**;
5 @enduml

(2)开始/结束:你可以使用关键字startstop表示图示的开始和结束。

1 @startuml
2 start
3 :Hello world;
4 :This is on defined on
5 several **lines**;
6 stop
7 @enduml
@startuml
start
:Hello world;
:This is on defined on
several **lines**;
end
@enduml

(3)条件语句:在图示中可以使用关键字ifthenelse设置分支测试。标注文字则放在括号中。

@startuml

start

if (Graphviz installed?) then (yes)
  :process all\ndiagrams;
else (no)
  :process only
  __sequence__ and __activity__ diagrams;
endif

stop

@enduml
@startuml
start
if (condition A) then (yes)
  :Text 1;
elseif (condition B) then (yes)
  :Text 2;
  stop
elseif (condition C) then (yes)
  :Text 3;
elseif (condition D) then (yes)
  :Text 4;
else (nothing)
  :Text else;
endif
stop
@enduml

(4)重复循环:你可以使用关键字repeatrepeatwhile进行重复循环。

@startuml

start

repeat
  :read data;
  :generate diagrams;
repeat while (more data?)

stop

@enduml

(5)while循环:可以使用关键字whileend while进行while循环。还可以在关键字endwhile后添加标注,还有一种方式是使用关键字is

@startuml

start

while (data available?)
  :read data;
  :generate diagrams;
endwhile

stop

@enduml
@startuml
while (check filesize ?) is (not empty)
  :read file;
endwhile (empty)
:close file;
@enduml

(6)并行处理:你可以使用关键字forkfork againend fork表示并行处理。

@startuml

start

if (multiprocessor?) then (yes)
  fork
    :Treatment 1;
  fork again
    :Treatment 2;
  end fork
else (monoproc)
  :Treatment 1;
  :Treatment 2;
endif

@enduml

(7)注释:

@startuml

start
:foo1;
floating note left: This is a note
:foo2;
note right
  This note is on several
  //lines// and can
  contain <b>HTML</b>
  ====
  * Calling the method ""foo()"" is prohibited
end note
stop

@enduml

(8)箭头:

使用->标记,你可以给箭头添加文字或者修改箭头颜色。同时,你也可以选择点状 (dotted),条状(dashed),加粗或者是隐式箭头

@startuml
:foo1;
-> You can put text on arrows;
if (test) then
  -[#blue]->
  :foo2;
  -[#green,dashed]-> The text can
  also be on several lines
  and **very** long...;
  :foo3;
else
  -[#black,dotted]->
  :foo4;
endif
-[#gray,bold]->
:foo5;
@enduml

(9)连接器(Connector):可以使用括号定义连接器。

@startuml
start
:Some activity;
(A)
detach
(A)
:Other activity;
@enduml

(10)组合(grouping):通过定义分区(partition),你可以把多个活动组合(group)在一起。

@startuml
start
partition Initialization {
    :read config file;
    :init internal variable;
}
partition Running {
    :wait for user interaction;
    :print information;
}

stop
@enduml

(11)分离(detach):可以使用关键字detach移除箭头。

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

(12)特殊领域语言(SDL):通过修改活动标签最后的分号分隔符(;),可以为活动设置不同的形状。

@startuml
:Ready;
:next(o)|
:Receiving;
split
 :nak(i)<
 :ack(o)>
split again
 :ack(i)<
 :next(o)
 on several line|
 :i := i + 1]
 :ack(o)>
split again
 :err(i)<
 :nak(o)>
split again
 :foo/
split again
 :i > 5}
stop
end split
:finish;
@enduml

第二部分:分析《超市购物》系统

  • 超市购物系统拥有三个部分:顾客、收银员、收款机。
  • 顾客进入商店,选择自己所要购买的商品,并把选好的商品拿到收银台交给收银员。
  • 收银员询问顾客是否是会员,如果是会员,索要顾客的会员卡,把会员卡扫描进系统并对会员卡进行验证。
  • 然后逐一扫描顾客所选商品的条形码,收款机边接收商品条码,边累加商品金额。
  • 扫描完商品信息后,收银员根据收款机上显示的商品金额收货款,然后通过收款机打印售货单。
  • 最后收银员把售货单和商品交给顾客,本次购物过程结束。

第三部分:《超市购物》活动图

 1 @startuml
 2 start
 3 :选择商品;
 4 :商品交给收银员;
 5 if (是否是会员) then (会员)
 6   :扫描会员卡;
 7         if (是否有效) then (无效)
 8         :提示会员卡无效;
 9     else (有效)
10         :提示会员卡有效;
11     endif
12             :扫描商品条码;
13
14 else (非会员)
15 :扫描商品条码;
16 endif
17 :接收商品条码;
18 :统计商品金额;
19 while(还有商品否?) is (有)
20   :扫描商品条码;
21   endwhile (无)
22     :交付货款;
23 :接受货款;
24 :打印售货单;
25 :货单及货品交给顾客;
26 :接受货单及货品;
27
28
29 stop
30 @enduml

原文地址:https://www.cnblogs.com/Lilith404/p/10798617.html

时间: 2024-10-01 01:03:47

分析超市购物流程,并画出活动图的相关文章

分析工厂采购系统,画出顺序图

第一部分:顺序图语法 (1)简单示例:你可以用->来绘制参与者之间传递的消息, 而不必显式地声明参与者.你也可以使用 --> 绘制一个虚线箭头.另外,你还能用 <- 和 <--,这不影响绘图,但可以提高可读性. 注意:仅适用于时序图,对于其它示意图,规则是不同的. 1 @startuml 2 Alice -> Bob: Authentication Request 3 Bob --> Alice: Authentication Response 4 5 Alice -&

灵悟礼品网上专卖店——画出E-R图

一.小组成员: 洪雪意(产品负责人) 陈淑筠(Master) 二.组内人员任务情况 计划完成的任务的第三个模块:分析并建立数据库 已完成的任务: 任务的第三个模块: 陈淑筠(完成任务1):画出商品资料.顾客资料E—R图 洪雪意(完成任务2):画出管理员资料.订单资料.订单明细E—R图 正在进行的任务: 任务的第三个模块: 陈淑筠(负责任务3):新建商品资料表.顾客资料表 洪雪意(负责任务4):新建管理员资料表.订单资料表.订单明细表 任务面板: 三.分析情况 陈淑筠:画出商品资料.顾客资料E—R

如何画出甘特图——2013版Excel

学习了这久,这还是我第一次接触甘特图.现在来说说用excel画甘特图. 理论: 甘特图,也称为条状图(Bar chart).是在1917年由亨利·甘特开发的,其内在思想简单,基本是一条线条图,横轴表示时间,纵轴表示活动(项目),线条表示在整个期间上计划和实际的活动完成情况.它直观地表明任务计划在什么时候进行,及实际进展与计划要求的对比. 管理者由此极为便利地弄清一项任务(项目)还剩下哪些工作要做,并可评估工作是提前还是滞后,亦或正常进行.是一种理想的控制工具.其中甘特图的含义有三个: 1.以图形

学AXURE画出原型图,把你的设计展示出来

下载地址:http://www.axure.com Axure是原型图设计工具,Axure比PS简单,会AXURE一般有两种岗位,产品经理.交互设计师. 当然,想做好上面两岗位,还要会 需求分析挖掘.交互理念.交互设计.产品管理.协调沟通 . AxureRP Pro7.0 从入门到精通 教学视频: http://www.elsyy.com/course/lesson-8203?-147303.html 知乎的讨论: https://www.zhihu.com/question/19892861

UML 活动图

内容路线 •活动图概述 活动图概述 •活动图和交互图是UML中对系统动态方面建模的两种主要形式 •交互图强调的是对象到对象的控制流,而活动图则强调的是从活动到活动的控制流 •活动图是一种表述过程基理.业务过程以及工作流的技术.它可以用来对业务过程.工作流建模,也可以对用例实现甚至是程序实现来建模 •UML 2.0而言,去除了“活动图是状态图的一种特例”这一规定 •如何阅读活动图 阅读简单活动图 活动图的主要元素 •初始节点和活动终点:用一个实心圆表示初始节点,用一个圆圈内加一个实心圆来表示活动终

架构师必备技能:教你画出一张合格的技术架构图

当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手.删了又来? 如何用一张图描述我的系统,并且让产品.运营.开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意…… 如果有同样的困惑,本文将介绍一种画图的方法论,来让架构图更清晰. 先厘清一些基础概念 1.什么是架构? 架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策. 架构是

如何画出一张合格的技术架构图?

当我们想用一张或几张图来描述我们的系统时,是不是经常遇到以下情况: 对着画布无从下手.删了又来? 如何用一张图描述我的系统,并且让产品.运营.开发都能看明白? 画了一半的图还不清楚受众是谁? 画出来的图到底是产品图功能图还是技术图又或是大杂烩? 图上的框框有点少是不是要找点儿框框加进来? 布局怎么画都不满意…… 如果有同样的困惑,本文将介绍一种画图的方法论,来让架构图更清晰. 先厘清一些基础概念 1.什么是架构? 架构就是对系统中的实体以及实体之间的关系所进行的抽象描述,是一系列的决策. 架构是

如何在论文中画出漂亮的插图?

知乎用户的回答(1259票)]: 强烈推荐 Python 的绘图模块 matplotlib: python plotting .画出来的图真的是高端大气上档次,低调奢华有内涵~ 适用于从 2D 到 3D,从标量到矢量的各种绘图.能够保存成从 eps, pdf 到 svg, png, jpg 的多种格式.并且 Matplotlib 的绘图函数基本上都与 Matlab 的绘图函数名字都差不多,迁移的学习成本比较低.开源免费.如图所示(题目描述中的图在最后): (以下图片均引用自 Thumbnail

你的UML第一张图是用例图么?(1)——活动图为开端

前言: 如果你的UML图第一章还是用例图请你继续看下去:如果你不知道业务分析图和活动图的关系,请你继续看下去:如果你的机房无论是重构还是合作出现遗漏功能(我重构的时候就把操作员工作记录查询给漏了)请你继续看下去. 一.需求分析的误区 事实上,我机房合作是做了很久很久,事实上代码我们早就敲完了,但是我还是坚持不去结束项目,原因很简单,我想通过机房真正的对于软工有所了解和体会.机房合作的时候我犯了一个致命的错误,我是按照功能分析需求的.举个例子: 机房有一个操作员工作查询记录的功能,我当时只是草草幻