【问题标题】:How do you show instantiation in a UML Sequence Diagram?您如何在 UML 序列图中显示实例化?
【发布时间】:2011-01-08 19:56:10
【问题描述】:

如何证明 WebServer 实例化了一个 View 并重新获得对流的控制?也许我没有使用正确类型的图表? 非常感谢!

【问题讨论】:

    标签: uml sequence-diagram


    【解决方案1】:

    正确,使用“create”消息来显示由目标生命线表示的对象的实例化。以下是 VS 2010 Ultimate 文档中某个主题的示例:

    UML 序列图:参考http://msdn.microsoft.com/en-us/library/dd409377%28VS.100%29.aspx

    【讨论】:

    • 出于兴趣,当同一对象的多个实例同时存在时,您如何显示?例如,对象 A 的实例让我们称它为 A1 已创建并存在一段时间,当它存在时,另一个实例已创建 A2 您是否只使用另一个激活栏并使它们重叠?
    • 为什么Order 在创建之前就存在了?好像错了。
    【解决方案2】:

    Ruben 的答案中的图表是正确的,但缺少一般的 UML 答案。当“创建”线(在本例中为虚线)连接到已创建生命线的框/标签/顶部时,它会创建另一条生命线。例如:WebServer 在它的操作中创建了一个视图,视图完成的操作创建了小部件。

    -----
    | a |
    -----
      |
      []---->-----
      []     | b |
      |      -----
      |        |
    

    还有几张图here.

    UML 2.2 规范(上层结构)在第 474 页上有一个示例,图 14.11 是它们的规范语法/符号参考。在第 495 页的符号部分,它声明 “对象创建消息有一条带空心箭头的虚线。” 这在 UML 中进一步定义,因为消息类型是称为 MessageSort 的枚举。一个值是:

    "• asynchSignal - 消息是 由异步发送生成 action.createMessage - 消息 指定另一个人的创造 生命线对象。”

    【讨论】:

    • +1 感谢您的链接,Ambler 不是很棒吗?不幸的是,我不明白最后两段,但你回答了这个问题!谢谢..
    【解决方案3】:

    是的,您可以使用create 消息。有时这取决于您使用的工具。无论如何,您只需要一个箭头来显示文本 create 指向正在创建的对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多