首页 > 解决方案 > 在活动图中用什么符号表示活动必须在两天内完成?

问题描述

客户可以立即或稍后为订单付款。当订单是后付款时,我想在活动图中绘制一个表示客户必须在两天内付款的符号。如果客户在两天内没有付款,系统会将订单标记为已取消

在这个附加的图像中,第一个泳道是给演员Customer的,第二个泳道是给演员System的。我创建了一个时间事件符号,表示客户必须在 48 小时内付款。然后,我将合并/分支节点放在客户泳道上,以表明客户是必须付款的参与者。

活动图图片

关于当前图表,我想到的问题是有人可能误解了时间事件表示法。有人可能会将这种符号理解为系统将始终等待 48 小时才能将订单标记为已取消等待发货的标志。实际上,一旦客户付款,系统就会将订单标记为等待发货。但是,如果客户在 48 小时后仍未付款,系统会将订单标记为已取消

我怎样才能画出更好的图表来表示上述描述?

标签: umlactivity-diagram

解决方案


接受时间事件操作(例如,带有单个TimeEvent 触发器的 AcceptEventAction 不能有输入流,因此您的图表无效,然后无法显示您想要的内容。

决策后的流程保护必须写在括号 ( []) 之间。


我将合并/分支节点放在客户泳道上,以表明客户是必须付款的参与者。

但这是由系统独立于客户检查的,所以这是错误的/不清楚

创建订单的两个动作不在客户泳道中的事实对我来说也是错误/不清楚


在操作创建具有等待付款状态的订单后,您可以创建一个专用于客户当前订单的新计时器。如果客户在 2 天前付款,相应的计时器将被删除。

但这会产生很多计时器,您还可以在fifo中记住当前命令更多超时,并且您有一个独特的计时器。如果客户在 2 天前付款,则相应订单将从fifo中删除。

  • 这个独特的计时器可以定期检查记忆的订单,但即使什么都不做,池也会唤醒系统。

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述

  • 可以在记住第一个订单时启动该独特的计时器,然后当系统唤醒时,它会管理太旧的订单,然后如果 fifo 变空,则计时器将停止,否则它会根据第一个(较旧的) 在先进先出顺序

在此处输入图像描述

在此处输入图像描述

在此处输入图像描述


推荐阅读