Introduzione a UML
Transcript
Introduzione a UML
Introduzione a UML Adriano Comai 1998-2001 Introduzione a UML Adriano Comai 1998-2001 [email protected] Pag. 1 Introduzione a UML Adriano Comai 1998-2001 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 [email protected] Pag. 2 Introduzione a UML Adriano Comai 1998-2001 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 [email protected] Pag. 3 Introduzione a UML Adriano Comai 1998-2001 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) [email protected] Pag. 4 Introduzione a UML Adriano Comai 1998-2001 ...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”) [email protected] Pag. 5 Adriano Comai 1998-2001 Introduzione a UML 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 dell’OMG, e soggetta a procedure ben definite per ogni cambiamento ! versione attuale: 1.4 ! documenti ufficiali: www.omg.org [email protected] Pag. 6 Introduzione a UML Adriano Comai 1998-2001 nuove tecniche e diagrammi ? • UML è un’evoluzione 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 [email protected] Pag. 7 Adriano Comai 1998-2001 Introduzione a UML Booch OOD 91 OOAD 94 Rumbaugh (OMT) 91 Jacobson (Objectory / OOSE) 92 pre-istoria di UML 94 (RATIONAL) Ott. 95 UNIFIED METHOD NOTATION (vers. 0.8) Ott. 95 (RATIONAL) Lug. 96 UNIFIED MODELING LANGUAGE (vers. 0.9) Microsoft, HP, Oracle e altri Gen. 1997 UML 1.0 IBM, Platinum e altri OOSE Object Oriented Software Engineering OMT Object Modeling Technique Nov. 1997 UML 1.1 [email protected] Pag. 8 Adriano Comai 1998-2001 Introduzione a UML storia di UML novembre 1997: dicembre 1998: giugno 1999: maggio 2001: versione 1.1 versione 1.2 versione 1.3 versione 1.4 ? 2002 : versione 2.0 [email protected] Pag. 9 Introduzione a UML Adriano Comai 1998-2001 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 [email protected] Pag. 10 Adriano Comai 1998-2001 Introduzione a UML diagrammi UML diagrammi “logici”: diagramma dei casi d’uso (use case) diagramma delle classi (class) diagramma di sequenza (sequence) diagramma di collaborazione (collaboration) diagramma di stato (statechart) diagramma delle attività (activity) interaction diagrammi di implementazione (implementation) : diagramma dei componenti (component) diagramma di distribuzione (deployment) [email protected] Pag. 11 Adriano Comai 1998-2001 Introduzione a UML diagramma dei casi d’uso Diagramma dei casi d'uso: vendita per corrispondenza effettua ordine Venditore verifica stato avanzamento Customer attore: un soggetto esterno al sistema (essere umano, altro sistema, …) [email protected] caso d’uso: una particolare modalità di utilizzo del sistema Pag. 12 Introduzione a UML Adriano Comai 1998-2001 casi d’uso : a cosa servono • rappresentano le modalità di utilizzo del sistema da parte di uno o più utilizzatori (attori) • descrivono l’interazione tra attori e sistema, senza rivelare l’organizzazione 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 d’uso aiuta a scoprire i requisiti [email protected] Pag. 13 Adriano Comai 1998-2001 Introduzione a UML ruolo dei casi d’uso Acquirente Venditore requisiti caso d’uso: effettua ordine unità di rilascio componenti software Ordine DataArrivo Numero Prezzo verifica( ) evadi( ) Cliente nome indirizzo 0..* [email protected] 1 StabilisciCredito( ) casi prova Pag. 14 Adriano Comai 1998-2001 Introduzione a UML diagramma delle classi nomeclasse Libro cod_libro titolo data edizione ISBN 0..* data acquisizione richiesta( ) restituzione( ) create( ) pubblicato da 1 Editore ragione sociale nome breve indirizzo sede telefono attributi variazione dati editore( ) 1..* scritto da 0..* Autore 0..* Libro prezioso valore operazioni nome cognome anno nascita anno morte variazione anagrafica( ) classe: una tipologia di oggetti, con propri attributi ed operazioni [email protected] valorizza( ) Prestito 0..* Utente variazione anagrafica() Pag. 15 Adriano Comai 1998-2001 Introduzione a UML diagramma delle classi Libro cod_libro titolo data edizione ISBN 0..* data acquisizione richiesta( ) restituzione( ) create( ) pubblicato da 1 associazione (relationship) Editore ragione sociale nome breve indirizzo sede telefono variazione dati editore( ) 1..* scritto da 0..* Autore 0..* Libro prezioso valore nome cognome anno nascita anno morte variazione anagrafica( ) valorizza( ) Prestito gerarchia di specializzazione (superclassesottoclasse) [email protected] 0..* Utente variazione anagrafica() classe associativa Pag. 16 Introduzione a UML Adriano Comai 1998-2001 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 …) [email protected] Pag. 17 Adriano Comai 1998-2001 Introduzione a UML : FormRichiesta : Utente Prestito biblioteca consente all'utilizzatore di richiedere in prestito uno o più libri 1: RichiestaPrestito 2: L'utente fornisce i dati relativi al libro (ai libri) che vuole in prestito. 6: err: utente non censito ( ) Il sistema verifica se l'utente è censito, 5: : Richiesta Prestito : Utente : Libro : Prestito messaggio oggetto 3: ControlloUtentePerPrestito ( ) 4: 7: PrestitiDelCliente ( ) 10: err: utente deve restituire Verifica quindi se ha libri in prestito da restituire, o se ne ha gi à tre in prestito, segnal a l'impossibilità del prestito. 9: 8: 11: richiesta (cod_libro) 14: 13: 12: Prestito ( ) 15: err: libro già in prestito Altrimenti il sistema controlla se i libri sono disponibili, e se lo son o li fornisce all'utente, altrimenti segnala l'errore specifica di scenario (caso d’uso) [email protected] attività dell’oggetto diagramma di sequenza Pag. 18 Introduzione a UML Adriano Comai 1998-2001 diagramma di sequenza: a cosa serve • evidenzia il modo in cui uno scenario (uno specifico percorso in un caso d’uso) 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 [email protected] Pag. 19 Adriano Comai 1998-2001 Introduzione a UML diagramma di collaborazione 1: RichiestaPrestito : FormRichiesta Prestito : Utente biblioteca 6: err: utente non censito ( ) 10: err: utente deve restituire 15: err: libro già in prestito 11: richiesta (cod_libro) 12: Prestito ( ) : Prestito [email protected] 5: 9: 14: 2: : Richiesta Prestito 3: ControlloUtentePerPrestito ( ) 13: : Libro oggetto messaggio 4: 8: : Utente 7: PrestitiDelCliente ( ) Pag. 20 Introduzione a UML Adriano Comai 1998-2001 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 [email protected] Pag. 21 Adriano Comai 1998-2001 Introduzione a UML diagramma di stato evento stato iniziale transizione di stato stato acquisizione libro( dati libro, autori, editore ) acquisito prestito( data ) restituzione( data restituzione ) in prestito scadenza termini cancellazione libro( ISBN ) stato finale restituzione( data restituzione ) sollecito in ritardo cancellazione libro( ISBN ) [email protected] Pag. 22 Introduzione a UML Adriano Comai 1998-2001 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 l’oggetto può passare ad un nuovo stato (transizione) [email protected] Pag. 23 Adriano Comai 1998-2001 Introduzione a UML Cliente Vendite Magazzino ordina prodotti transizione paga attività acquisisce ordine prepara prodotti riceve prodotti spedisce prodotti barra di sincronizzazione diagramma di attività [email protected] Pag. 24 Introduzione a UML Adriano Comai 1998-2001 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à [email protected] Pag. 25 Adriano Comai 1998-2001 Introduzione a UML Cliente Vendite ordina prodotti : Ordine [effettuato] Magazzino : Ordine [inserito] paga acquisisce ordine prepara prodotti riceve prodotti spedisce prodotti : Ordine [spedito] [email protected] : Ordine [completato] Action-Object Flow diagram Pag. 26 Introduzione a UML Adriano Comai 1998-2001 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 [email protected] Pag. 27 Adriano Comai 1998-2001 Introduzione a UML diagramma dei componenti dipendenza database server componente <<Table>> Ordini Form Inserimento Ordine <<Table>> Clienti package [email protected] Il Form conosce il DataBase Server, e può essere coinvolto da ogni suo cambiamento Pag. 28 Introduzione a UML Adriano Comai 1998-2001 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 [email protected] Pag. 29 Adriano Comai 1998-2001 Introduzione a UML diagramma di distribuzione client server locale tcp / ip connessione tra nodi tcp / ip server remoto nodo [email protected] Pag. 30 Introduzione a UML Adriano Comai 1998-2001 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, l’architettura fisica del sistema [email protected] Pag. 31 Adriano Comai 1998-2001 Introduzione a UML 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 [email protected] Pag. 32 Introduzione a UML Adriano Comai 1998-2001 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 un’ampia gamma di possibili modalità di utilizzo, tra le quali i progettisti sono liberi di scegliere [email protected] Pag. 33 Introduzione a UML Adriano Comai 1998-2001 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 [email protected] Pag. 34 Adriano Comai 1998-2001 Introduzione a UML 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 [email protected] Pag. 35