是否有一种描述线程的局部UML方法

sip*_*wiz 30 multithreading uml

我喜欢使用UML图来描述我的软件.在大多数情况下,这些图表仅供我自己使用,我将它们用于更多涉及的代码,交互等部分,我将从中受益于将来能够回顾它们.

我发现自己做了一些不同的方法是绘制线程图.线程本质上倾向于弹出更复杂的代码片段并跟踪它们通常是我的设计文档的主要目的.

在过去,我在序列图中使用了一个符号来显示新线程的创建,但回顾一些图表,这有时在对象的生命周期(序列图所针对的)和线程的生命周期之间是模糊的.是否有更好的方法将线程合并到UML中?

sip*_*wiz 11

我设法制作了一个在绘制它时对我有意义的图表.基本前提是我用表示线程生命周期的蓝框重叠表示类实例的灰色框.它让我跟踪的主要事情是知道当我调用某些方法时我将执行哪个线程.

毫无疑问,有更好,更直观的方法来进行线程和类建模.对我而言,衡量成功的标准是我自己的图表是否在6个月后仍然给予我相同的理解水平.

  • 我使用sipwiz - UML不拥有术语"建模".我更喜欢这个图. (2认同)

Ted*_*son 10

活动,序列和状态图显示线程的行为是正确的方法.

1st :(对于vs的评论)UML中有两组图表或建模元素,静态结构,如你所说,以及行为.任何一本书都会帮助你理解分裂,通常在内容/ TOC中,另外它可以在Martin Fowler的UML Distilled的第11页上看到,在我看来,它是一个近乎真实的UML标准.

第2步:(对sipwiz的问题和评论)活动图通常不被理解为建模业务流程,但是它们可以用于此,大多数示例或简单的教程将从业务角度来理解它.

讨论您对线程建模的选择:

活动图 - 允许使用BAR和使用行来分叉和指定并发.请注意,底部的示例不是业务流程,例如.大多数人可以阅读这些,业务,管理和开发人员,但有时他们可能缺乏细节或变得混乱.

序交互图 -在同一职位,例如,你会看到序列图让你通过拳击带有标签"相提并论"并行的行为,以指定序列中并行的行为,这是非常有用的读者展示了什么方法能够或者应该叫并行地,即通过不同的线程.这是我将用于详细开发人员的方法,如围绕构建对象的讨论.

状态图 - 状态图就像活动允许通过使用BAR和使用线来实现并发.

注意:这些不会为特定线程建模并且它是精确的提升周期,因为这是实例/运行时建模级别的一部分,如果您想要澄清您的问题并且我将做出回应.我只是使用上面的一个来建模,因为除了MDA/UML专家之外没有人会打电话给你,而你没有生成一个正在运行的系统.

另外:请注意,大多数UML书籍都可以找到更多详细信息.还可以利用:http://www.jguru.com/faq/view.jsp? EID = 56322


Ric*_*dOD 8

传统上,使用Petri网以图解方式描绘了线程.Rob Martin 在UML中有一篇关于多线程的文章,您可能会发现它很有用.

更新 - 只记得您可以在活动图中表示带有分叉的线程 - 我已经设法找到解释这一点的东西.

很难找到Petri Nets的任何免费教程,但是我知道Petri网对建模并发性有好处,所以我谷歌"生产者 - 消费者Petri网"(我最喜欢的线程化的东西)并发现了这一点.

我还发现了一些幻灯片,显示Petri Nets 为信号量建模.

  • 你的"解释这个"的链接现在被破坏了 (2认同)