类图中的线程(UML)

4

我们如何在UML图中展示一个线程被调用,并进而调用其他线程的过程。这看起来更像一个工作流。是否可以在UML中表示。

3个回答

4

1

同意@Yasin的观点,时序图可能能胜任这项工作。

活动图是另一个很适合展示工作流程的选项。并行性、线程、同步等方面无疑是其中的亮点,而在活动图中理解这些内容相对于时序图来说可能更容易。

希望对你有所帮助。


感谢@Yasin,@sfinnie。正如指出的那样,序列图和活动图都可以帮助我们表示线程交互。我开始使用类图来表示系统。但是当我到达线程类时,我不确定是否有一种方法可以在类图中表示它。虽然活动图和序列图是表示此流程的好方法,但我们如何在类图中表示这个调用机制呢? - Siva
这取决于你所说的“表示这个调用机制”的含义。你能详细说明一下吗? - sfinnie
我们有组合来表示如果父对象被销毁,则对象也会被销毁,而聚合则表示对象可以独立存在。这两种关系在类图中都用菱形箭头表示。虽然我们可以使用组合和聚合来展示线程的生命周期管理,但是否有其他表示线程的方式呢? - Siva
@Siva:在类图中我不知道有没有这样的东西。你可以将一个类定义为<<active>>,这意味着它有自己的执行线程。但是我认为这并不是你真正想要的。在领域层面上,显示类和线程之间的关系有些不寻常。你如何用文字描述你试图建模的关系?例如,从另一个例子:每个人可能拥有许多狗。你会如何编写一个类似的句子来结合你的类+线程? - sfinnie
你可能会发现这个链接很有趣。 - BobRodes

0

UML是一种具有非常结构化语法和语义的语言。 请参考http://www.omg.org/spec/UML上的UML规范。

要回答你的问题,请考虑在UML中,线程是一个活动类。实际上,UML类元类拥有一个名为isActive的布尔属性,具有所需的语义。活动类拥有一个分类器行为,该行为将自动执行每个对象的行为,一旦类被实例化即可执行。如果行为通过创建操作或交互来建模,在其中实例化其他活动类(Create action),则这在语义上类似于线程产生其他线程。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接