微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在活动图中,什么符号表示一项活动必须在两天内完成?

如何解决在活动图中,什么符号表示一项活动必须在两天内完成?

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

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

Activity Diagram Picture

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

如何绘制更好的图表来表示上述描述?

解决方法

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

Decision 之后的流程守卫必须写在方括号 ([]) 之间。


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

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

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


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

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

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

enter image description here

enter image description here

enter image description here

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

enter image description here

enter image description here

enter image description here

,

根据 @qwerty_so's comment,我决定使用可中断区域。这个区域的中断触发是系统接受支付。这是新图表。

Revised Activity Diagram

编辑

根据 @bruno's comments@Axel Scheithauer's comments,我裁剪了我的活动图的更完整的图像。 An Accept Time Event Action seems to be able to have incoming edges/flows,与@bruno 的评论相反。此外,我认为不完整的截图是导致我的图表混乱的原因。

我还修改了我的图表,使可中断区域的信号来自接受时间事件操作而不是接受事件操作。

图 1: Diagram

图2: Diagram

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐


Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其他元素将获得点击?
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。)
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbcDriver发生异常。为什么?
这是用Java进行XML解析的最佳库。
Java的PriorityQueue的内置迭代器不会以任何特定顺序遍历数据结构。为什么?
如何在Java中聆听按键时移动图像。
Java“Program to an interface”。这是什么意思?