【问题标题】:How to model parallel threads in a UML sequence diagram如何在 UML 序列图中建模并行线程
【发布时间】:2018-03-01 08:00:01
【问题描述】:

如何对序列图中的对象执行操作的两个并行线程建模?

【问题讨论】:

  • 两个线程的两条生命线。考虑对目标对象使用异步调用

标签: multithreading uml sequence-diagram


【解决方案1】:

sequence diagram 中,生命线代表交互中的个人参与者。因此,您在线程之间共享的对象应该在图中出现一次且仅出现一次。

您还可以用生命线表示与您的共享对象交互的每个线程对象。它可以是直接的线程实例化,也可以是在两个线程的上下文中创建的多个对象。

但这还不够。原则上,与您的对象交互的顺序由消息的垂直顺序指示。那么如何证明交互可能是并行发生的呢?

为了表示并行性,您可以使用运算符par 引入的combined fragment。以图形方式(参见链接),组合片段在序列图中表示为一个加框区域,平行序列由水平虚线分隔(每个切片将对应一个执行线程。

P.S:此示例显示 2 个线程,但您可以通过添加更多水平虚线来添加更多线程。

【讨论】:

  • 呃,那三个泛化关系是什么?为什么右转之后执行了这么长时间?
  • @qwerty_so 确实如此。使用在线工具在旅途中制作的快速而肮脏的图表只是为了说明par。幸运的是,我可以找回图表并以图形方式对其进行编辑。当然:同步消息的纯箭头,返回消息的虚线。然而在右边,这些不是返回后很长的激活,而是一个创建消息,它看起来像一个返回消息,尽管它具有完全不同的语义。
  • 回归当然是一种创造。现在其余的都很好,这也很清楚:-)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
  • 1970-01-01
  • 1970-01-01
  • 2019-08-21
  • 1970-01-01
相关资源
最近更新 更多