【问题标题】:uml sequence diagram: create objects in a loopuml 序列图:循环创建对象
【发布时间】:2014-03-05 13:53:09
【问题描述】:

在序列图中,我试图为创建一堆对象的循环建模。我在网上几乎没有找到关于在 SD 图中创建多个对象的信息,所以我求助于你。

类是 Deck 和 Card

卡片由 fillDeck() 创建,由 Deck 的构造函数调用(仅供参考,对象存储在 Deck 的数组列表中)。

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

我将如何对这样的事情进行建模?到目前为止,这是我的想法,但显然不完整。

希望有人可以提供帮助!谢谢!

+------+ |甲板 | +------+ | +--+--------+-------------+ |循环 8x / | +--+-----+ +---------+ | | |-------->|卡(A) | | | | +-----+----+ | +--+--------------------------+ | | +--+--------+------|------------------------+ |循环 12x / | | +--+------+ | +---------+ | | |-------------------------->|卡(B) | | | | | +----+----+ | |--+----------------------------------------+ | | | | +--+--------+-------------------------- --------+ |循环 3x / | | | +--+-----+ | | +---------+ | | |---------------------------------------------------->|卡(C) | | | | | | +----+----+ | |--+---------------------------------------------- --------+ | | | |

【问题讨论】:

  • 为什么你觉得它“明显不完整”?
  • 我只有 3 条生命线,而我有 23 个对象。请注意,拥有 23 条生命线会非常混乱,但现在的情况,我不相信它正确地表示创建了更多对象
  • 哦,我太傻了,我忘记了:+1 欢迎来到 StackOverflow!

标签: loops uml sequence-diagram createobject


【解决方案1】:

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

而且您不需要在一张图表上显示所有消息序列逻辑。在一张 SD 中,您通常会显示一张 Interaction。或者也许其中一些,如果它们很简单的话。

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

UML 标准 2.5。图 17.25 - 序列图元模型元素概览

【讨论】:

  • 谢谢!将焦点从对象本身转移到它们交换的消息上是有意义的。毕竟,为了显示对象/类之间的关系,我们已经有了 DCD 和其他
  • @QualiosRex 当然。顺便说一句,如果您想单独分析对象,可以使用 Object diag。为了彻底分析一两个类,有一个复合结构图。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-11-29
  • 2015-02-23
  • 2016-11-11
  • 1970-01-01
相关资源
最近更新 更多