Ho appena iniziato a usare Dia. Sto cercando di costruire un diagramma di sequenza. Mi piacerebbe rappresentare le auto-chiamate. Come si fa in Dia? Non riesco a capirlo.Come disegnare un auto-chiamata in Dia?
Grazie.
Ho appena iniziato a usare Dia. Sto cercando di costruire un diagramma di sequenza. Mi piacerebbe rappresentare le auto-chiamate. Come si fa in Dia? Non riesco a capirlo.Come disegnare un auto-chiamata in Dia?
Grazie.
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:
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:.
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. :)
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):
La domanda riguardava l'auto-chiamata in un diagramma di sequenza, non in un diagramma di classe. –
Grande, grazie. È interessante notare che l'auto-chiamata non ricorsiva sembra mancare. – JDelage
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