La presentazione è in caricamento. Aspetta per favore

La presentazione è in caricamento. Aspetta per favore

UML Alberto Colombo Fulvio Frati. Prima di iniziare... Accedete a\\Titano\Public\IngegneriaSW BOUML.zip Scaricate il file BOUML.zip Decomprimete il file.

Presentazioni simili


Presentazione sul tema: "UML Alberto Colombo Fulvio Frati. Prima di iniziare... Accedete a\\Titano\Public\IngegneriaSW BOUML.zip Scaricate il file BOUML.zip Decomprimete il file."— Transcript della presentazione:

1 UML Alberto Colombo Fulvio Frati

2 Prima di iniziare... Accedete a\\Titano\Public\IngegneriaSW BOUML.zip Scaricate il file BOUML.zip Decomprimete il file direttamente sul Z

3 Use Case Diagram (1) Un caso d’uso è uno specifico modo di utilizzare il sistema da parte di un attore per eseguire una certa funzionalità del sistema stesso sequenza di transazioni valore misurabile per un singolo attore “un caso d’uso è una sequenza di transazioni in un sistema il cui compito è di conseguire un risultato di valore misurabile per un singolo attore del sistema” (Jacobson ‘92)

4 Use Case Diagram (2) Rappresenta una funzionalità del sistema dal punto di vista di chi la utilizza: nasce, in genere, con la richiesta che un attore fa al sistema si conclude con la produzione di tutte le risposte relative alla richiesta definisce le interazioni tra attori e sistema relative a questa funzionalità

5 Use Case Diagram (3) più requisiti Ogni caso d’uso può soddisfare più requisiti più casi d’uso Un requisito può dare origine a più casi d’uso più requisiti Ad ogni caso d’uso possono venire associati più requisiti

6 Use Case Diagram (4) I casi d’uso servono a: chiarire i requisiti del committente in termini comprensibili trovare aspetti comuni (riuso) individuare gli attori del sistema individuare gli eventi a cui il sistema deve rispondere

7 Attori ruolo Gli attori sono rappresentati tramite il ruolo che giocano nel caso d’uso e sono normalmente indicati tramite l’icona: Cassiere >

8 Relazione tra attori E’ possibile definire gerarchie di attori Associare un attore ad uno o più attori specializzati Utente Banca Utente Sede CentraleUtente Filiale

9 Relazioni tra casi d’uso: generalizzazione/specializzazione Associare un caso d’uso ad uno o più casi d’uso specializzati validare utente validare passwordvalidare badge

10 Relazioni tra casi d’uso: include >comportamento comune > : mostra il comportamento comune a uno o più casi d’uso prelevare visualizzare saldo identificarsi al bancomat >

11 Relazioni tra casi d’uso: extend >comportamento opzionale condizioni anomale > : mostra il comportamento opzionale (alternativo o relativo al trattamento di condizioni anomale ) trattare condizioni particolari aprire conto corrente >

12 Esercizio: Sportello Bancomat Il Sistema sarà eseguito su uno sportello bancomat automatico L'utente deve essere in grado di depositare assegni sul suo conto L'utente deve essere in grado di prelevare i soldi dal suo conto L'utente deve poter interrogare il Sistema sul saldo del suo conto Se lo richiede, l'utente deve poter ottenere la ricevuta per la transazione. I tipi di transazione sono ritiro o deposito. La ricevuta deve indicare la data della transazione, ilnumero del conto, il saldo precedente e successivo la transazione Dopo ogni transazione, il nuovo saldo deve essere visualizzato all'utente

13 Esercizio: Soluzione

14 Class diagram COMPORTAMENTO Rappresenta le classi che compongono il sistema, cioè le collezioni di oggetti, ciascuno con il proprio stato e COMPORTAMENTO (attributi ed operazioni) associazioni Specifica, mediante associazioni, le relazioni fra le classi

15 Class diagram: le classi(1) Una classe è una tipologia di oggetti, con propri attributi e operazioni Rappresentazione di una classe in UML: Automobile marca modello colore targa cambiaTarga cambiaColore Nome Attributi (proprietà) Operazioni (metodi)

16 Class diagram: le classi(2) Nome Nome : inizia con una lettera maiuscola, non è sottolineato e non contiene underscore Attributi Attributi : proprietà i cui valori identificano un oggetto istanza della classe e ne costituiscono lo stato; iniziano con una lettera minuscola Operazioni/Metodi Operazioni/Metodi : insieme di funzionalità che esprimono il comportamento di un oggetto, ovvero ciò che ogni oggetto di questa classe può fare

17 Class diagram : associazioni(1) Associazione Associazione: correlazione fra classi; nel diagramma è una linea continua fra due classi, con esplicita semantica nei due sensi Aggregazione Composizione Molteplicità Molteplicità: numero di oggetti che partecipano all’associazione. Esempi di molteplicità sono: 1Esattamente una istanza 0..*Nessun limite al numero di istanze 1..*Almeno una istanza n..mDa n a m istanze

18 Class diagram : associazioni(2) Clienti clienteDal getOrdini Ordini dataOrdine stato calcolaTasse calcolaTotale setStato Articoli codice descrizione peso prezzo DettagliOrdine quantità calcolaPeso calcolaPrezzo 10..* * emette emesso da riguarda atricolo nell’ordine

19 Class diagram : aggregazione Aggregazione Aggregazione : tipo particolare di associazione; esprime concetto “è parte di ” (part of ), che si ha quando un insieme è relazionato con le sue parti.

20 Class diagram : composizione E’ un caso particolare di aggregazione in cui: la parte (componente) non può esistere da sola, cioè senza la classe composto una componente appartiene ad un solo composto

21 Class diagram : aggregazione/composizione Università Dipartimenti Docenti composizione aggregazione

22 Class diagram : ereditarietà Persone nome cognome indirizzo cambiaIndirizzo Clienti codiceCliente clienteDal contaOrdini PotenzialiClienti numVisite simbolo di ereditarietà sottoclassi superclasse

23 Esercizio: Struttura Universitaria Le entità coinvolte sono: Persone Docenti Studenti Frequenze Esami Corsi

24 Esercizio: soluzione Frequenze Corsi nome durata Esami voto data Studenti matricolaPersone nome Docenti insegna tenuto dadel corso sostiene periodo di relativo a 1 1..* 11 * * * 1

25 Sequence Diagram Evidenziano la sequenza temporale delle azioni Non si vedono le associazioni tra oggetti Le attività svolte dagli oggetti sono mostrate su linee verticali La sequenza dei messaggi scambiati tra gli oggetti è mostrata su linee orizzontali Possono corrispondere a uno scenario specifico o a un intero caso d’uso (aggiungendo salti e iterazioni) Si possono annotare con vincoli temporali

26 Sequence Diagram(2) Oggetto: linea di vita Oggetto: è rappresentato come un box in alto con un nome sottolineato e una linea tratteggiata verticale detta linea di vita dell’oggetto. Il tempo scorre dall’alto verso il basso Messaggio: Messaggio: è una freccia con un nome Chiamatainterna(self-call): Chiamata interna (self-call): riferimento ricorsivo di un oggetto a se stesso, per chiamare una delle sue funzioni

27 Sequence Diagram(3) Instance:Class Oggetto Cancellazione in questo intervallo di tempo l’oggetto è in vita e attivo Linea di vita tempo Box di attivazione

28 Sequence diagram: componenti Condizione: Condizione: è associata ad un messaggio: solo se è soddisfatta il messaggio viene generato Iterazione: Iterazione: indica che un messaggio viene inoltrato più volte ad oggetti diversi di uno stesso gruppo Ritorno: Ritorno: indica il valore restituito all’oggetto chiamante e non un nuovo messaggio; può essere omesso Distruzione: Distruzione: deallocazione di un oggetto come metodo interno o tramite messaggio da un altro oggetto [ha disponib]

29 Sequence diagram: messaggi messaggio In generale un messaggio rappresenta il trasferimento del controllo da un oggetto ad un altro sincrono Se l’oggetto che invia il messaggio rimane in attesa che l’oggetto ricevente ritorni, si ha un messaggio sincrono asincrono Se invece l’oggetto che invia il messaggio prosegue la propria elaborazione in parallelo all’oggetto chiamato, siamo in presenza di un messaggio asincrono.

30 Esempio

31 Esercizio: ordine prodotto Supponiamo di dover illustrare il seguente caso: La finestra Inserisci Ordine manda un “messaggio di preparazione” ad un Ordine L’Ordine invia messaggi di preparazione a tutte le Linee d’Ordine contenute nell’Ordine Ciascuna Linea controlla la disponibilità del proprio Articolo: se è presente lo rimuove dal magazzino e crea un prodotto da consegnare se la disponibilità del prodotto è scesa al di sotto di una certa soglia l’oggetto Articolo genera una richiesta di un nuovo ordine

32 Esercizio: soluzione Iterazione Ritorno Chiamata interna Condizione Creazione Cancellazione un Ordineun Articolo una Linea d’Ordine una finestra “Inserisci Ordine” preparazione() controlloDisp() [haDisponib] remove() deveRiordina() Nuovo ordine [deveRiordinare] do un Prodotto da Consegnare [haDisponib] do

33 Collaboration diagram(1) Evidenzia la collaborazione fra gli oggetti, ma lo svolgimento temporale complessivo risulta meno chiaro rispetto ai sequence diagrams. oggetti messaggi I componenti del diagramma sono sempre oggetti e messaggi ma questa volta non è modellato esplicitamente in maniera grafica lo scorrere del tempo. Gli oggetti sono disposti liberamente, e in modo da rendere chiare le interazioni più importanti Ogni oggetto ha il formato NomeOggetto: NomeClasse ma è possibile indicare solo l’uno o l’altro

34 Collaboration diagram(2) A differenza del sequence diagram, i messaggi sono numerati, in modo da evidenziare esattamente la sequenza I messaggi sono accompagnati da frecce per capire quale oggetto invia il messaggio e quale lo riceve

35 Collaboration diagram: esempio

36 Esercizio: ordine prodotto Supponiamo di dover illustrare il seguente caso: La finestra Inserisci Ordine manda un “messaggio di preparazione” ad un Ordine L’Ordine invia messaggi di preparazione a tutte le Linee d’Ordine contenute nell’Ordine Ciascuna Linea controlla la disponibilità del proprio Articolo: se è presente lo rimuove dal magazzino e crea un prodotto da consegnare se la disponibilità del prodotto è scesa al di sotto di una certa soglia l’oggetto Articolo genera una richiesta di un nuovo ordine

37 Esercizio: soluzione Oggetto Messaggio Numero di sequenza :Finestra di Inserimento Ordine :Ordine Linea X : Linea d’Ordine :Prodotto da consegnare Articolo Xx : Articolo :Riordine Articolo 1: preparazione() 2: [per tutte le linee d’ordine] preparazione() 7: [ha Disponib] new 3: controlloDisp() 4: [haDisponib] remove()

38 Activity Diagram(1) Servono per la modellazione di workflow e per descrivere processi con una forte componente di computazione parallela l’Attività Il componente principale è l’Attività: si può definire in maniera informale come il “fare qualcosa”, cioè un processo del mondo reale (es. compilare un ordine) o l’esecuzione di una procedura software (es. metodo di una classe) Il diagramma consiste in una sequenza di attività e supporta l’esecuzione di cicli,l’esecuzione parallela e quella condizionale

39 Activity Diagram(2) Transizioni Oltre alle Attività le altre componenti sono le Transizioni Le transizioni non hanno condizioni e sono innescate semplicemente dal termine dell’attività precedente

40 Activity Diagram(3) Un Activity Diagram può essere associato: A una classe All’implementazione di un’operazione Ad uno Use Case

41 Activity Diagram: Componenti(1) Action state action azione fatta nello stato Transizioni scatenate da completion events action1action2 scatta quando action1 termina Stato Iniziale Stato Finale

42 Activity Diagram: Branch & Merge Branch Branch : diramazione con una transizione entrante e più di una uscente, con condizioni mutuamente esclusive Non è possibile che valgano entrambe (comportamento ambiguo) o nessuna comportamento bloccato) Se le condizioni sono più di due deve comunque esserne verificata ogni volta una e una soltanto Merge Merge : giunzione con più transizioni entranti ed una sola uscente, termina il blocco aperto dal Branch

43 Activity Diagram: Fork e Join Fork Fork: divisione con una transizione entrante e più di una uscente che si eseguono in parallelo Join Join: unione con più transizioni entranti ed una sola uscente che può scattare solo dopo che sono terminate le attività degli stati corrispondenti alle transizioni entranti Fork e Join si devono corrispondere! Fork e Join si devono corrispondere!

44 Combinazione di Fork e Join

45 Activity diagram: Esempio

46 Slide Aggiuntive

47 Swimlanes(1) I diagrammi delle attività documentano bene ciò che accade,ma non chi fa che cosa swimlanes Un modo di risolvere il problema, indicando le responsabilità per le attività, è l’uso delle swimlanes Le swimlanes sono corsie verticali separate da linee continue, in cui ogni corsia è coperta dalla responsabilità di una particolare classe (o sottosistema)

48 Swimlanes(2) Ogni attività deve essere contenuta in una singola swimlane Le transizioni invece possono attraversare le linee verticali di demarcazione

49 Esercizio Sistema di autenticazione ad un servizio: Richiesta password Verifica password

50 Esercizio: soluzione(1) Richiesta password Introduzione password [errata] Richiesta ri-immetere password [corretta] [errata] Connessione negata Accetta connessione [corretta] Richiesta connessione

51 Esercizio: soluzione(2) Richiesta connessione Richiesta password Introduzione password [errata] [corretta] Richiesta password seconda volta [errata] [corretta] Connessione negata Accetta connessione SERVER CLIENT


Scaricare ppt "UML Alberto Colombo Fulvio Frati. Prima di iniziare... Accedete a\\Titano\Public\IngegneriaSW BOUML.zip Scaricate il file BOUML.zip Decomprimete il file."

Presentazioni simili


Annunci Google