Alberto Colombo Fulvio Frati

Slides:



Advertisements
Presentazioni simili
Progettazione dei Sistemi Interattivi (A.A. 2004/05) - Lezione 2 1 Progettazione e Sviluppo di Software ad Oggetti 4 OBJECT-ORIENTED ANALYSIS Processo.
Advertisements

Introduzione ai Casi dUso (c) TECNET DATI (c) TECNET DATI Pag. 2 Dai requisiti ai casi duso obiettividefinire gli obiettivi –gli obiettivi del committente.
MODULO 3 – ELABORAZIONE TESTI
Unified Modeling Language
Unità D2 Database nel web. Obiettivi Comprendere il concetto di interfaccia utente Comprendere la struttura e i livelli che compongono unapplicazione.
Progettazione concettuale
Le nuove funzioni della piattaforma Puntoedu lingue.
Classi ed Oggetti in Java (Cenni). Richiami Ruolo delle Classi in Java Oggetti.
Principi di Programmazione Object-Oriented
Principi di Programmazione Object-Oriented
Programmazione orientata agli oggetti OOP Object Oriented Programming
4 – Progettazione – Introduzione e Modello E-R
Esercitazione con socket
SOFTWARE I componenti fisici del calcolatore (unità centrale e periferiche) costituiscono il cosiddetto Hardware (alla lettera, ferramenta). La struttura.
Progettazione di una base di dati
Normalizzazione Le forme normali certificano che la base di dati soddisfa criteri di qualità che mirano ad evitare le ridondanze e i conseguenti effetti.
Partizionamento/accorpamento di concetti
Modello E-R Generalizzazioni
Gli algoritmi.
Introduzione alla modellazione di sistemi interattivi
ARGONEXT Accesso Docente
INTRODUZIONE l sistema operativo è il primo software che lutente utilizza quando accende il computer; 1)Viene caricato nella memoria RAM con loperazione.
L’ingegneria del software
Introduzione alla programmazione Object Oriented
Dipartimento di Informatica e Sistemistica
Lo sviluppo del progetto informatico
UML: Collaboration diagram Corso IS I /03 Gianna Reggio Versione 1.0.
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012.
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012.
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012.
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012 V. Costamagna, F. Dotta, F. Barbano, L. Violanti, Oltikuka.
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012.
Lazienda SC Informatica si occupa della progettazione e della realizzazione di sistemi informatici dedicati alle farmacie. Fornisce inoltre un servizio.
Scenari e Casi d’Uso (UML)
Commenti all’esempio del treno Nell’esempio del treno si è iniziato dalle attività generiche e/o attività operative che tipicamente costituiscono i passi.
Esercitazioni di Ingegneria del Software con UML
UML.
Sessione live Testing. Esercizio Quesito 1 Soluzione 1.
Progettazione concettuale di SI basati su Web
La modellazione degli oggetti
I processi.
Introduzione a UML.
Nemesi Creazione e pubblicazione di una rivista online tramite l’utilizzo di Java Message Service.
Diagramma delle Classi
Tecnologie di InternetDocument Type Definition Dott. Nicola Dragoni Document Type Definition  Document Type Definition (DTD)  Documento XML valido 
Analisi dei requisiti Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti  Definizione del Business Model  Solitamente.
Fondamenti di Informatica 2 Ingegneria Informatica Docente: Giovanni Macchia a.a
Basi di dati - Modelli e linguaggi di interrogazione- Paolo Atzeni, Stefano Ceri, Stefano Paraboschi, Riccardo Torlone Copyright © The McGraw-Hill.
Linguaggi e Modelli Computazionali LS Anno Accademico 2007/2008 Alessio Della Motta Un linguaggio per descrivere partite di Maraffone: il gioco più popolare.
Progettazione di una base di dati Ciclo di vita di un sistema informativo Studio di fattibilità definisce le varie alternative possibili, i relativi costi.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Ingegneria del software Modulo 1 -Introduzione al processo software Unità didattica 4 -Progettazione del software Ernesto Damiani Università degli Studi.
1 Laboratorio di Introduzione alla Programmazione §II MODULO §3 crediti §Esame e voto unico (su 6 crediti totali)
UML: Introduzione Corso IS I /03 Gianna Reggio Versione 0.0.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Ingegneria del software Modulo 1 - Introduzione al processo software Unità didattica 4 - Progettazione del software Ernesto Damiani Università degli Studi.
Progettazione di basi di dati: metodologie e modelli
Informatica e Informatica di Base
1Ingegneria Del Software L-A Progetto realizzato da: Luca Iannario, Enrico Baioni, Sara Sabioni. A.A. 2008/2009.
Metodologie e modelli per il progetto. 2 Introduzione alla progettazione Il problema: progettare una base di base di dati a partire dai suoi requisiti.
1 Esami Esame scritto: Tra 21 e 25 domande: 20 domande chiuse (20 punti),  5 domande aperte (10 punti) 1½ ore Esame orale/applicativo: Esercizi usando.
Everywhere Takeaway Progetto di SSCSWeb A.A. 2011/2012 V. Costamagna, F. Dotta, F. Barbano, L. Violanti, Oltikuka.
Progettazione concettuale di SI basati su Web B. Pernici.
Cloud informatica V anno.
Integrazione con e /. Integrazione e/ - Banche24 Aggiornamenti previsti nel 2012 Sono previsti due momenti di rilascio per le funzionalità di integrazione.
UML Tratto da Alberto Colombo Fulvio Frati. Sequence Diagram Evidenziano la sequenza temporale delle azioni Non si vedono le associazioni tra oggetti.
Microsoft Access Filtri, query. Filtri Un filtro è una funzione che provoca la visualizzazione dei soli record contenenti dati che rispondono a un certo.
Diagramma degli Stati. Diagramma degli Stati … Definizione è un grafico con nodi ed archi in cui i nodi rappresentano gli stati di una classe e gli archi,
Parsing ricorsivo discendente Il parsing ricorsivo discendente (recursive descent parsing) è un metodo di tipo top-down che può essere facilmente codificato.
Introduzione all’Ereditarietà Pietro Palladino. Richiami UML Classe: descrizione di un insieme di oggetti software con caratteristiche simili Definisce.
Transcript della presentazione:

Alberto Colombo Fulvio Frati UML Alberto Colombo Fulvio Frati

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

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 “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)

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à

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

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

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

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

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

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

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

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

Esercizio: Soluzione

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

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)

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

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

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

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

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

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

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

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

Esercizio: soluzione insegna tenuto da del corso sostiene di Frequenze Corsi nome durata Esami voto data Studenti matricola Persone Docenti insegna tenuto da del corso sostiene periodo di relativo a 1 1..* *

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

Sequence Diagram(2) 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: è una freccia con un nome Chiamata interna (self-call): riferimento ricorsivo di un oggetto a se stesso, per chiamare una delle sue funzioni

in questo intervallo di tempo l’oggetto è in vita e attivo 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

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

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

Esempio

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

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

Collaboration diagram(1) Evidenzia la collaborazione fra gli oggetti, ma lo svolgimento temporale complessivo risulta meno chiaro rispetto ai sequence diagrams. 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

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

Collaboration diagram: esempio

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

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()

Activity Diagram(1) Servono per la modellazione di workflow e per descrivere processi con una forte componente di computazione parallela 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

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

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

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

Activity Diagram: Branch & Merge 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: giunzione con più transizioni entranti ed una sola uscente, termina il blocco aperto dal Branch

Activity Diagram: Fork e Join Fork: divisione con una transizione entrante e più di una uscente che si eseguono in parallelo 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!

Combinazione di Fork e Join

Activity diagram: Esempio

Slide Aggiuntive

Swimlanes(1) I diagrammi delle attività documentano bene ciò che accade,ma non chi fa che cosa 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)

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

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

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

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