2012-08-02 18 views

risposta

13

Prima posiziona un oggetto Messaggio UML con la sua base collegata alla tua linea di vita.

Quindi, fare doppio clic sulla freccia (oppure fare clic destro, Proprietà) e cambiare il tipo di messaggio campo a discesa per ricorsivo, e otterrete qualcosa di simile:

enter image description here

Ora puoi trascinare il punto di ancoraggio verde attorno per far apparire la freccia del messaggio come desideri. (Una nota di cautela: sembra che con un oggetto Messaggio ricorsivo, puoi SOLO selezionare l'oggetto facendo clic su di esso esattamente dove il punto di ancoraggio verde SAREBBE. Dico "sarebbe" perché ovviamente non puoi realmente vederlo punto verde di ancoraggio quando l'oggetto non è selezionato)

Se si desidera, è possibile creare un altro oggetto UML Lifeline, e posizionarlo sovrapposizione la linfa vitale esistente, in questo modo:.

extra lifeline example

questo isn È l'ideale, però, perché in realtà non c'è nulla di collegato a questa seconda ancora di salvezza. L'oggetto Messaggio ricorsivo non ti permette di scegliere dove attaccare la punta della freccia, perché è automaticamente collegato alla linea di vita da cui è originata. E poiché la seconda linea di vita non è attaccata a nulla, se vai a muoverti attorno agli oggetti rimarrai indietro. Ma sembra carino, se è quello che cerchi. :)

+0

Grande, grazie. È interessante notare che l'auto-chiamata non ricorsiva sembra mancare. – JDelage

+0

Penso che tu abbia sbagliato idea di "ricorsivo" qui. Tipicamente, quando pensiamo alla ricorsione, pensiamo a una "funzione ricorsiva", ma qui invece di una "funzione che si chiama", abbiamo un "oggetto che si chiama". In questo senso, ogni auto-chiamata è per definizione ricorsiva. – feuGene

0

Una chiamata di auto (o qualsiasi altra associazione) in UML è meglio espresso utilizzando la notazione Standard Association invece del messaggio uno. In DIA, inserisci una notazione di associazione dalla casella degli strumenti a sinistra e aggiungila alla tua tela. Quindi, per farlo connettere una classe in modo ricorsivo (a se stesso), fare doppio clic su di esso e fare clic su "Autoroute" come no. Questo ti permetterà di modellare da solo la rotta e non ti vincolerà alla linea retta automatica che viene disegnata quando si collega una classe a se stessa.

si finirebbe con qualcosa di simile (in questo esempio la sua rappresentazione di un nodo in una lista collegata): enter image description here

+0

La domanda riguardava l'auto-chiamata in un diagramma di sequenza, non in un diagramma di classe. –