20
UML2 Diagrammi di Interazione Andrea Polini Ingegneria del Software Corso di Laurea in Informatica (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 1 / 19

UML2 - Diagrammi di Interazione - Unicamdidattica.cs.unicam.it/lib/exe/fetch.php?media=didattica:...UML2 Diagrammi di Interazione Andrea Polini Ingegneria del Software Corso di Laurea

  • Upload
    others

  • View
    2

  • Download
    0

Embed Size (px)

Citation preview

  • UML2Diagrammi di Interazione

    Andrea Polini

    Ingegneria del SoftwareCorso di Laurea in Informatica

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 1 / 19

  • Comportamento dinamico delle classi

    Dopo aver definito un modello dei casi d’uso e realizzato un modello dianalisi abbiamo bisogno di rispondere alle seguenti domande:

    Come le classi devono interagire per realizzare il comportamentodefinito da un caso d’uso?Quali messaggi devono essere scambiati?

    Bisogna considerare che:In un contesto di sviluppo iterativo il lavoro condotto portatipicamente a modifiche a manufatti precedentemente definitiÈ importante mantenere i manufatti allineati e coerentino dettagli eccessivi quali parametri specifici delle operazioni eloro tipo

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 2 / 19

  • Realizzazione dei casi d’uso

    Realizzazione dei casi d’uso è attività che coinvolge:Diagramma delle classi di analisiDiagrammi di InterazioneRequisiti SpecialiRaffinamento dei casi d’uso

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 3 / 19

  • Realizzazione dei casi d’uso

    I principali diagrammi utilizzati nella concretizzazione di un caso d’usosono i diagramma di interazione. Due entità fondamentalicostituiscono questo tipo di diagrammi:

    linee di vitamessaggi

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 4 / 19

  • Linee di vita

    Servono a rappresentare un elemento di una classe all’interno diun’interazione. Consta di:

    NomeTipoSelettore

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 5 / 19

  • Messaggi

    Rappresentano tipo di interazione tra due linee di vita. Unacomunicazione si può risolvere in:

    chiamata di un’operazionecreazione/distruzione di un’istanzainvio di un segnale

    La ricezione di un messaggio attiva il focus di controllo per la linea divita che riceve il messaggio stesso. Il focus risulterà dunque annidato.

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 6 / 19

  • Tipologie di messaggi

    UML 2 fornisce la possibilità di specificare le seguenti tipologie dimessaggi:

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 7 / 19

  • Diagrammi di interazione

    Diagrammi di sequenzaDiagrammi di ComunicazioneDiagrammi di Interazione GeneraleDiagrammi di Temporizzazione

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 8 / 19

  • Diagrammi di Sequenza

    Sono la forma di diagramma di interazione più usata nelle fasidell’analisi e realizzazione dei casi d’uso.

    gli oggetti che interagiscono vengono rappresentati da rettangolicon “coda”messaggi vengono rappresentati tra le linee di vitail focus viene rappresentato da un rettangolo sottile sulla linea divitaè possibili rappresentare messaggi annidatiè possibile rappresentare invarianti di statoè possibile rappresentare vincoli di durata

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 9 / 19

  • Esempio - Linee di vita, messaggi ed attivazioni

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 10 / 19

  • Esempio -Linee di vita, messaggi ed attivazioni

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 11 / 19

  • Esempio - Linee di vita, messaggi ed attivazioni

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 12 / 19

  • Esempio invarianti di stato e vincoli di durata

    Stato

    Condizione o situazione durante la vita diun oggetto in cui esso soddisfa unacondizione, esegue un’attività o aspetta unevento.

    Transizione di stato

    un oggetto cambia il suo stato a seguitodell’esecuzione di un’attività, oall’occorrenza di un evento. Larappresentazione di tali aspetti puòavvenire utilizzando i diagrammi dellamacchine a stati che sono associabili aqualsiasi classificatore

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 13 / 19

  • Esempio invarianti di stato e vincoli di durata

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 14 / 19

  • Frammenti combinati

    È possibile rappresentare sequenze complesse attraverso l’uso diframmenti combinati. Un frammento combinato ha un operatore, uno opiù operandi e zero o più condizioni di guardia. La sintassi per talicostrutti è esemplificata da:

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 15 / 19

  • Frammenti combinati - Tipologie Operatori

    opt: sequenza opzionale se condizione vera

    alt: sequenze alternative. Eseguito operando con guardia vera. Guardie devono esseremutamente esclusive

    loop: ciclo (prossima slide)

    break: uscita da un operando

    ref: riferimento ad altro diagramma

    par: parallelismo

    critical: esecuzione atomica

    seq: sequenzializzazione debole

    strict: sequenzializzazione forte

    neg: iterazioni non valide

    ignore: elenca messaggi omessi

    consider: solo messaggi inclusi

    assert: unico comportamento accettabile in quel punto dell’esecuzione

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 16 / 19

  • loop

    La sintassi dei loop è data da: loop min,max [condizione] Il significato è:

    Esegui il loop un numero minimo di volte min continua l’esecuzione finchécondizione è vera per un numero massimo di max-min volte.

    Tipici loop e loro rappresentazione:

    while (true) {body}

    for i=n to m {body}

    while (espressioneBooleana) {body}

    repeat {body} while (espressioneBooleana)

    forEach oggetto della collezione {body}

    forEach oggetto della classe {body}

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 17 / 19

  • loop

    La sintassi dei loop è data da: loop min,max [condizione] Il significato è:

    Esegui il loop un numero minimo di volte min continua l’esecuzione finchécondizione è vera per un numero massimo di max-min volte.

    Tipici loop e loro rappresentazione:

    while (true) {body}

    for i=n to m {body}

    while (espressioneBooleana) {body}

    repeat {body} while (espressioneBooleana)

    forEach oggetto della collezione {body}

    forEach oggetto della classe {body}

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 17 / 19

  • Diagrammi di comunicazione

    Si focalizzano sugli aspetti strutturali dell’interazione mostrando comele linee di vita sono collegate tra loro

    Il potere espressivo è inferiore a quello dei diagrammi di sequenza èpossibile comunque esprimere iterazioni e ramificazioni

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 18 / 19

  • System Sequence Diagrams - SSD

    Ristorante 2.0

    (Ingegneria del Software) UML 2 – Realizzazione dei Casi d’Uso IdS@UNICAM 19 / 19