Unified Modeling Language (UML) -...

85
Unified Modeling Language (UML) Corso di Sistemi Informativi N.O., A.A 2002-2003 Dipartimento di Elettronica e Informazione, Politecnico di Milano Prof. G. Bracchi Ing. Enzo Colombo Dipartimento di Elettronica e Informazione Politecnico di Milano, Italy [email protected] +39 2 23993477

Transcript of Unified Modeling Language (UML) -...

Page 1: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 2: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 3: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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)

Page 4: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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)

Page 5: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 6: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Use case diagram

Page 7: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 8: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 9: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 10: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 11: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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,…

Page 12: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 13: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 14: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 15: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 16: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 17: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 18: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 19: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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>> [ ]

Page 20: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 21: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Ultima revisione 27/03/2003

Esercizio (livello 0)

Utente

Impiegato

Gestione prestito

Ordine

Responsabile

<<include>>

Approvazione

Verifica ordine

Page 22: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 23: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 24: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 25: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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.

Page 26: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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??

Page 27: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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.

Page 28: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 29: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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.

Page 30: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 31: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Diagrammi delle attività

Page 32: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 33: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Ultima revisione 27/03/2003

Activity Diagram : Elementi grafici

*

Concorrenza dinamica

Attivita’

fork

[condition]

branch

[else]

[condition]

join

merge

start

end

Page 34: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 35: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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;

Page 36: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 37: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Ultima revisione 27/03/2003

Connettori: esecuzione condizionale (2)

Mostraremodulo di acquisto

Ottenere i dettagli dell’acquisto

Memorizzarel’ordine

[OK]

[incompleto]BRANCH

MERGE

Page 38: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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à);

Page 39: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 40: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 41: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 42: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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.

Page 43: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 44: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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.

Page 45: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 46: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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)

Page 47: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 48: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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.

Page 49: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 50: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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]

Page 51: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Diagrammi delle classi

Page 52: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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;

Page 53: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 54: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 55: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Ultima revisione 27/03/2003

Esempio

Professore

nomecognome

create()delete()

Professore

create()delete()

Professore

nomecognome

Professore

Page 56: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 57: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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à

Page 58: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Ultima revisione 27/03/2003

Relazioni tra Classi

Tre sono i tipi principali di relazioni tra classi

Associazione

Generalizzazione

Aggregazione/Composizione

Page 59: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 60: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 61: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

?

Page 62: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

*

Page 63: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Ultima revisione 27/03/2003

Studente Corso

Frequenzapercentualeprofitto

1..* 1..*

Classi associazione

Alcune proprietà potrebbero appartenere all’associazione e non alle parti coinvolte

Page 64: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Ultima revisione 27/03/2003

Generalizzazioni di Classi

Ordine

datanumero

CalcolaImporto()

OrdineUrgente

daEvadereEntrotariffaUrgenzeApplicata

Computer

Computer Configurato Computer Standard

Page 65: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 66: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 67: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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?

Page 68: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 69: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 70: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 71: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 72: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 73: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 74: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Cenni a diagrammi degli stati

Page 75: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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.

Page 76: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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.

Page 77: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 78: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 79: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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)

Page 80: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 81: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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

Page 82: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

Ultima revisione 27/03/2003

Riassunto elementi grafici

Stato

Decomposizione AND

evento

azione

Transizione

Stato iniziale

Stato finale

Page 83: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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]

Page 84: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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]

Page 85: Unified Modeling Language (UML) - homes.di.unimi.ithomes.di.unimi.it/.../SInformatici/mat/sistinfolab/uml/uml/uml.pdf · Unified Modeling Language (UML) Corso di Sistemi Informativi

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.