2011-06-14 187 views
3

我想繪製一個圖表,您可以在其中看到java程序的數據流,以及是否有一個或多個線程處理數據。用於多線程數據流的UML

序列圖不會顯示多線程,並且當您擁有超過5個不同的實體時會出現混亂。

類圖很好地顯示了關係,但數據流丟失了。

我想繪製盒子(如類/包圖)並連接它們。也許有一個盒子加倍和...之間,以表明可以有多個線程。

UML對這種數據流圖有什麼圖?

什麼編輯器對該圖有好處?如果可能的話免費軟件或開源。

回答

5

我會看看UML活動圖,以顯示多個線程及其並行執行。在通信圖上,有時您還會看到線程字母(例如A,B,C)嘗試並表示併發線程,但我幾乎總是發現這種混淆。 UML 2中有片段可能有助於顯示序列圖中的併發性,但我總是覺得這很麻煩,圖很難重構(這意味着它們很快就會過時)。

如果線程正在執行相同的任務,但並行運行,您可以在您的圖表中添加一個註釋來解釋這一點。通過這種方式,您可以專注於精確且乾淨地建模單個螺紋。

關於使用哪種工具,大多數IDE將包含某種程度的UML建模工具,我很高興使用隨Eclipse提供的基於EMF的工具。

2

取決於問題,但我可能會用活動圖去描述事件的順序:也許 http://www.agilemodeling.com/style/activityDiagram.htm

然後一組序列圖來捕獲類級別的相互作用爲每個的腳步。或者,你可以看看連續描述序列(想一想在循環中迭代一個數組),並注意迭代應該在實現中並行化。

4

序列圖確實對parallel operations and asynchronous調用都有記號,並且是顯示數據流的適當方式。

enter image description here

enter image description here

+2

不錯!這讓我想起了這個[真棒網站](http://www.websequencediagrams.com/)我曾經制作過類似的圖表 – Tom 2011-06-14 16:08:06

+0

必須增加對WSD的熱愛 – Paolo 2011-06-14 19:58:27

0

要顯示多線程,你可以用不同的顏色來顯示。

對於紅色顯示一個線程 和藍色顯示不同線程

+0

非標準的,但視覺上可以是非常具有描述性的。 – SomeWittyUsername 2012-10-27 21:21:03