uml - 在活动图中用什么符号表示活动必须在两天内完成?
问题描述
客户可以立即或稍后为订单付款。当订单是后付款时,我想在活动图中绘制一个表示客户必须在两天内付款的符号。如果客户在两天内没有付款,系统会将订单标记为已取消。
在这个附加的图像中,第一个泳道是给演员Customer的,第二个泳道是给演员System的。我创建了一个时间事件符号,表示客户必须在 48 小时内付款。然后,我将合并/分支节点放在客户泳道上,以表明客户是必须付款的参与者。
关于当前图表,我想到的问题是有人可能误解了时间事件表示法。有人可能会将这种符号理解为系统将始终等待 48 小时才能将订单标记为已取消或等待发货的标志。实际上,一旦客户付款,系统就会将订单标记为等待发货。但是,如果客户在 48 小时后仍未付款,系统会将订单标记为已取消。
我怎样才能画出更好的图表来表示上述描述?
解决方案
接受时间事件操作(例如,带有单个TimeEvent 触发器的 AcceptEventAction )不能有输入流,因此您的图表无效,然后无法显示您想要的内容。
决策后的流程保护必须写在括号 ( []
) 之间。
我将合并/分支节点放在客户泳道上,以表明客户是必须付款的参与者。
但这是由系统独立于客户检查的,所以这是错误的/不清楚
创建订单的两个动作不在客户泳道中的事实对我来说也是错误/不清楚
在操作创建具有等待付款状态的订单后,您可以创建一个专用于客户当前订单的新计时器。如果客户在 2 天前付款,相应的计时器将被删除。
但这会产生很多计时器,您还可以在fifo中记住当前命令更多超时,并且您有一个独特的计时器。如果客户在 2 天前付款,则相应订单将从fifo中删除。
- 这个独特的计时器可以定期检查记忆的订单,但即使什么都不做,池也会唤醒系统。
- 可以在记住第一个订单时启动该独特的计时器,然后当系统唤醒时,它会管理太旧的订单,然后如果 fifo 变空,则计时器将停止,否则它会根据第一个(较旧的) 在先进先出顺序
推荐阅读
- javascript - 尝试在 Django 应用程序的 js 文件中导入 vue.js 时出现“未捕获的语法错误:无法在模块外使用 import 语句”
- sql - 加入两个表以获取匹配的记录和不匹配的记录
- html - 反应中文本输入的动态颜色
- javafx - 如何在 JavaFX (JFoenix) 中显示类似 Android 的吐司消息?
- kubernetes - 我可以在不通过 Terraform 声明任何服务的情况下通过 Terrafrom 设置 Kubernetes Ingress 吗?
- python - Python Pandas,根据另一列中的值进行日期时间舍入
- bash - 为什么从 automator 或 AppleScript 启动 shell 脚本与从终端启动时得到不同的结果?
- ansible - 带有特殊变量的 Ansible 查找插件
- android - 获取没有字符串名称的jsonarray
- sql - 将数据从一个表传输到另一个表