Corso di Laurea Specialistica in Ingegneria Informatica Corso di Ingegneria del Software A. A. 2008 - Diagrammi di Interazione
Definizioni Diagrammi di Interazione una interazione specifica i dettagli della comunicazione che dovrebbe aver luogo per realizzare un particolare compito una comunicazione corrisponde ad un messaggio, che definisce i ruoli (delle istanze) di chi lo invia e di chi lo riceve, e all azione che causerà la comunicazione Due viste dell interazione tra oggetti Diagrammi di collaborazione enfatizzano le relazioni strutturali tra gli oggetti e sono utilizzati principalmente in fase di analisi Diagrammi di sequenza enfatizzano la sequenza temporale dei messaggi scambiati tra gli oggetti Due forme di modellazione Forma descrittore considera i ruoli delle istanze dei classificatori Forma istanza considera le effettive istanze dei classificatori 2
Diagramma di Collaborazione Definizione descrive come una operazione o un classificatore, ad esempio un caso d uso, è realizzato da un insieme di classificatori e associazioni usate in uno specifico modo è un grafico che mostra o una collaborazione, che contiene un insieme di ruoli che devono essere rivestiti dalle istanze dei classificatori e dalle loro relazioni, o un istanza o un insieme di istanze di collaborazioni che contengono una collezione di istanze e relazioni Osservazione la descrizione di un caso d uso è rivolta ai casi d uso e alle associazioni in generale la descrizione di un operazione include gli argomenti e le variabili locali dell operazione, così come le associazioni ordinarie legate al classificatore che possiede l operazione 3
Elementi di un diagramma di collaborazione Oggetti Messaggi da un oggetto verso un altro oggetto da un oggetto verso sé stesso (Auto-Delega) Numeri di sequenza Iterazione e Ramificazione Oggetto Messaggio 1: disponibilita( ) : Cliente : Stampante 2: quantità disponibile il '2' indica l'ordine nella sequenza di messaggi 4
Esempio in forma descrittore Il punto di partenza è il diagramma delle classi Tratto da UML e Unified Process 5
Esempio in forma istanza Tratto da UML e Unified Process 6
Esempio 7
Multioggetti Un multioggetto rappresenta un insieme di oggetti È un metodo per rappresentare le collezioni di oggetti nei diagrammi di collaborazione I messaggi inviati a un multioggetto vengono ricevuti e processati dall'insieme e non da un suo singolo oggetto UML non dice quali siano i metodi supportati da un mutlioggetto, perché in fase di progettazione ogni multioggetto sarà sostitutito con un'istanza di una classe contenitore. Per inviare un mesaggio ad una specifica istanza presente nel multioggetto occorre individuare l'istanza specifica quindi inviare il messaggio a quell'istanza. 8
Multioggetti - Esempi 9
Iterazione - Esempio 10
Ramificazioni Esempio Le ramificazioni possono essere modellate semplicemente aggiungendo delle condizioni davanti ai messaggi Il messaggio viene inviato solo se la condizione risulta vera 11
Oggetti attivi - Esempio Ogni thread o processo concorrente viene modellato come un oggetto attivo, che incapsula un proprio flusso di controllo Gli oggetti attivi eseguono in concorrenza e hanno ciascuno un proprio focus di controllo 12
Esempio: Richiedere in prestito un libro 1: richiesta(isbn, userid) 2: prelievo(libroisbn, utent eid) : UtenteBiblioteca Libro : Ric hiesta : Controller 6: New(userId) 9: prestare(libro) : Utente 7: prestito() 10: inserisciprestito(utente,libro) 3: inprestito() 8: si/no 5: copie presenti 4: quantità() : DataBanker : Libro 13
Definizione Diagramma di sequenza grafico che mostra un interazione o un insieme di interazioni tra due o più oggetti mediante una sequenza temporale di azioni Proprietà Può specificare nodi decisionali e iterazioni. Modella il comportamento dinamico del sistema, evidenziando in particolare l ordine temporale dello scambio di messaggi. I diagrammi di sequenza appartengono alla Vista dei casi d uso e alla Vista Logica: es. possono modellare le singole istanze di ogni caso d uso (scenari): ogni scenario di base è modellato da un singolo diagramma di sequenza ogni scenario alternativo può essere modellato in uno dei due seguenti modi un singolo diagramma di sequenza all interno del diagramma di sequenza dello scenario base 14
Elementi di un Diagramma di sequenza Tempo Oggetti Lifeline (periodo di vita) degli oggetti Messaggi da un oggetto verso un altro oggetto da un oggetto verso sé stesso (Auto-Delega) Valore di Ritorno (di un messaggio) Iterazione e Ramificazione Focus di controllo 15
Messaggi 16
Auto-Delega 17
Valore di ritorno : Cliente : Stampante disponibilita( ) quantità disponibile È possibile indicare il valore restituito da un messaggio (mostrato da una linea tratteggiata) 18
Distruzione di un oggetto 19
Iterazione 20
Iterazione UML 2.x 21
Ramificazione 22
Stati di un oggetto - Esempio 23
Esempio: Richiedere in prestito un libro Libro èl'unico oggetto preesistente, tutti gli altri sono creati : UtenteBiblioteca Libro : Richiesta : Controller richiesta(isbn, userid) è preferibile omettere il costruttore quando non overloaded : Libro prelievo(libroisbn, utenteid) : DataBanker inprestito() : Utente quantità() copie presenti New(userId) prestito() prestare(libro) si/no inserisciprestito(utente,libro) 24
AU.CO.GE Realizzazione Caso d uso d Visualizza Help in linea Utente Selezionatore Interfaccia Utente Application Controller File Controller L'utente richiede dal menù principale la funzionalità di visualizzazione dell'help 1: Selezione Help 5: Visualizzazione Help 2: VisualizzaHelp() 4: ComposizioneFinestra() 3: AccessoAiFile() L'utente richiede dalla finestra di dialogo visualizzata la funzionalità di help 6: Selezione() 9: Visualizzazione Help 7: VisualizzaHelp() 8: ComposizioneFinestra() 8: AccessoAiFile() 25