2012-08-02 18 views

Respuesta

13

Primero coloque un objeto de mensaje UML con su base conectada a su línea de vida.

A continuación, haga doble clic en la flecha (o haga clic con el botón Propiedades), y cambie el campo desplegable Tipo de mensaje a recursiva, y obtendrá algo como esto:

enter image description here

Ahora puede arrastrar el punto de anclaje verde para hacer que la flecha del Mensaje se vea como lo desea. (Una nota de precaución: parece que con un objeto de Mensaje recursivo, SÓLO puede seleccionar el objeto haciendo clic exactamente donde debería estar el punto de anclaje verde. Digo "sería" porque, por supuesto, no se puede ver realmente punto de anclaje verde cuando el objeto no está seleccionada)

Si lo desea, puede crear otro objeto UML línea de vida, y colocarlo superposición de la línea de vida existentes, así:.

extra lifeline example

esto no es No es ideal, sin embargo, porque en realidad no hay nada adjunto a esta segunda línea de vida. El objeto Mensaje recursivo no le permite elegir dónde colocar su punta de flecha, ya que se adjunta automáticamente a la línea de vida de la que se originó. Y como la segunda línea de vida no está unida a nada, si vas moviendo objetos alrededor, se quedará atrás. Pero se ve bonito, si eso es lo que buscas. :)

+0

Grandes gracias. Es interesante que la auto llamada no recursiva parezca estar ausente. – JDelage

+0

Creo que tiene una idea equivocada de "recursivo" aquí. Normalmente, cuando pensamos en la recursividad, pensamos en una "función recursiva", pero aquí, en lugar de una "función que se llama a sí misma", tenemos un "objeto que se llama a sí mismo". En este sentido, cualquier auto-llamada es por definición recursiva. – feuGene

0

Una auto llamada (o cualquier otra asociación) en UML se expresa mejor utilizando la notación de asociación estándar en lugar del mensaje. En DIA, inserte una notación de asociación de la caja de herramientas a la izquierda y agréguela a su lienzo. Luego, para hacer que conecte una clase recursivamente (a sí misma), haga doble clic en ella y haga clic en seleccionar "Autoroute" como no. Esto le permitirá configurar la ruta usted mismo y no lo limitará a la línea recta automática que se dibuja al vincular una clase consigo misma.

que terminaría con algo como esto (en este ejemplo es una representación de un nodo en una lista enlazada): enter image description here

+0

La pregunta era sobre la auto-llamada en un Diagrama de Secuencia, no en un Diagrama de Clase. –

Cuestiones relacionadas