Unified Modeling Language (UML)Corso di Sistemi Informativi N.O., A.A 2002-2003
Dipartimento di Elettronica e Informazione, Politecnico di MilanoProf. G. Bracchi
Ing. Enzo ColomboDipartimento di Elettronica e InformazionePolitecnico di Milano, [email protected]+39 2 23993477
Ultima revisione 27/03/2003
Informazioni Utili
Testo di riferimento:Kendall Scott “UML Explained” Addison-Wesley(prima edizione italiana)
Testo consigliato per esercizi supplementari:S. Bennet, J. Skelton, K. Lunn “Introduzione a
UML” (collana Schaum’s), McGraw-HillData prima prova in itinere: 28/04/2003
Ultima revisione 27/03/2003
Unified Modeling Language Insieme di linguaggi che, se utilizzati in maniera congiunta, consentono di modellare aspetti diversi di un sistema informatico.Approccio Object-Oriented (standard OMG dal 1997)
Struttura staticaComportamento Interazioni tra diverse componenti del sistema
Linguaggio semi-formaleNotazione graficaStrumenti CASE a supporto della progettazione (es. Microsoft VISIO e Rational ROSE)
Ultima revisione 27/03/2003
Viste a supporto della modellazione
User View
Use CaseUse Case
StatechartStatechart
ActivityActivity
CollaborationCollaborationSequenceSequence
ClassClass
ObjectObject ComponentComponent
DeploymentDeployment
Implementation ViewStructural View
Behavioral View Environment View
Punto di vista dell’utente
Componenti necessari per la realizzazione fisica del
sistema
Localizzazione dei componenti di sistema
• Componenti software• Relazione tra componenti
Modalità di interazione (sequenza di operazioni per
la realizzazione di una funzione)
Ultima revisione 27/03/2003
Analisi dei requisiti con UML
Diagrammi dei casi d’uso: modellazione dei requisiti utenteDiagrammi delle classi: modellazione dei requisiti informativi e gerarchie di eventiDiagrammi delle attività: modellazione dei requisiti di processo (flussi di lavoro, attori…)Diagrammi degli stati: modellazione delle variazioni di stato che subiscono le informazioni
Use case diagram
Ultima revisione 27/03/2003
Analisi dei requisiti
Il primo passo di “qualsiasi” processo di sviluppo è la definizione dei requisiti
Definizione del Business Model Solitamente informale e in linguaggio naturale
Jacobson propone una notazione particolare che è confluita in UML
Use Case Diagram
Ultima revisione 27/03/2003
Use Case - definizioni preliminariDescrive una particolare funzionalità fornita dal sistema o da una sua parte dal punto di vista dell’utilizzatore.Mostra le unità coinvolte nella fornitura del sistema (attori e sistema)Uno use case:
Rappresenta le funzionalità visibili dall’utentePuò avere differenti granuralitàRappresenta un obiettivo specifico per l’utente
In generale, gli use case vengono ricavati sulla base di colloqui con diversi profili di utenti che utilizzeranno il sistema
Ultima revisione 27/03/2003
Use Case - notazione
Actor: è qualcuno (utente) o qualcosa (sistemi esterni - hardware) che:
Controlla le funzionalitàFornisce input o riceve output dal sistema
Use Case: è un’unità funzionale parte del sistema
Ultima revisione 27/03/2003
Use Case - attori
Attore: entità esterna al sistema che interagisce con esso assumendo un ruolo
Diversi attori con lo stesso ruolo e diversi ruolo con lo stesso attoreDiversi attori possono esercitare uno use case e diversi use case che possono essere esercitati Non è detto che un attore corrisponda a una o più persone (es. sistema esterno)
Gli attori possono essere il mezzo per individuare gli use case (individuo una lista di attori)Gli use case rappresentano le funzionalità ai morsetti del sistema
Ultima revisione 27/03/2003
Relazione tra attori e use-case
Può capitare che una funzione esista perché di interesse di un attore che non partecipa all’azione stessaAzione indotta da altre iniziative del sistema e ha come destinatario un attore fuori dal contesto operativoEs. notifica ordine di pagamento ad un compratore dopo 2 mesi dall’acquistoUn attore, nei confronti di uno use case può esserne il beneficiario, il controllore, informato,…
Ultima revisione 27/03/2003
Relazioni principaliAssociations identificano relazioni semplici tra attori e casiInclude fattorizza proprietà comuni. È simile all’innesto di procedure allaPascal. A includes BExtend identifica comportamenti simili (varianti). A può essere visto come una variante di BGeneralization si applica sia ad attori che a use case. A eredita il comportamento di B. A può essere sostituito ad ogni occorrenza di B
<<include>>A B
<<extend>>A B
A B
Ultima revisione 27/03/2003
Esempio di associazione (Ufficio postale)
Il primo Use Casediagram definisce il contesto del modelloScelte diverse possono imporre
Attori diversiUse case diversi
Cliente
Distr. posta
Sportello
Postino
Impiegato
Ultima revisione 27/03/2003
Esempio di associazione (Registrazione corsi)
Cambio organizzazione corso
Richiesta studenti registrati
Professore
Selezione corso
Gestione professori
Gestione studenti
Archivio globale
Gestione corsi
Richiesta corsi
Cambio corsi
Studente
Scelta corsiAmministrazione
Ultima revisione 27/03/2003
Generalizzazione (1)
Lo use case figlioEredita tutti gli attributi, scenari… definiti nello use case padrePartecipa a tutte le relazioni in cui è coinvolto lo use case padreLo use case figlio può prevedere nuovi scenari non previsti nello use case padre o ridefinirne alcuni
Uno use casePuò ereditare da n altri use casesPuò essere il padre di n altri use case
Figlio
Padre
Ultima revisione 27/03/2003
Generalizzazione (2)
Supervisore
VenditoreImmissione
ordine
Attribuzionecredito
Generalizzazione: il supervisore può partecipare a tutti gli usecases a cui partecipa il venditore
Ultima revisione 27/03/2003
InclusioneEsistono use case che rappresentano attività ricorrenti condivise da use case più complessiPer evitare di ripetere in ogni use case la descrizione dell’attività comune la si mette a fattor comune indicando che viene inclusa in use case più complessi La funzionalità individuata viene inclusa in un punto specifico o nella sua interezza nella sequenza di interazioni che caratterizza lo use case base.Analogie con
Chiamata a sottoprocedura in un linguaggio di programmazioneScomposizione gerarchica nei DFD
Stereotipo : <<include>>
Ultima revisione 27/03/2003
Punti Estensione
Vengono utilizzati nelle relazioni di tipo <<extend>>Individuano i punti dello use case che possono essere estesiEsempio:
Pagamento
Si inserisce il tipodi pagamento
Pagamento concarta
Addebito diretto
<<extend>>
<<extend>>
Ultima revisione 27/03/2003
Estensione
Viene specificato in che modo sotto quali condizioni il comportamento individuato dallo use case estensione essere incorporato nello use case baseE’ necessario specificare sempre i punti estensioneQuando si verifica la condizione di estensione lo use case estensione viene inglobato nello use case base Stereotipo: <<extend>> [ ]
Ultima revisione 27/03/2003
Esempio di inclusione(Immobiliare)
Vendita di una casa e stupula di un contratto di assicurazione implicano la valutazione dell’immobile
Vendita casaAssicuratore
Venditore
Stipula Contratto
<<include>>Valutazione Immobile
<<include>>
Ultima revisione 27/03/2003
Esercizio (livello 0)
Utente
Impiegato
Gestione prestito
Ordine
Responsabile
<<include>>
Approvazione
Verifica ordine
Ultima revisione 27/03/2003
Raffinamento use-case(livello 1)
Utente
Impiegato
Gestione prestito
Ordine Ordine Internet
Gestione dati
<<include>>
Gestione disponibilitàGestione pagamento
<<include>>
<<include>>
<<include>>
<<extend>>
Responsabile
<<include>>
Approvazione
Verifica ordine
Ultima revisione 27/03/2003
Modellazione flussi di eventi
Flusso di eventi principali: corrisponde allo scenario di esecuzione ideale
L’attore non compie e non genera erroriUn flusso di eventi principale è sempre presente
Flusso di eventi eccezionaleCammino percorso in presenza di erroriCammino percorso con bassa frequenzaUn caso d’uso presenta molto spesso eventi eccezionali
Ultima revisione 27/03/2003
Use case(Processo)
Il processo di definizione degli use case è iterativoSi inizia identificando il comportamento più sempliciSi descrivono i comportamenti alternativi e più complessi
Quando smettere?Un buon livello di dettaglio facilità tutte le attività successiveTroppi dettagli
Complicherebbero inutilmente la descrizioneIntrodurrebbero prematuramente scelte progettualiPrecluderebbero la visione d’insieme
Ultima revisione 27/03/2003
Esercizio 1(Assicurazioni)
Si tracci il caso d’uso relativo ad una compagnia di assicurazione.Ciascun assicuratore, a fronte del profilo del cliente che intende stipulare la polizza, deve avere la possibilità di proporre quelle che maggiormente si adattano alle sue caratteristiche. Le polizze vengono periodicamente inserite nel sistema dalla compagnia assicurativa man mano che vengono individuate nuove nicchie di mercato dal management dell’azienda. Tuttavia, si deve tener presente che può succedere che il cliente abbia già visionato alcuni prospetti disponibili sul sito web della compagnia. In questo caso l’assicuratore provvede a stipulare la polizza segnalata dal cliente. In entrambi i casi, sulla base delle richieste fatte e sulla base di alcuni parametri di rischio viene effettuato il calcolo del premio. A discrezione la compagnia assicurativa puòapportare modifiche ai parametri utilizzati per calcolare il premio.A fronte degli estremi relativi al contratto stipulato, l’assicuratore notifica ai propri clienti il possibile rinnovo della polizza. Qualora il cliente si decida per il rinnovo, viene creata una nuova pratica e il sistema provvede a notificarla alla compagnia assicurativa.
Ultima revisione 27/03/2003
Soluzione(Assicurazioni)
Sistema Compagnia Assicurativa
Notifica all’assicuratore
Cerca Polizza
Rinnova Polizza
Raccomanda Polizza
<<include>>
<<include>>
Assicuratore
CalcolaPremio
Notifica RinnovoPolizza
<<include>>
<<include>>
Aggiungi nuovaPolizza
Vendi Polizza
<<extend>>
<<include>>
Cambia Premio
Il caso presenta una lacuna….quale??
Ultima revisione 27/03/2003
Esercizio 2(EdilMilano S.r.l.)
EdilMilano S.r.l è una piccola impresa edile che intende informatizzare la sua attività attraverso un sistema informativo che gli permetta di gestire i dipendenti, il magazzino centrale, i cantieri aperti ed i clienti. All’inizio dei lavori, ogni cantiere viene in genere assegnato un primo carico di materiale ed un certo numero di operai, comunque, in base allo stato di avanzamento dei lavori e sulla base delle scadenze pattuite, l’azienda ha la facoltà di spostare uno o più operai da un cantiere all’altro. In questo senso, l’impresa EdilMilano necessita di reperire in tempo reale sia le informazioni storiche relative all’allocazione degli operai su ciascun cantiere sia i dati anagrafici comprensivi di qualifica, fascia di stipendio ed eventuali richieste e/o capacità particolari.L'impresa ha un magazzino centrale e un "piccolo magazzino" per ogni cantiere aperto. Ogni magazzino registra i prodotti per costruzione (mattoni, tegole, cemento, ecc.) e gli strumenti utilizzati. I mezzi di locomozione vengono sempre riportati al magazzino centrale. A questo proposito si tenga presente che e’ politica dell’azienda quella di servirsi di veri e propri autisti professionisti per il trasporto dei materiali. I loro dati anagrafici similmente a quelli degli operai sono riportati in anagrafica.Il magazzino centrale deve essere in grado di assegnare il materiale (strumento o mezzo) richiesto dal responsabile di ogni cantiere. Il sistema informativo deve permettere all’autista di aggiornare la situazione del parco mezzi permettendo di “scalare” dall’elenco dei mezzi disponibili quello che utilizzerà per la consegna dei materiali.
Ultima revisione 27/03/2003
Soluzione (EdilMilano S.r.l.)
Autista
Gestione Mezzi
Gestione Cantieri
ClienteGestione Clienti
Sede EdilMilano
Gestione Magazzino Centrale
Cantiere
Richiesta Materiale
<<extend>>
Gestione Operai Storico Operai/Cantieri
<<include>>
Gestione Dipendenti
Ricerche Anagrafiche
<<include>>
Ultima revisione 27/03/2003
Esercizio 3(EasyPC S.p.A)
EasyPC S.p.A. si occupa della vendita al dettaglio di personal computer attraverso il canale internet. La società si è affermata sul mercato grazie all’ampio ventaglio di soluzioni proposte e alle particolari agevolazioni di acquisto applicate ai propri clienti (es. rateizzazione dell’importo a tasso 0). Il cliente accede al sito liberamente, senza che gli sia chiesta la registrazione. E’ possibile consultare un catalogo delle offerte effettuando dei filtri su parametri notevoli (marca, costo, caratteristiche del processore). Per ciascun computer è possibile richiamare in seguito una scheda tecnica dettagliata. Tuttavia EasyPC mette a disposizione anche un wizard che consente di assemblare un computer su misura. Ilwizard è costruito in maniera tale da avvertire il cliente di eventuali inconsistenze che non permetterebbero al PC di funzionare correttamente. Alla fine del processo è possibile visionare la scheda tecnica del computer assemblato. Una volta scelto il PC è possibile ordinarlo; solo in questo momento verranno richiesti i dati anagrafici del cliente, il POP dove effettuare la consegna e le informazioni relative alla modalità di pagamento. Il pagamento viene effettuato sempre e comunque alla consegna presso il POP scelto. In caso di urgenza il cliente può richiedere la consegna del PC in tre giorni (contro la media dei sette normalmente richiesti) facendosi carico delle spese di trasporto veloce che gli verranno addebitate al momento del ritiro.Il sistema informativo della EasyPC purtroppo non è integrato con il sito web. Per questo motivo l’ufficio amministrativo visualizza gli ordini, inoltrando quelli non evasi al magazzino e contemporaneamente preparando la fattura di accompagnamento. Il magazziniere stampa la fattura e provvede a spedire la merce secondo gli estremi indicati e secondo le modalità richieste dal cliente.
Ultima revisione 27/03/2003
Soluzione (EasyPC S.p.A.)
Crea e sottometti ordine
Cliente
Visualizza Ordine
Seleziona computer standard
Cos truisci PC custom
Visualizza Configurazione
<<include>>
<<include>>
Ufficio Amministrativo
Preparazione Fattura
Inol tra Ordine Magazzino
Stampa Fattura
Magazzino
Spedizione Veloce
Spedizione
<<extend>>
Diagrammi delle attività
Ultima revisione 27/03/2003
Activity Diagram
Forniscono la sequenza di operazioni che definiscono un’ attività piu’ complessaPermettono di rappresentare attività parallele e la loro sincronizzazioneDerivano da Event Diagrams e reti di Petri => sono considerati State Diagrams particolari
Ogni stato contiene (e’) un’azioneUtile per modellare:
Business workflowConcorrenzaComportamenti sequenzialiSistemi distribuiti
Ultima revisione 27/03/2003
Activity Diagram : Elementi grafici
*
Concorrenza dinamica
Attivita’
fork
[condition]
branch
[else]
[condition]
join
merge
start
end
Ultima revisione 27/03/2003
Action e Activity state
Activity state: stati non atomici (decomponibili ed interrompibili)
Un activity state puo essere a sua voltarappresentato con un activity diagram
Action state: azioni eseguibili atomiche (non possonoessere deecoposti ne interrotti)
Un action state puo essere considerato come un caso particolare di activity state.
Activity e Action state hanno la stessarappresentazione grafica
Ultima revisione 27/03/2003
Connettori: esecuzione condizionale
BRANCH: l’attività ha una sola connessione in ingresso e più connessioni in uscita dotate di condizioni; dopo la fine dell’azione le condizioni sono valutate e solo l’azione “successore” la cui condizione è vera viene eseguita (le condizioni sono mutuamente esclusive);MERGE: l’attività ha più connessioni in ingresso e una connessione in uscita; termina un blocco condizionale iniziato con un branch;
Ultima revisione 27/03/2003
Connettori: esecuzione condizionale (1)
Verifica sceltacliente sul tipo di
spedizione
Spedizioneper corriere
Spedizione posta ordinaria
[spedizione rapida] [else]
Chiusura ordine
BRANCH
MERGE
Ultima revisione 27/03/2003
Connettori: esecuzione condizionale (2)
Mostraremodulo di acquisto
Ottenere i dettagli dell’acquisto
Memorizzarel’ordine
[OK]
[incompleto]BRANCH
MERGE
Ultima revisione 27/03/2003
Connettori: esecuzione parallela
FORK: l’attività ha una sola connessione in ingresso e più connessioni in uscita; quando l’azione termina vengono eseguite in parallelo tutte le azioni successoreJOIN:
l’attività ha più connessioni in ingresso e una connessione in uscita, e termina un blocco parallelo iniziato con un fork;l’attività uscente dal join può essere eseguita solo dopo che tutte le attività entranti nel join sono terminate (il join sincronizza le attività);
Ultima revisione 27/03/2003
Connettori: esecuzione parallela (1)
Prelievo merce dal magazzino
Imballare la mercePreparare l’etichetta
per la spedizione
Etichettare la merceper la spedizione
FORK
JOIN
Ultima revisione 27/03/2003
Connettori: esecuzione parallela (2)
Prelievo merce da magazzino
Imballa MerceStampa etichetta Aggiorna punti
Cliente fedele
Etichetta merce per spedizione
• E’ possibile specificare una condizione su un esecuzione parallela• Il ramo viene attivato solamente se la condizione è vera• Il branch attiva un solo ramo alla volta, in questo modo permettiamo l’attivazione condizionata di più rami
Condizione
Ultima revisione 27/03/2003
Swimlanes
richiestaservizio
ricercaprodotto
spedisciprodotto
riceviordine
riceviprodotto
pagamento
Cliente MagazzinoUfficioacquisti
• Identificano le responsabilità relative alle diverse operazioni
• In un Business Model identificano le unità organizzative
Ultima revisione 27/03/2003
Esercizio 1(GUTT)
E’ possibile prenotare telefonicamente o presentandosi in agenzia. In agenzia c’è una sola persona che si occupa solamente delle prenotazioni.Le prenotazioni vengono registrate su un archivioL’agenzia stampa i tabulati delle prenotazioni ogni mattina per avere un quadro generale della situazioneLe prenotazioni scadute vengono annullateE’ possibile chiamare l’agenzia per effettuare dei reclami, i reclami vengono archiviati.
Ultima revisione 27/03/2003
Soluzione 1(GUTT)
Prenotazione telefonica
Prenotazione in agenzia
Annulla prenotazione
Ricezione Reclami
Richiesta telefonica
Inizio
Fine
Stampa tabulat i
Evade Reclamo
Aggiorna Anagrafica Prenotazioni
Aggiorna Anagrafica Prenotazioni
prenotazioni scadute
Controlla Prenotazioni
fine giorno
fine giorno
Ultima revisione 27/03/2003
Esercizio 2(Check-in)
Modellare il processo di gestione della fase di check-in di una compagnia aerea usando i diagrammi delle attività UML con swimlanes. Il sistema dovrà prevedere le seguenti funzionalità: il cliente si presenta in aeroporto e consegna il suo biglietto al box del check in. L’impiegato verifica se la prenotazione del posto è confermata e quindi assegna un posto al cliente. I begagli da imbarcare vengono pesati e la loro segnalazione inserita nel sistema. Viene allora emessa la carta di imbarco che sarà cosegnata al cliente. Nel caso in cui la prenotazione risulta non confermata, il cliente è inserito in lista di attesa e riprende il suobiglietto aereo.
Ultima revisione 27/03/2003
Soluzione(Check-in)
Presentazione biglietto aereo
Start
Verifica prenotazione
Assegnazione posto
Pesa bagagli Archiviazione dat i bagagli
Emissione carta di imbarco
Inserire cliente in lista di attesa
Rest ituisce biglietto aereo
Consegna carta di imbarco
End
Prenotazione non valida
Ultima revisione 27/03/2003
Esecizio 3(Agenzia Viaggi via Internet)
Consultazione catalogo viaggi: l’utente deve poter avere la possibilità di scegliere in base alla destinazione, al costo e alla durata delle diverse tipologie di vacanze (vacanze complete, solo alberghi oppure appartamenti). L’utente ha la possibilità di effettuare la consultazione senza registrarsi.Prenotazione e acquisto viaggi: può prenotare il viaggio solo l’utente registrato. La prenotazione risulterà confermata solo al seguito del pagamento della tariffa del viaggio tramite carta di credito o recandosi presso un agenzia associata. Sono previsti sconti in base all’età dell’utente e alla sua fedeltà (se è in possesso della carta soci dell’agenzia)
Ultima revisione 27/03/2003
Soluzione(Agenzia viaggi)
Start
Inserimento destinazione
Scelta tariffa Scelta durata
Scelta tipo di viaggio
Visualizza offerte complete
viaggio completo
Visualizza alberghi
solo alberghi
Visualizza appartamenti
solo appartamento
Controlla se utente registrato
Inserimento età cliente
Richiesta carta soci
Inserimento numero carta socio
Calcola sconto
Calcola tariffa
Inserimeno numero carta
Verifica carta
Addebito spesa
Pagamento in agenzia
Chiudi sessione
utente non registratoutente registrato
dotato di carta socio
pagamento on-linepagamento in agenzia
numero errato
abort
Ultima revisione 27/03/2003
Esercizio 4(ITACA)
Una recente ricerca condotta in ambito europeo ha registrato come l’incidenza sulla spesa totale degli acquisti di MRO (Material Requirement and Operation) si assesti intorno allo 8% dei costi totali sostenuti dalle PMI (piccole e medie imprese) che operano nel settore elettromeccanico. Tale valore, decisamente alto, è imputabile, in prima istanza, allo scarso potere contrattuale delle PMI come conseguenza diretta dei bassi volumi diacquisto.
Per questo motivo, nell’ambito del progetto ITACA finanziato dall’UE è stata sviluppata una piattaforma di aggregazione degli acquisti con lo scopo difavorire l’approvvigionamento di materiale non strategico da parte delle PMI che operano nel settore elettromeccanico.
La piattaforma di aggregazione degli acquisti eroga i sui servizi in modalità ASP. La sua caratteristica principale è quella di disporre di un modello degli acquisti di MRO basato su di un modello di consumo. Tale modello viene inizialmente memorizzato nel sistema, al momento dell’inizio del servizio e successivamente viene aggiornato ogni volta che un acquisto viene concretizzato.
Si desidera modellare il flusso di attività necessario a sottomettere un acquisto all’aggregatore (BUY) e il flusso corrispondente alla ricezione della merce(RECEIVE). Si effettui la modellazione facendo riferimento solamente alla PMI che decide di effettuare l’acquisto, all’aggregatore degli acquisti e al fornitore del prodotto.
Di seguito vengono dettagliate sinteticamente.
[BUY]: la PMI a seguito della formulazione di una richiesta provvede ad inoltrarla all’aggregatore e successivamente attende un rapporto nel quale viene riportato l’esito della richiesta. Il rapporto, qualora non ci siano stati problemi, contiene l’ordine di acquisto che comprende la data prevista per la consegna della merce. In caso contrario il rapporto può contenere un rifiuto ad operare l’acquisto o perché non si è autorizzati (ad esempio la PMI non ha rinnovato il canone di servizio) o perché la richiesta fatta non è in linea con il modello di acquisto concordato. Solitamente, a fronte di una richiesta andata a buon fine, la PMI predispone il magazzino per il ricevimento merci.
L’aggregatore effettua i controlli di rito sulla richiesta in maniera da minimizzare il lead-time di processo. Qualora la richiesta venga accolta, aggiorna lo storico dei consumi del distretto e successivamente controlla che vi sia o meno disponibile un’aggregazione per l’ordine accettato. In caso non vi sia un aggregazione in corso questa viene creata.
[RECEIVE]: A fronte della scadenza dei termini per un acquisto aggregato, viene contattato il fornitore per richiedere la consegna della merce. Il fornitore si occupa della logistica interna: preparazione della fattura, imballo separato dei lotti e aggiornamento del magazzino a fronte del prelievo. Il processo di spedizione viene invece terzializzato ad un corriere espresso selezionato sulla base della copertura geografica, dell’urgenza della consegna, della tipologia di mezzi ecc…
Il corriere carica la merce direttamente dal fornitore. L’aggregatore contemporaneamente invia al cliente una conferma che si predisporrà per ricevere la merce.
Ultima revisione 27/03/2003
Soluzione(ITACA)
Imballa lotti
Contat tafornitore
Verifica ordine
Applica sconto
Aggiorna modello di consumo
Disponi fattura
Aggiorna situazione magazzino
Contatta corriera
Spedisce pacco
Spedisce notifica a cliente
Fine
NewState
Soglia raggiunta
Ultima revisione 27/03/2003
Soluzione(ITACA)
Formula richiesta di acquisto
Inoltra richiesta
Raccoglie richiesta
verifica identità controlla conf. modello di acquisto
compila rapporto
Aggi. modello di consumo
Riceve e controlla rapporto
Aggrega acquisto
elseCrea nuova
aggregazione
nessuna aggregazione
End
Controlla aggregazioni in corso
Predispone magazzino
[ (ver. identità = OK) AND (contr. acqu. = OK) ]
[ non autorizzato ]
[else]
ordine non conforme
[else]
Diagrammi delle classi
Ultima revisione 27/03/2003
Diagramma delle Classi
Il diagramma delle classi descrive le informazioni del processo;
Esplicita le informazioni del processo, le loro proprietà e le relazioni tra loro intercorrenti;
Ha una corrispondenza naturale con lo schema concettuale del database che darà supporto all’automazione del processo;
Ultima revisione 27/03/2003
Classe
E’ la descrizione di un insieme di oggetti che condividono gli stessi attributi, metodi e relazioni
ed è definita da:nomelista degli attributilista delle operazioni
Ordine
datanumero
CalcolaImporto()
Ultima revisione 27/03/2003
Attributi e operazioni
attributo: proprietà che caratterizza una classe, con un nome e un tipo (opzionale); una classe ha zero o più attributi;
operazione: servizio che può essere richiesto ad un oggetto della classe;
Ordine
datanumero
CalcolaImporto()
Computer
tipomarcamodelloprocessore
Ultima revisione 27/03/2003
Esempio
Professore
nomecognome
create()delete()
Professore
create()delete()
Professore
nomecognome
Professore
Ultima revisione 27/03/2003
Attributi
Nomi che non sono diventati classiDurante la definizione delle classi stesseConoscenza del dominio applicativo
Persona (ambito bancario)nome, cognome, codiceFiscale, numeroConto
Persona (ambito medico)nome, cognome, allergie, peso, altezza
Ultima revisione 27/03/2003
Attributi(Identità)
Gli oggetti avranno una loro identità, non bisogna aggiungerla
Codice fiscale?
nomecognome
Professore
età
id nomecognome
Professore
età
Ultima revisione 27/03/2003
Relazioni tra Classi
Tre sono i tipi principali di relazioni tra classi
Associazione
Generalizzazione
Aggregazione/Composizione
Ultima revisione 27/03/2003
Associazioni tra Classi
Ogni associazione ha due estremità collegate alle classi dell’associazione
Le estremità sono etichettatate con molteplicità (indicano la cardinalità ma in modo opposto alla notazione di Entity-Relationship!)
Una estremità può essere etichettata con il ruolo (opzionale) che la classe assume nella associazione
Ultima revisione 27/03/2003
Corso Studente
3 .. 100..*
Molteplicità (1)
La molteplicità dice:Se l’associazione è obbligatoria oppure no?Il numero minimo e massimo di oggetti che possono essere relazionati ad un altro oggetto
segue
Ultima revisione 27/03/2003
Molteplicità (2)
Esattamente uno: 1Zero o uno: 0..1Molti: 0..*Uno o più: 1..*Un numero specifico: 7Un intervallo: 4..15Lista: 0..1, 3..4, 6..*
Tutti i numeri eccetto 2 e 5
?
Ultima revisione 27/03/2003
Associazioni tra Classi
Le associazioni rappresentano collegamenti concettuali tra classi
Ordine
datanumero
CalcolaImporto()
linea d’Ordine
quantitàprezzoprodotto
1 *
Cliente
nomeindirizzo
1
*
Ultima revisione 27/03/2003
Studente Corso
Frequenzapercentualeprofitto
1..* 1..*
Classi associazione
Alcune proprietà potrebbero appartenere all’associazione e non alle parti coinvolte
Ultima revisione 27/03/2003
Generalizzazioni di Classi
Ordine
datanumero
CalcolaImporto()
OrdineUrgente
daEvadereEntrotariffaUrgenzeApplicata
Computer
Computer Configurato Computer Standard
Ultima revisione 27/03/2003
Corso Curriculum1..*
Aggregazioni
Le aggregazioni sono una forma particolare di associazione. Una parte è in relazione con un oggetto (part-of)
1
Ultima revisione 27/03/2003
SliderPanel Button
Window
1
1
1
scrollbar body close2
1
1
Composizioni
Una relazione di composizione è un’aggregazione forte
Le parti componenti non esistono senza il contenitore
Ultima revisione 27/03/2003
Linee guida per l’individuazione di Classi Candidate
Per determinare se un concetto descritto nei requisiti è una classe candidatalo si può verificare rispetto a queste domande:
il concetto è un “contenitore” di dati?
possiede attributi che possono assumere valori distinti?
potrebbe comprendere molti oggetti sue istanze?
appartiene al contesto del processo in esame?
Ultima revisione 27/03/2003
Esempio
Identificazione delle classi candidate per il processo di acquisto on-line di un computer
ComputerFatturaOrdineCliente
Computer configurato Elemento di configurazione
Computer Standard
Ultima revisione 27/03/2003
Esempio
Diagramma delle Classi per il processo di acquisto on-line di un computer
Computer
Fattura
Ordine
Cliente
Elemento di configurazione
1
*
0..1
1
*1*1
Computer Configurato Computer Standard
Ultima revisione 27/03/2003
Ruolo
Definisce il ruolo svolto nell’associazione
work forPerson Company
employee employer
1..* 0..1
Person
0..1
0..1
husband
wife
is married to
Ultima revisione 27/03/2003
Esercizio 1(Società indagini statistiche)
Risposta
TestoCasella
Intervis ta
DataOra 1. .* 1..*
Intervistato
SessoEtàProfessione 1 1
Cliente Registrato
Dati AnagraficiIdentificatorePasswordPrivato
Rapporto
TitoloAbstractTestoGrafici
0..* 0..*
Domanda
Testo
1..*
1
ha
Questionario
TitoloCodice
1
1
pubblica
1 1..*
acquista
0..* 0..*
1
1
1. .*1
1
1..*
1. .* 1..*1 1
Ultima revisione 27/03/2003
Esercizio 1- Variante(Società indagini statistiche)
Risposta
TestoCasella
Intervista
DataOra 1..* 1..*
Intervistato
SessoEtàProfessione 1 1
Cliente Registrato
Dati AnagraficiIdentificatorePassword
Domanda
Testo
1..*
1
ha
Questionario
TitoloCodice
1
1..*1..*
1
1
1..*
1..* 1..*1 1
Cliente Privato
Rapporto
TitoloAbstractTestoGrafici
11 11
pubblica0..*
0..*
0. .*
0..*
acquista
AziendaRapporto Critico
Analisi0..*0..* 0..*0..*
acquista
partecipa
Ultima revisione 27/03/2003
Riepilogo
Rappresentazione EsternaDiagrammi dei casi d’uso: come il sistema si “mostra” all’utente (interno o esterno)
Rappresentazione InternaDiagrammi delle attività: specifica dei flussi di lavoroDiagrammi delle classi: specifica della caratteristiche e delle corrispondenti relazioni tra gli insiemi informativi gestiti dal sistema.Diagrammi di stato: specifica degli stati in cui un oggetto (istanza di una classe) può venirsi a trovare durante il suo ciclo di vita
Cenni a diagrammi degli stati
Ultima revisione 27/03/2003
Eventi
Qualcosa che accade e che ha rilevanza per un oggettoTipologie di eventi che ci interessano:
Evento temporale: avviene dopo un periodo di tempo specificato (es. dopo 5 minuti)Evento di cambiamento: avviene quando viene soddisfatta una particolare condizione (es. quando il num. Ordini = “1000”)
Il modo in cui un oggetto evolve in corrispondenza di un evento dipende, in parte, dallo stato in cui si trova.
Ultima revisione 27/03/2003
Stato
Uno stato è una condizione nel quale un oggetto può venirsi a trovare durante il suo ciclo di vita.L’oggetto permane in un certo stato per un periodo limitato di tempo.Un oggetto in un particolare stato attende un evento che possa potenzialmente farlo evolvere.
Ultima revisione 27/03/2003
Esempio
Stato Ordine[registrato]
Ordine[In progress]
Ordine[spedito]
L’ordine viene registratosul libro mastro delle vendite
L’ordine è in fase di valutazione
L’ordine viene spedito
Ultima revisione 27/03/2003
Transizioni (1)
Una transizione corrisponde al passaggio da uno stato (sorgente) ad un altro (obiettivo o destinazione)La transizione viene abilitata a fronte di un evento che interessa un particolare oggetto (trigger)Sarebbe possibile specificare transizioni che avvengono incondizionatamente (triggerless)Useremo sempre transizioni con trigger
Ultima revisione 27/03/2003
Transizioni (2)
Ad una transizione dotata di trigger posso inoltre associare:
Condizioni di guardia: ossia un’espressione che deve essere vera prima che la transizione possa scattareAzione: viene eseguita prima che l’oggetto possa entrare nello stato di destinazione
Paradigma: ECA (event, condition, action)
Ultima revisione 27/03/2003
Esempio di transizione (1)
Evento [Condizione]
AzioneTransizione
Ordine[registrato]
Ordine[In progress]
Ordine[spedito]
Imballato
Carica furgone
Ricevuto [corretto]
Registra
Ultima revisione 27/03/2003
Stato Concorrenti (AND)
Evento [Condizione]
AzioneTransizione
Ordine[registrato]Ordine
[In progress]
Ordine[spedito]
Imballato
Carica Furgone
AND
Gestione Finanziaria
Gestione Fisica
Ultima revisione 27/03/2003
Riassunto elementi grafici
Stato
Decomposizione AND
evento
azione
Transizione
Stato iniziale
Stato finale
Ultima revisione 27/03/2003
Flussi di lavoro e informazioni
E’ possibile rappresentare il flusso di processo e il cambiamento di stato degli oggetti su di un unico diagramma.I due flussi sono riportati separatamente
Flusso informativo
Flusso di processoAttività2
Attività1
Oggetto 2[stato]
Oggetto 1[stato]
Ultima revisione 27/03/2003
Attività e flussi degli oggettiCustomer WarehouseSales
Order[in progress]
Order[delivered]
Order[forwarded]
Order[completed]
Requestproduct
Shipproduct
Pay bill
Receiveorder
Processorder
Findproduct
Bill[unpaid]
Bill[paid]
Ultima revisione 27/03/2003
Ringraziamenti
Ringrazio il Prof. Luciano Baresi del Politecnico di Milano per il materiale didattico fornitomi a supporto della realizzazione di questi lucidi.Ringrazio inoltre l’Ing. Michele Melchiori dell’Università di Brescia per i preziosi consigli.