uml序列图:在循环中创建对象

时间:2014-03-05 13:53:09

标签: loops uml sequence-diagram createobject

在序列图中,我试图模拟一个创建一堆对象的循环。我在网上找到了关于在SD图中创建多个对象的小信息,所以我转向你。

课程是甲板和卡片

卡片由fillDeck()创建,由Deck的构造函数调用(FYI对象存储在Deck的arraylist中)。

有许多类型的卡具有不同的属性。假设我想要制作8张A型卡,12张B型和3张C型

我如何建模这样的东西?这是我到目前为止的想法,但它显然是不完整的。

希望有人可以帮忙!谢谢!

    +------+
    | Deck |
    +------+
       |
    +--+-------+--------------+
    | loop 8x /               |
    +--+-----+   +----------+ |
    |  |-------->| Card(A)  | |
    |  |         +-----+----+ |
    +--+----------------------+
       |               |
    +--+--------+------|-----------------------+
    | loop 12x /       |                       |
    +--+------+        |          +---------+  |
    |  |------------------------->| Card(B) |  |
    |  |               |          +----+----+  |
    |--+---------------------------------------+
    |  |               |               |
    +--+-------+----------------------------------------------+
    | loop 3x /        |               |                      |
    +--+-----+         |               |        +---------+   |
    |  |--------------------------------------->| Card(C) |   |
    |  |               |               |        +----+----+   |
    |--+------------------------------------------------------+
       |               |               |             |

1 个答案:

答案 0 :(得分:1)

“序列图通过关注交换的消息序列及其在生命线上的相应OccurrenceSpecifications来描述交互。” (UML标准)生命线由一个对象定义。但这并不意味着您必须将所有对象保留在生命线中。您应该只显示这些生命线,即交换您正在考虑的消息。

您无需在一个图表上显示所有消息序列逻辑。在一个SD中,通常显示一个Interaction。或者可能是其中的一小部分,如果它们很简单的话。

因此,如果您的SD显示一个逻辑概念,那么它是正确的。如果某些对象之间会有另一个交互,那么您将为此交互绘制另一个SD,并且只有对象参与此第二次交互。

UML标准2.5。图17.25-序列图中元模型元素的概述

enter image description here