我想知道如何在通信图类似表达:
foreach (User user in UsersCatalog) {
list.add(user.getId());
}
其实我有类似如下
替代文字http://img691.imageshack.us/img691/9213/semttuloyc.png
(=用户用户)
但你会发现它并不代表好,我做这样一个循环的事实。
我怎样才能做到这一点?
我想知道如何在通信图类似表达:
foreach (User user in UsersCatalog) {
list.add(user.getId());
}
其实我有类似如下
替代文字http://img691.imageshack.us/img691/9213/semttuloyc.png
(=用户用户)
但你会发现它并不代表好,我做这样一个循环的事实。
我怎样才能做到这一点?
只要定义getId() : int
有星号(*):
1.4 *getId()
对于给定的例子。
你为什么不补充将此图与序列图? 序列图是更好地表达事件之间的时间关系,有一个预定义的符号来表达循环。
作为尔迪说,用于描述循环序列图更好。 原因是,你想描述使用消息传递通信对象之间的相互作用。 用于此目的的UML定义不同交互图着眼于相互作用的不同方面。 序列图集中于对象(生命线)之间传递的消息的序列,所以是有意义的捕捉在一个循环中发送消息 - 序列。 通信图着眼于通信对象,这些对象发送某些消息给对方。 这些图不是模拟循环是有用的,因为他们只描绘了发送什么样的消息,并以何种顺序。 但是如果你使用一个良好的目的,通信图,只是想包括循环,你在你的代码有,你应该遵循elysiums建议,但记住,那个星号意味着将有消息数目不详,所以你应该添加表达式(理想OCL),其将捕获的循环的条件。 欲了解更多信息,请查询那些: http://www.smartdraw.com/resources/tutorials/uml-collaboration-diagrams/ http://en.wikipedia.org/wiki/Unified_Modeling_Language#Interaction_diagrams