How do you show instantiation in a UML Sequence Di

2019-04-04 02:00发布

问题:

How do I show that the WebServer instantiates a View and gets back control of the flow? Maybe I'm not using the right type of diagram? Thanks a bunch!

回答1:

The diagram from Ruben's answer is correct, but general UML answer is missing. It creates the other lifeline when the "create" line (dashed in this case) connects to the box/label/top of the created life line. From example: WebServer in it's action creates a View and the action done by the view creates the Widget.

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

There are also several diagrams here.

The UML 2.2 specifications (superstructure) has an example on page 474, Figure 14.11 is their canonical syntax/notation reference. And on page 495 in the notation section it states "Object creation Message has a dashed line with an open arrow." This is further defined in the UML as the message type is an enumeration called MessageSort. One value is:

"• asynchSignal - The message was generated by an asynchronous send action.createMessage - The message designating the creation of another lifeline object."



回答2:

Correct, use a "create" message to show instantiation of the object represented by the target lifeline. Here's an example from a topic in the VS 2010 Ultimate docs:

Create message on a sequence diagram http://i.msdn.microsoft.com/Dd409377.UML_Sequence(en-us,VS.100).png

UML Sequence Diagrams: Reference at http://msdn.microsoft.com/en-us/library/dd409377%28VS.100%29.aspx



回答3:

Yes you can, using a create message. Sometime it depends on the tool you are using. Anyway you just need an arrow that show the text create pointing to the object being created.