Top Banner
Istituto di Scienza e Tecnologie dell'Informazione “A. Faedo” Software Engineering Laboratory Sequence Diagrams Sequence Diagrams Antonino Sabetta [email protected]
62

Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

Mar 17, 2020

Download

Documents

dariahiddleston
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

Istituto di Scienza e Tecnologie dell'Informazione “A. Faedo”Software Engineering Laboratory

Sequence DiagramsSequence Diagrams

Antonino Sabetta

[email protected]

Page 2: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Nota sul copyrightNota sul copyright

Il materiale presentato in queste slide è basato sul documento di specifica dello standard UML 2.2

(Superstructure) e sul testo UML2 Toolkit e su altro materiale di pubblico dominio (ma potenzialmente coperto da copyright) reperito sul Web. Da queste fonti sono state prese tutte le figure e gli esempi

di questa presentazione.

Resta inteso che questo materiale è reso disponibile unicamente per fini didattici e solo ai frequentanti del corso UML

presso il CNR-ISTI di Pisa.

Page 3: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Le lezioni precedenti (in una slide)Le lezioni precedenti (in una slide)

» Progettare un sistema partendo da cosa deve fare

» La descrizione di cosa deve fare è guidata da scenari tipici di interazione tra attore e sistema

» La modellazione di tali scenari di interazione, inizialmente usa linguaggio naturale

Page 4: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Le lezioni precedenti (in una Le lezioni precedenti (in una slide ...o due)slide ...o due)

» Da questa modellazione iniziale si continua a dettagliare la specifica del problema (il cosa) e si inizia ad esplorare lo spazio delle soluzioni possibili (il come)

» Gli activity diagram, concentrandosi sui passi necessari a svolgere una funzionalità richiesta al sistema, sono un buon aiuto per questa esplorazione

Page 5: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Una mappa per orientarci - 1Una mappa per orientarci - 1

» Diagrammi UML per descrivere:» struttura statica del sistema

» structure diagrams

» comportamento del sistema» behavior diagrams» interaction diagrams

Page 6: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Una mappa per orientarci - 2Una mappa per orientarci - 2

» STUCTURE DIAGRAMS» class diagram» object diagram» component diagram» deployment diagram» composite structure diagram» package diagram

Page 7: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Una mappa per orientarci - 3Una mappa per orientarci - 3

» BEHAVIOUR DIAGRAMS» state machine diagram» activity diagram» use case diagram» interaction diagrams

» sequence diagram» communication diagram» interaction overview diagram» timing diagram

Page 8: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Interaction Diagrams- 1Interaction Diagrams- 1

» Una famiglia di diagrammi» Focalizzati sull'interazione tra elementi del

sistema (o tra attori e sistema)

» Una veloce rassegna:» Communication diagram

» Scambio di messaggi, enfasi sulla struttura interna degli oggetti

» Timing diagrams» Enfasi sulla durata dei behaviour

Page 9: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Interaction Diagrams- 2Interaction Diagrams- 2

» Sequence diagram» Scambio di messaggi, uso di lifeline visualizzare

l'asse temporale e la sequenza degli scambi

» Interaction overview diagram» Usa un insieme di sequence diagram come

elementi di comportamento che sono combinati usando la notazione dell'activity diagram

Page 10: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

In questa lezioneIn questa lezione

» Ci concentriamo sui sequence diagram» Con un rapido cenno (solo usando esempi)

agli altri interaction diagram

» Notazione e semantica di base» Esempi

» Linee guida pratiche per descrivere use case con sequence diagram

» Qualche indicazione pratica» Esempi/esercizi

Page 11: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

sequencesequence diagram, in sintesidiagram, in sintesi

» mostrano lo scambio di messaggi tra oggetti» Illustrano in che modo un insieme di oggetti

interagiscono l'uno con l'altro » esprimono un possibile comportamento di

interazione tra più elementi» (elemento è un attore oppure un oggetto)

» visualizzano l'ordine temporale (parziale) dei messaggi

Page 12: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

sequencesequence diagram, in sintesidiagram, in sintesi

» adatti per:» descrivere la realizzazione di use-case» la modellazione di comportamenti visibili

dall'esterno dell'oggetto

» includono elementi per il controllo del flusso di esecuzione (fragments)

» Due assi:» Asse orizzontale:

» insieme di elementi che comunicano

» Asse verticale:» tempo

Page 13: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Notazione di baseNotazione di base

Page 14: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Notazione di baseNotazione di base

» Il diagramma è racchiuso in un riquadro.

» In alto a sinistra si indica il nome del diagramma, preceduto dall'indicazione sd

Page 15: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Notazione di baseNotazione di base

» Rettangolo indica una istanza» Non necessariamente

identificata in modo esplicito

» Lifeline: il tempo scorre dall'alto al basso

Page 16: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Notazione di baseNotazione di base

» Attivazione di un oggetto: il rettangolo posto lungo la lifeline indica che l'oggetto è attivo

Page 17: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Notazione di baseNotazione di base

» Scambio di messaggi» Messaggio sincrono» Messaggio asincrono» Creazione di un oggetto» Ricezione di messaggio

(con mittente non specificato)

» Invio di messaggio (con destinatario non specificato)

» Ritorno (da invocazione sincrona)

Page 18: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Notazione di baseNotazione di base

Page 19: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

RiepilogoRiepilogo

Page 20: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Creazione e distruzione di oggettiCreazione e distruzione di oggetti

Page 21: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Rappresentare alternativeRappresentare alternative

Page 22: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Rappresentare iterazioniRappresentare iterazioni

Page 23: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Comporre scenariComporre scenari

Page 24: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Esempio di sequence diagramEsempio di sequence diagram

Page 25: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Esprimere vincoliEsprimere vincolisul tempo di rispostasul tempo di risposta

Page 26: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Regioni parallele e regioni criticheRegioni parallele e regioni critiche

Page 27: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Continuazione di scenari - Continuazione di scenari - 11

Page 28: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Continuazione di scenari - Continuazione di scenari - 22

Page 29: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Sovrapposizione diSovrapposizione diExecution OccurrenceExecution Occurrence

Page 30: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Confrontare Sequence DiagramConfrontare Sequence Diagrame Activity Diagram - 1e Activity Diagram - 1

» Entrambi possono essere usati per descrivere realizzazioni di casi d'uso

» Activity diagram: enfasi sulle azioni compiute per realizzare un behaviour

» Sequence diagram: enfasi sullo scambio di messaggi tra elementi del sistema o tra attori e sistema

Page 31: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Confrontare Sequence DiagramConfrontare Sequence Diagrame Activity Diagram - 2e Activity Diagram - 2

» Usando varianti “avanzate” delle rispettive sintassi, è in teoria possibile usare i due diagrammi in modo (quasi) equivalente» Nota: la scelta del diagramma giusto resta

fondamentale per esprimere in modo naturale, intuitivo, non contorto, il comportamento del sistema

Page 32: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Punti di forza dei sequence Punti di forza dei sequence diagramdiagram

» Adatti a rappresentare scenari che hanno un» grande numero di messaggi scambiati» numero consistente di entità che

comunicano

» Offrono un supporto naturale per il raffinamento iterativo» Una interazione che inizialmente prevede

solo due entità (attore e un oggetto) può essere man mano raffinata per includere ulteriori elementi del sistema

Page 33: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Piccola parentesi diPiccola parentesi dimetodologia spicciola metodologia spicciola - 1- 1

» Da use case a sequence diagram

» Un sequence diagram per use-case» Partire da un sequence di base, con un

solo attore e un solo oggetto» L'oggetto rappresenta l'intero sistema, così

come lo vede l'attore, dall'esterno» Punto di partenza: black-box

Page 34: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Piccola parentesi diPiccola parentesi dimetodologia spicciola metodologia spicciola - 2- 2

» Un messaggio dall'attore al sistema con cui il caso d'uso viene attivato

» Trattare il caso base, in modo “ottimistico”» Tralasciare eccezioni e ogni volta che ci

sono scelte, descrivere solo ciò che accade nel caso “positivo”

» Ulteriori dettagli possono essere aggiunti in seguito (descrivendo frammenti alternativi)

Page 35: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Piccola parentesi diPiccola parentesi dimetodologia spicciola metodologia spicciola - 3- 3

Page 36: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Piccola parentesi diPiccola parentesi dimetodologia spicciola metodologia spicciola - 4- 4

» Quali oggetti/entità mettere nel sequence diagram?» Un attore che attiva il caso d'uso» Un oggetto che si occupa della

presentazione (oggetto “boundary”)» Un oggetto che si occupa di coordinare

l'attività svolta dal sistema (oggetto “control”)

» Un oggetto responsabile della rappresentazione/gestione/memorizzazione dei dati (oggetto “entity”)

Page 37: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Piccola parentesi diPiccola parentesi dimetodologia spicciola metodologia spicciola - 5- 5

» Queste regole non sono la soluzione universale, e l'esperienza suggerisce eccezioni, ma...

» ...se non si da dove mettere le mani, le semplici regole delle slide precedenti sono già un ottimo punto di partenza...

Page 38: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Page 39: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Altri diagrammi di interazioneAltri diagrammi di interazione

» Nelle prossime slide, qualche esempio di» Communication diagram» Interaction overview diagram» Timing diagram

Page 40: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Communication diagramCommunication diagram

Page 41: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Interaction overviewInteraction overview

Page 42: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

interaction overview diagraminteraction overview diagram

» è un activity diagram dove i nodi possono essere:» sequence diagrams» communication

diagrams» interaction overview

diagrams

Page 43: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Timing diagramTiming diagram

Page 44: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Un rapido riepilogo...Un rapido riepilogo...

» ...e qualche puntualizzazione

» Punto di partenza per la realizzazione del sistema:» Informazioni fornite dall'esperto del

dominio/committente» Esperienza di chi fa l'analisi

» Tipicamente questa esperienza non è specifica del dominio...

Page 45: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Un rapido riepilogo...Un rapido riepilogo...

» Inizialmente il sistema è una scatola nera (e ignota) descritta dall'esterno, in termini di» cosa ci si aspetta che essa faccia...» ...quando un attore ne attiva una

funzionalità

» La funzionalità è di interesse diretto per l'attore (non descrive quindi operazioni interne al sistema, alle quali l'attore non è interessato direttamente)

» In questa fase è importante cosa, non come

Page 46: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Un rapido riepilogo...Un rapido riepilogo...

» In un secondo momento bisogna aprire la scatola e capire cosa c'è dentro (o meglio, cosa bisogna metterci dentro, visto che la stiamo costruendo noi..)

» Iniziamo ad occuparci del come

» Due strade alternative:» Descrizione del caso d'uso come attività» Descrizione del caso d'uso modellando uno

scenario particolare

Page 47: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

EsercizioEsercizio

» Gli esempi delle slide che seguono sono tratti da:» http://www.dis.uniroma1.it/~bei/index.php

» Realizzare un sistema informatico che supporti le attività compiute in un ristorante» Modello di Dominio (supponiamo dato)» Individuare dei casi d'uso (con un po' di

immaginazione)» Rappresentarli con sequence diagram

Page 48: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Modello del dominioModello del dominio

» Un Ristorante propone nel proprio menù un insieme di Piatti, un insieme di Vini ed alcuni Menù Regionali a prezzo fisso.

» Un Piatto è caratterizzato da un nome (es: "millefoglie al cucchiaio") un tipo di portata (es: "dolce) ed un prezzo (es: 7 €).

» Un Vino è caratterizzato da un nome (es: "Vermentino"), un tipo ("Bianco"), un prezzo (es: 14 €) ed una annata (es: "2006").

Page 49: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Modello del dominioModello del dominio

» I MenùRegionali sono menù completi (dal primo alla frutta + vino) tipici di una Regione e sono caratterizzati da un Nome (es: "Sapori di Sicilia"), dal nome di una Regione (es: "Sicilia"), dal Prezzo (es: 40 €) dalla mappa dei Piatti che compongono il Menù e da un Vino.

» I Menù Regionali hanno un costo scontato del 15 % rispetto al costo derivante dalla somma del vino e dei piatti che li compongono.

» Il Ristorante propone i propri menù ad un insieme di tavoli (una lista di coppie <numero tavolo,tavolo>) . Ad ogni Tavolo sono associate le ordinazioni di Vini, Piatti e MenùRegionali.

Page 50: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Un diagrammaUn diagrammavale più di 1000 parolevale più di 1000 parole

Page 51: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Associa Piatto a Menù RegionaleAssocia Piatto a Menù Regionale» Il sistema prende come input il nome di un piatto e il

nome di un menu regionale e poi:» 1) a partire dal nome del piatto recupera il

prezzoPiatto;» 2) a partire dal nome del menu regionale ne

recupera il prezzo;» 3) calcola il nuovo prezzo per il menù (con lo

sconto)» 4) imposta come prezzo del menù regionale il

nuovo prezzo appena calcolato;» 5) aggiunge il piatto al menù regionale.

Page 52: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Associa Piatto a Menù RegionaleAssocia Piatto a Menù Regionale

Page 53: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Una possibile soluzioneUna possibile soluzione

Page 54: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Calcola conto tavoloCalcola conto tavolo

» Il sistema prende in input un numero di tavolo ed ha le seguenti responsabilità:» 1) a partire dal numero del tavolo recupera

i dati del tavolo» 2) a partire dal tavolo calcola e restituisce

il conto sommando i prezzi dei Piatti, dei Vini e dei Menù Regionali ordinati

Page 55: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Calcola conto tavoloCalcola conto tavolo

Page 56: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Una possibile soluzioneUna possibile soluzione

Page 57: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Ordina VinoOrdina Vino

» Il sistema prende come argomenti il numero del tavolo e il nome del vino ed ha le seguenti responsabilità:» 1) a partire da numeroTavolo e nomeVino

recupera gli oggetti tavolo e vino» 2) esegue l'ordine del Vino

Page 58: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Ordina VinoOrdina Vino

Page 59: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Una possibile soluzioneUna possibile soluzione

Page 60: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Inserisci nuovo Menù RegionaleInserisci nuovo Menù Regionale

» Il sistema prende come input nome e regione e crea un nuovo menù regionale

Page 61: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Inserisci nuovo Menù RegionaleInserisci nuovo Menù Regionale

Page 62: Sequence Diagramslabsewiki.isti.cnr.it/_media/projects/corsi/umlcnr2009/...» Sequence diagram » Scambio di messaggi, uso di lifeline visualizzare l'asse temporale e la sequenza degli

SOFTWARE ENGINEERING LABORATORY

Una possibile soluzioneUna possibile soluzione