[英]How to express loops in Communication Diagrams?
我想知道如何在通信圖中表達如下:
foreach (User user in UsersCatalog) {
list.add(user.getId());
}
我實際上有類似以下的東西
替代文字http://img691.imageshack.us/img691/9213/semttuloyc.png
(Utilizador =用戶)
但是你會注意到它並不代表我正在做類似循環的事實。
我怎么能做到這一點?
只需使用星號(*)定義getId() : int
:
1.4 *getId()
對於給定的例子。
為什么不用序列圖補充這個圖? 序列圖更好地表達事件之間的時間關系,並具有表達循環的預定義表示法。
正如Jordi所說,對於描述循環序列圖更好。 原因是您想要描述使用消息傳遞進行通信的對象之間的交互。 為此,UML定義了不同的交互圖,側重於交互的不同方面。 序列圖側重於在對象(生命線)之間傳遞的消息序列,因此捕獲循環序列中的消息是有意義的。 通信圖集中於通信對象,它們相互發送某些消息。 這些圖對於建模循環沒有用,因為它們只描述了發送的消息類型和順序。 但是,如果您將通信圖用於一個好的目的並且只想在代碼中包含循環,則應遵循elysiums建議,但請記住,星號表示將有未知數量的消息,因此您應該添加表達式(理想情況下是OCL)將捕獲循環的條件。 有關更多信息,請參閱: http : //www.smartdraw.com/resources/tutorials/uml-collaboration-diagrams/ http://en.wikipedia.org/wiki/Unified_Modeling_Language#Interaction_diagrams
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.