如何在UML序列图中从构造函数中绘制调用?

时间:2014-11-18 18:57:28

标签: constructor uml sequence-diagram

我已经看到了多种绘制构造函数的方法,比如here下面有尾巴(函数调用),但更常见的是here没有尾巴而且没有箭头返回(有时带有标签<<create>>)。

我知道UML1和UML2之间存在差异,我不确定这是否是其中之一,但无论哪种方式我找不到任何关于如何表示方法调用的引用对象的构造函数。

编辑:下面的示例java代码。假设您的入口点为foo()。我最感兴趣的主要是如何绘制B()构造函数。

class A {
    private B b;
    public foo() {
        b = new B(this);
    }
}

class B {
    public B(A a) {
        foo();
        a.bar();
    }
}

2 个答案:

答案 0 :(得分:4)

websequencediagrams script似乎捕获了您的代码

User->A: foo
A-->>+B: <<create>>
B->B: foo
B->A: bar
B-->>A:
A-->>User:

enter image description here

您可以针对http://www.uml-diagrams.org/sequence-diagrams-reference.html

验证符号

编辑:这与Enterprise Architect

绘制的消息序列相同

enter image description here

答案 1 :(得分:2)

UML规范(2.5 beta)说明了

  

对象创建消息(messageSort等于createMessage)有一个带有空心箭头的虚线。

图17.14说明了这一点: UML 2.5 Figure 17.14 但无论如何你这样做我会模仿each operation in its own sequence diagram。 所以我会将上面的代码示例建模为:

enter image description here