【问题标题】:Is an activity calling action in an activity considered finished only when the called activity terminates and reaches its activity end node?只有当被调用的活动终止并到达其活动结束节点时,才认为活动中的活动调用动作已完成?
【发布时间】:2019-06-08 13:25:16
【问题描述】:

假设我们有两个活动;活动_1 和活动_2 在活动_1 中存在一个调用活动_2 的动作(action_A),只有当被调用的活动_2 终止并到达其活动结束节点时,动作_A 才被视为完成/完成?还是 action_A 一旦启动 activity_2 并且两个 Activity 独立运行(activity_1 继续运行,而 activity_2 也运行)就认为已完成?

【问题讨论】:

  • 如果你想出相应的广告,那肯定会有所帮助。
  • 实际上这与特定的实际广告无关。这个问题实际上是假设性的。一旦我可以访问我的电脑,我可以画一个广告来更好地澄清问题。无论如何,布鲁诺已经明白我的意思并提供了非常详细的答案。谢谢托马斯!
  • 即使对于假设的问题,图表也是有意义的(因为 UML 提供图表,它旨在帮助传输消息)。下次请记住这一点。布鲁诺不像我那么急躁。但很高兴看到他明白了这一点!顺便提一句。你说的是活动调用,这只是布鲁诺解释的更多故事......
  • 你说得对。以后我会记住这一点的。再次感谢!

标签: uml activity-diagram


【解决方案1】:

如果我很清楚您的操作是呼叫操作

来自formal/17-12-05 § 16.3.3.1 第 451 页:CallAction 可以直接或通过操作调用导致同步或异步行为调用。

  • 如果调用是同步的 (isSynchronous =true),则操作的执行将在调用的行为的执行正常或其他方式完成之前完成。 (如果 Behavior 执行没有正常完成,而是引发了异常,则该异常会从 CallAction 传播出去(请参阅第 15.5.3 和 16.13 小节,了解异常及其处理方式)。

  • 如果调用是异步的 (isSynchronous =false),则只要调用了 Behavior,Action 的执行就会完成。当异步调用完成时,执行包含 CallAction 独立于和同时执行被调用的行为,包括处理在行为执行时发生的任何异常情况。

只有当被调用的activity_2终止并到达其活动结束节点时才认为action_A完成/完成?

是的,如果调用是同步的(更多的例外情况)

或者,一旦 action_A 启动 activity_2 并且两个 Activity 独立运行(activity_1 继续运行,而 activity_2 也运行),是否认为 action_A 完成

在这种情况下,调用是异步的,因此一旦调用了 activity_2,动作的执行就完成了,而无需等待 activity_2 的结束

【讨论】:

  • 非常感谢您的详细回答和参考。这对我来说很有意义!感谢您抽出时间来解决这个问题。谢谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多