Pag. 1 comai@acm.org Introduzione a UML !Adriano Comai 1998-2001 Introduzione a UML !Adriano Comai 1998-2001 Pag. 2 comai@acm.org obiettivo di questa introduzione fornire elementi di base su UML introdurre i principali diagrammi fornire indicazioni sulle modalit di utilizzo di UML nello sviluppo delle applicazioni questi temi sono trattati in modo approfondito, con esercitazioni, nel corso Sviluppo di applicazioni con UML http://www.analisi-disegno.com/a_comai/corsi/sk_uml.htm Introduzione a UML !Adriano Comai 1998-2001 Pag. 3 comai@acm.org unified modeling language (UML) linguaggio (e notazione) universale, per rappresentare qualunque tipo di sistema (software, hardware, organizzativo, ) standard OMG (Object Management Group), dal nov.1997 autori: Grady Booch Ivar Jacobson Jim Rumbaugh Introduzione a UML !Adriano Comai 1998-2001 Pag. 4 comai@acm.org cos UML (e cosa non ) un linguaggio di rappresentazione dei sistemi, non di programmazione (come Java, VisualBasic, C++, ) serve a progettare un nuovo sistema, o per documentarne uno esistente, senza perdersi nei dettagli dei linguaggi di programmazione universale: pu rappresentare sistemi eterogenei per architettura (dai web ai legacy), per tecnologie, per tipologia applicativa (gestionale, real-time) Introduzione a UML !Adriano Comai 1998-2001 Pag. 5 comai@acm.org ...cos UML (e cosa non ) un linguaggio, non un metodo completo notazione e semantica sono standard ma UML non legato ad uno specifico processo, e non fornisce indicazioni sul proprio utilizzo quindi pu essere (ed ) utilizzato da persone e gruppi che seguono approcci diversi ( indipendente dai metodi) Introduzione a UML !Adriano Comai 1998-2001 Pag. 6 comai@acm.org UML come standard i suoi autori (Booch, Rumbaugh e Jacobson) non hanno il copyright su UML la versione diventata standard OMG ha ricevuto i contributi di molti altri metodologi, e delle pi importanti societ di software mondiali la sua evoluzione a carico dellOMG, e soggetta a procedure ben definite per ogni cambiamento !versione attuale: 1.4 !documenti ufficiali: www.omg.org Introduzione a UML !Adriano Comai 1998-2001 Pag. 7 comai@acm.org nuove tecniche e diagrammi ? UML unevoluzione di modelli e diagrammi preesistenti, non una rivoluzione affinit con altri diagrammi molto noti: Entity - Relationship Flow Chart diagrammi di stato varie notazioni object oriented Introduzione a UML !Adriano Comai 1998-2001 Pag. 8 comai@acm.org Booch
Rumbaugh Jacobson OOD 91 OOAD 94 91 (OMT) (Objectory / OOSE) 92 94 (RATIONAL) Ott. 95 UNIFIED METHOD NOTATION (vers. 0.8) Ott. 95 (RATIONAL) OOSE Object Oriented Software Engineering OMT Object Modeling Technique Lug. 96 UNIFIED MODELING LANGUAGE (vers. 0.9) Microsoft, HP, Oracle e altri Gen. 1997 UML 1.0 IBM, Platinum e altri Nov. 1997 UML 1.1 pre-istoria di UML Introduzione a UML !Adriano Comai 1998-2001 Pag. 9 comai@acm.org storia di UML novembre 1997: versione 1.1 dicembre 1998: versione 1.2 giugno 1999: versione 1.3 maggio 2001: versione 1.4 ? 2002 : versione 2.0 Introduzione a UML !Adriano Comai 1998-2001 Pag. 10 comai@acm.org UML: meta-modello e diagrammi UML basato su un meta-modello integrato, composto da numerosi elementi, collegati tra loro secondo regole precise utilizzando gli elementi del meta-modello possibile creare i modelli per i sistemi da rappresentare molti elementi hanno una icona che li rappresenta graficamente gli elementi del meta-modello possono comparire in diagrammi di diverso tipo le regole permettono verifiche di correttezza Introduzione a UML !Adriano Comai 1998-2001 Pag. 11 comai@acm.org diagrammi UML diagrammi logici: diagramma dei casi duso (use case) diagramma delle classi (class) diagramma di sequenza (sequence) diagramma di collaborazione (collaboration) diagramma di stato (statechart) diagramma delle attivit (activity) diagrammi di implementazione (implementation) : diagramma dei componenti (component) diagramma di distribuzione (deployment) interaction Introduzione a UML !Adriano Comai 1998-2001 Pag. 12 comai@acm.org diagramma dei casi duso verifica stato avanzamento effettua ordine Venditore Customer Diagramma dei casi d'uso: vendita per corrispondenza caso duso: una particolare modalit di utilizzo del sistema attore: un soggetto esterno al sistema (essere umano, altro sistema, ) Introduzione a UML !Adriano Comai 1998-2001 Pag. 13 comai@acm.org casi duso : a cosa servono rappresentano le modalit di utilizzo del sistema da parte di uno o pi utilizzatori (attori) descrivono linterazione tra attori e sistema, senza rivelare lorganizzazione interna del sistema sono espressi in forma testuale, comprensibile anche per i non addetti ai lavori possono essere definiti a livelli diversi (sistema o parti del sistema) ragionare sui casi duso aiuta a scoprire i requisiti Introduzione a UML !Adriano Comai 1998-2001 Pag. 14 comai@acm.org ruolo dei casi duso requisiti caso duso: effettua ordine Venditore Acquirente Ordine DataArrivo Numero Prezzo verifica( ) evadi( ) Cliente nome indirizzo StabilisciCredito( ) 1 0..* unit di rilascio componenti software casi prova Introduzione a UML !Adriano Comai 1998-2001 Pag. 15 comai@acm.org diagramma delle classi nomeclasse classe: una tipologia di oggetti, con propri attributi ed operazioni attributi Libro prezioso valore valorizza( ) scritto da 0..* 1..* Autore nome cognome anno nascita anno morte variazione anagrafica( ) 1 Editore ragione sociale nome breve indirizzo sede telefono variazione dati editore( ) pubblicato da 0..* 0..* Utente variazione anagrafica() 0..* Libro cod_libro titolo data edizione ISBN data acquisizione richiesta( ) restituzione( ) create( ) 0..* 1..* 1 0..* 0..* 0..* Prestito operazioni Introduzione a UML !Adriano Comai 1998-2001 Pag. 16 comai@acm.org diagramma delle classi associazione (relationship) gerarchia di specializzazione (superclasse- sottoclasse) Libro prezioso valore valorizza( ) scritto da 0..* 1..* Autore nome cognome anno nascita anno morte variazione anagrafica( ) 1 Editore ragione sociale nome breve indirizzo sede telefono variazione dati editore( ) pubblicato da 0..* 0..* Utente variazione anagrafica() 0..* Libro cod_libro titolo data edizione ISBN data acquisizione richiesta( ) restituzione( ) create( ) 0..* 1..* 1 0..* 0..* 0..* Prestito classe associativa Introduzione a UML !Adriano Comai 1998-2001 Pag. 17 comai@acm.org diagramma delle classi: a cosa serve rappresenta le classi e gli oggetti che compongono il sistema, ed i relativi attributi ed operazioni specifica, mediante le associazioni, i vincoli che legano tra loro le classi pu essere definito a livelli diversi (analisi, disegno) pu rappresentare diverse tipologie di oggetti (boundary, control, entity ) Introduzione a UML !Adriano Comai 1998-2001 Pag. 18 comai@acm.org oggetto messaggio specifica di scenario (caso duso) attivit delloggetto consente all'utilizzatore di richiedere in prestito uno o pi libri L'utente fornisce i dati relativi al libro (ai libri) che vuole in prestito. Il sistema verifica se l'utente censito, Verifica quindi se ha libri in prestito da restituire, o se ne ha gi tre in prestito, segnal a l'impossibilit del prestito. Altrimenti il sistema controlla se i libri sono disponibili, e se lo son o li fornisce all'utente, altrimenti segnala l'errore : Utente biblioteca : FormRichiesta Prestito : Richiesta Prestito : Libro : Prestito : Utente 1: RichiestaPrestito 2: 11: richiesta (cod_libro) 12: Prestito ( ) 13: 14: 15: err: libro gi in prestito 3: ControlloUtentePerPrestito ( ) 7: PrestitiDelCliente ( ) 5: 6: err: utente non censito ( ) 4: 8: 9: 10: err: utente deve restituire diagramma di sequenza Introduzione a UML !Adriano Comai 1998-2001 Pag. 19 comai@acm.org diagramma di sequenza: a cosa serve evidenzia il modo in cui uno scenario (uno specifico percorso in un caso duso) viene risolto dalla collaborazione tra un insieme di oggetti specifica la sequenza dei messaggi che gli oggetti si scambiano pu specificare nodi decisionali e iterazioni diagrammi di sequenza e diagrammi di collaborazione esprimono informazioni simili, ma le evidenziano in modo diverso Introduzione a UML !Adriano Comai 1998-2001 Pag. 20 comai@acm.org diagramma di collaborazione oggetto messaggio : Utente biblioteca : FormRichiesta Prestito : Richiesta Prestito : Libro : Prestito : Utente 1: RichiestaPrestito 15: err: libro gi in prestito 6: err: utente non censito ( ) 10: err: utente deve restituire 2: 14: 5: 9: 11: richiesta (cod_libro) 13: 3: ControlloUtentePerPrestito ( ) 4: 8: 12: Prestito ( ) 7: PrestitiDelCliente ( ) Introduzione a UML !Adriano Comai 1998-2001 Pag. 21 comai@acm.org diagramma di collaborazione: a cosa serve specifica gli oggetti che collaborano tra loro in un dato scenario, ed i messaggi che si indirizzano la sequenza dei messaggi meno evidente che nel diagramma di sequenza, mentre sono pi evidenti i legami tra gli oggetti pu essere utilizzato a livelli diversi (analisi, disegno), e rappresentare diverse tipologie di oggetti Introduzione a UML !Adriano Comai 1998-2001 Pag. 22 comai@acm.org diagramma di stato evento transizione di stato stato finale stato iniziale acquisito in prestito in ritardo acquisizione libro( dati libro, autori, editore ) prestito( data ) cancellazione libro( ISBN ) sollecito restituzione( data restituzione ) cancellazione libro( ISBN ) scadenza termini restituzione( data restituzione ) stato Introduzione a UML !Adriano Comai 1998-2001 Pag. 23 comai@acm.org diagramma di stato: a cosa serve specifica il ciclo di vita degli oggetti di una classe, definendo le regole che lo governano quando un oggetto si trova in un certo stato pu essere interessato da determinati eventi (e non da altri) come risultato di un evento loggetto pu passare ad un nuovo stato (transizione) Introduzione a UML !Adriano Comai 1998-2001 Pag. 24 comai@acm.org diagramma di attivit attivit transizione barra di sincronizzazione ordina prodotti paga riceve prodotti acquisisce ordine spedisce prodotti prepara prodotti Magazzino Vendite Cliente Introduzione a UML !Adriano Comai 1998-2001 Pag. 25 comai@acm.org diagramma di attivit: a cosa serve a rappresentare sistemi di workflow, oppure la logica interna di un processo (di qualunque livello, dai business process ai processi di dettaglio) permette di rappresentare processi paralleli e la loro sincronizzazione un caso particolare di diagrammi di stato, in cui ogni stato uno stato di attivit Introduzione a UML !Adriano Comai 1998-2001 Pag. 26 comai@acm.org ordina prodotti paga riceve prodotti acquisisce ordine spedisce prodotti : Ordine [effettuato] prepara prodotti : Ordine [inserito] : Ordine [completato] : Ordine [spedito] Magazzino Vendite Cliente Action-Object Flow diagram Introduzione a UML !Adriano Comai 1998-2001 Pag. 27 comai@acm.org diagramma di flusso azione - oggetto: a cosa serve a rappresentare le interazioni tra processi e oggetti un caso particolare di diagramma di attivit un vero e proprio flow chart Introduzione a UML !Adriano Comai 1998-2001 Pag. 28 comai@acm.org diagramma dei componenti componente dipendenza package database server Ordini <<Table>> Clienti <<Table>> Form Inserimento Ordine Il Form conosce il DataBase Server, e pu essere coinvolto da ogni suo cambiamento Introduzione a UML !Adriano Comai 1998-2001 Pag. 29 comai@acm.org diagramma dei componenti: a cosa serve evidenzia l'organizzazione e le dipendenze esistenti tra componenti i componenti sono moduli software, dotati di identit e con un'interfaccia ben specificata i componenti (come a livello logico le classi) possono essere raggruppati in package Introduzione a UML !Adriano Comai 1998-2001 Pag. 30 comai@acm.org diagramma di distribuzione nodo connessione tra nodi client server locale tcp / ip server remoto tcp / ip Introduzione a UML !Adriano Comai 1998-2001 Pag. 31 comai@acm.org diagramma di distribuzione: a cosa serve evidenzia la configurazione dei nodi elaborativi in ambiente di esecuzione (run-time), e dei componenti, processi ed oggetti ubicati in questi nodi permette di rappresentare, a diversi livelli di dettaglio, larchitettura fisica del sistema Introduzione a UML !Adriano Comai 1998-2001 Pag. 32 comai@acm.org benefici portati da UML superamento della "guerra dei metodi" prima di UML, vi erano decine (o centinaia?) di metodi di analisi e disegno OO proposti e praticati oggi, notazione e semantica comuni a livello internazionale risposta ai problemi legati allo sviluppo di sistemi complessi con ambienti visuali maggiore attenzione alla modellazione degli aspetti architetturali il meta-modello comune favorisce le possibilit di comunicazione tra gli strumenti utilizzabili dai progettisti nello sviluppo Introduzione a UML !Adriano Comai 1998-2001 Pag. 33 comai@acm.org UML complesso intende rappresentare qualunque tipo di sistema software, a livelli di astrazione differenziati il numero degli elementi elevato, e in molti casi possibile scegliere tra forme di rappresentazione diverse UML non suggerisce, n tantomeno prescrive una sequenza di realizzazione dei diversi diagrammi offre unampia gamma di possibili modalit di utilizzo, tra le quali i progettisti sono liberi di scegliere Introduzione a UML !Adriano Comai 1998-2001 Pag. 34 comai@acm.org UML va adattato alle proprie esigenze tra i fattori da considerare: settore di attivit (es. militare, finanziario) tipologia di progetto (rischio, complessit) esigenze di conformit a norme e standard comunicazione con committenti e stakeholders comunicazione con fornitori composizione e distribuzione del gruppo di lavoro "non ha senso che tutti usino UML nello stesso modo Introduzione a UML !Adriano Comai 1998-2001 Pag. 35 comai@acm.org UML in sintesi uno standard: uniformit nei concetti e nelle notazioni utilizzate, interoperabilit tra strumenti di sviluppo, indipendenza dai produttori, dalle tecnologie, dai metodi articolato: pu rappresentare qualunque sistema software, a diversi livelli di astrazione complesso: va adattato ("ritagliato") in base alle specifiche esigenze dei progettisti e dei progetti, utilizzando solo ci che serve nello specifico contesto