Diapositiva 1
Transcript
Diapositiva 1
UML RELOADED Riccardo Golia Microsoft MVP Solutions Architect ASPItalia.com / WinFXItalia.com E-mail: [email protected] Blog: http://blogs.aspitalia.com/rickyvr/ Chi sono • Microsoft Most Valuable Professional – Visual Developer Solutions Architect • Staff member di ASPItalia.com / WinFXItalia.com (http://www.aspitalia.com/) • Fondatore del Gruppo Utenti Italiano Solution Architect (GUISA – http://www.guisa.org/) • Fondatore del Wiki di UGIdotNET (User Group Italiano .NET – http://wiki.ugidotnet.org/) Visual Studio 2005 è disponibile Scegli il prodotto per te: www.microsoft.it/msdn/vs2005/ – Visual Studio 2005 Team System • Visual Studio Team Editions con MSDN Premium (for Architects, Developers, Testers, Database Professionals) • Visual Studio Team Suite con MSDN Premium • Visual Studio Team Foundation Server • Visual Studio Team Test Load Agent – Strumenti professionali Visual • Visual • Visual • Visual • Studio Studio Studio Studio 2005 2005 2005 2005 Professional Professional con MSDN Professional Professional con MSDN Premium Tools for Microsoft Office System – Altri strumenti • Visual SourceSafe 2005 • VisualFox Pro 9.0 – Strumenti di base • Visual Studio 2005 Standard • Visual Studio 2005 Express Edition Dove acquistare: www.microsoft.it/msdn/rivenditori/ Per informazioni: [email protected] Agenda • Introduzione • I tre approcci di UML • Classificazione dei diagrammi • Diagramma dei casi d‟uso [*] • Diagramma delle classi [*] • Diagramma di sequenza [*] [*] UML Distilled Architecture Days Segrate, 18-19 ottobre 2006 • Diagramma di comunizazione • Diagramma degli stati • Diagramma delle attività • Diagramma dei package • Diagramma di deployment • Riferimenti utili Cosa è UML 1/2 • UML (Unified Modeling Language) è una famiglia di notazioni grafiche basate su meta-modello per la descrizione e la rappresentazione di un sistema software basato sul paradigma orientato agli oggetti (ObjectOriented). • Notazione: insieme di elementi grafici aggregati a formare diversi diagrammi, ciascuno dedicato a descrivere un diverso aspetto del sistema software. • Meta-modello: schema che definisce i concetti stessi di UML al fine di aumentarne il rigore formale per rendere possibile la trasformazione delle notazioni in codice sorgente e viceversa. Cosa è UML 2/2 • UML introduce un livello di astrazione maggiore rispetto ai linguaggi di programmazione per agevolare la discussione sulle scelte di disegno. • L‟utilizzo più diffuso di UML è in un‟ottica di modellazione software: gli elementi dei diagrammi corrispondono direttamente agli elementi del sistema software. • In alternativa, UML può essere usato secondo una prospettiva concettuale, orientata alla rappresentazione dei concetti e degli elementi presenti nel dominio reale. Storia di UML • In principio, negli anni ‟80, regnava il caos: tanti metodi e nessuna standardizzazione. • Nel 1997 è arrivato UML 1.0 con l‟importante contributo dei “Tre Amigos” della Rational (Rumbaugh, Jacobson e Booch). • Da allora il Object Management Group controlla e definisce lo standard UML. • Siamo alla versione 2.0! I tre approcci di UML • UML come abbozzo (sketch) – – – – Documentazione, discussione e condivisione delle idee Basso rigore formale Selettività: focalizzazione solo su alcuni aspetti dell‟applicazione Bassa, se non nulla dipendenza dal tool di modellazione • UML come progetto (blueprint) – – – – Completezza Alto rigore formale Forward e reverse engineering Forte dipendenza dal tool di modellazione • UML come linguaggio di programmazione – – – Diagrammi compilabili No forward e reverse engineering Fortissima dipendenza dal tool di modellazione UML come abbozzo UML come progetto UML come linguaggio Tool UML 2.0 • • • • • • • • • • • Altova UModel 2005 ARTiSAN's Real-time Studio Borland Together 2006 for Eclipse Computas' Metis with UML 2.0 Template Embarcadero Describe IBM Rational Software Architect and Modeler I-Logix Rhapsody MetaMatrix MetaBase Modeler Mia Software (Sodifrance) Modelin-Action Mentor Graphics' EDGE UML Suite MID's InnovatorAOX 2006 Object eXcellence • • • • • • • • • No Magic's MagicDraw UML OMONDO EclipseUML Studio Pathfinder Solutions' PathMATE 5.2 Open Source StarUML sponsored by Plastic Software SOFTEAM's version 6 of its Objecteering UML Case tool Sparx Systems Enterprise Architect Sun Microsystems' Java Studio Enterprise Pattern Weaver Ver. 2.0 Technologic Arts Inc. (Japanese) Telelogic's TAU Developer and TAU Architect Classificazione dei diagrammi 1/2 • Diagrammi strutturali: – – – – – – Diagramma Diagramma Diagramma Diagramma Diagramma Diagramma delle classi degli oggetti di deployment dei package dei componenti di struttura composita [*] [*] Novità di UML 2.0 Classificazione dei diagrammi 2/2 • Diagrammi comportamentali: – Diagramma dei casi d‟uso – Diagramma di interazione: • • • • Diagramma Diagramma Diagramma Diagramma di di di di sequenza comunicazione interazione generale [*] temporizzazione [*] – Diagramma di macchina a stati – Diagramma delle attività [*] Novità di UML 2.0 Diagramma dei casi d‟uso 1/6 • E‟ un diagramma comportamentale. • Serve per identificare i requisiti funzionali di un sistema tramite la descrizione delle interazioni del sistema stesso con le entità ad esso esterne. • Uno scenario è una sequenza di passi che caratterizzano una particolare interazione col sistema. Ciascun caso d‟uso rappresenta un insieme di scenari che hanno tra loro in comune lo scopo finale dell‟interazione. • I diagrammi dei casi d‟uso sono alla base della definizione delle caratteristiche funzionali di un sistema software. Diagramma dei casi d‟uso 2/6 • Sistema Parte dell‟applicazione che svolge una funzione specifica. • Attore Rappresenta qualcosa o qualcuno che interagisce col sistema. • Caso d’uso Azione intrapresa da un attore nell‟ambito del sistema. • Relazione Collega gli attori con i casi d‟uso, piuttosto che attori e casi d‟uso tra loro: – – – – relazione relazione relazione relazione di di di di associazione (tra attori e casi d‟uso) inclusione (tra casi d‟uso) estensione (tra casi d‟uso) generalizzazione (tra casi d‟uso e tra attori) Diagramma dei casi d‟uso 3/6 • Relazione di inclusione: il caso d‟uso è esteso obbligatoriamente dal caso d‟uso a cui è collegato. • Relazione di estensione: il caso d‟uso è esteso facoltativamente dal caso d‟uso a cui è collegato. Si noti il senso della freccia invertito. Diagramma dei casi d‟uso 4/6 Relazione di associazione Attore Relazione di inclusione Relazione di estensione Relazione di generalizzazione Casi d’uso Diagramma dei casi d‟uso 5/6 Compilazione di un ordine Per compilare un ordine, il cliente deve poter associare ad esso i suoi dati reperibili in funzione del codice cliente o del nominativo, e i dati del prodotto reperibili tramite il codice dell’articolo, la descrizione o la categoria merceologica. Il sistema deve calcolare il prezzo del prodotto in funzione di eventuali sconti associati al cliente e verificare la disponibilità a magazzino dell’articolo richiesto. Diagramma dei casi d‟uso 6/6 Inoltro di un ordine dell’eStore Il cliente, una volta validato, può inoltrare l’ordine. L’ordine deve essere verificato in ogni sua parte per evitare l’inoltro di informazioni non esatte. L’upload dell’ordine può essere fatto secondo due modalità: standard e prioritaria. Con la modalità standard viene inviata una email di richiesta, nel caso di ordine prioritario i dati vengono direttamente inviati al sistema gestionale per una loro gestione immediata. Diagramma delle classi 1/6 • E‟ il diagramma più conosciuto ed usato. • E‟ un diagramma strutturale, statico. • Descrive la struttura delle classi che compongono il sistema software e identifica le relazioni statiche esistenti tra le classi stesse. • Permette di individuare le dipendenze tra le classi. Diagramma delle classi 2/6 • Classi: • • • • • • • • • • Associazioni semplici e associazioni bidirezionali Classi di associazione Molteplicità Generalizzazioni Aggregazione e composizione Dipendenze Note e vincoli Interfacce e classi astratte Classi parametriche Enumerazioni – Nome (fully-qualified: package::nome_classe) – Attributi: visibilità nome : tipo molteplicità = default {proprietà} – Operazioni: visibilità nome ([direzione nome : tipo = default]*) : tipo di ritorno {proprietà} – Visibilità delle caratteristiche: + public, – private, # protected, ~ package – Caratteristiche statiche Diagramma delle classi 3/6 Interfaccia Interfaccia Operazioni Vincolo Attributi Nota Generalizzazione Composizione Dipendenza Associazione Classe Molteplicità Diagramma delle classi 4/6 • Classi di associazione Le classi di associazione permettono di aggiungere attributi e operazioni alle associazioni tra classi. • Associazioni bidirezionali Le associazioni bidirezionali sono costituite da una coppia di proprietà associate alle due classi, una l‟inversa dell‟altra, dotate anche di molteplicità diverse. Diagramma delle classi 5/6 • Aggregazione Rappresenta la relazione fra un aggregato e le sue parti costitutive, dove ciascuna parte può esistere indipendentemente dall‟aggregato. • Composizione Rappresenta la relazione fra un aggregato e le sue parti costitutive, dove ciascuna parte non può esistere senza la classe complessiva. Le parti per esistere necessitano della classe intera, la cui distruzione comporta a cascata la distruzione delle sue parti. Diagramma delle classi 6/6 • Classi astratte • Caratteristiche statiche • Classi parametriche • Enumerazioni Diagramma di sequenza 1/5 • E„ un diagramma comportamentale, di interazione dinamica. • E‟ il diagramma di interazione più usato. • Descrive la collaborazione di un insieme di oggetti che collettivamente hanno l‟onere di implementare un determinato comportamento. • Documenta generalmente il comportamento di un singolo scenario. • Include gli oggetti e i messaggi scambiati tra di essi durante l‟esecuzione di un caso d‟uso particolare. Diagramma di sequenza 2/5 • Partecipante Un oggetto attivo o una entità che partecipa allo scenario descritto dal diagramma di sequenza. • Messaggio – Sincrono (in genere una chiamata a funzione): l‟oggetto chiamante rimane in attesa che l‟esecuzione della funzione invocata sia terminata prima di procedere. Simbolo: – Asincrono: non c‟è bisogno di aspettare la risposta per procedere nella computazione. Simbolo: – Ritorno: rappresenta il valore ritornato in seguito all‟invocazione di una funzione. Simbolo: Diagramma di sequenza 3/5 Found message Partecipanti Attivazione Linea di vita Messaggi sincroni Messaggio di ritorno Diagramma di sequenza 4/5 • Creazione di partecipanti • Distruzione di partecipanti • Chiamata interna Diagramma di sequenza 5/5 • Cicli e condizioni: – loop: ciclo – alt: condizione (if…then…else) – opt: condizione (if…then) Diagramma di comunicazione 1/2 • E‟ un diagramma comportamentale. • Pone enfasi sulle comunicazioni esistenti tra i diversi oggetti di un sistema e sulla successione delle chiamate. • E‟ meno “potente” del diagramma di sequenza. Diagramma di comunicazione 2/2 Sequenza vs Comunicazione Diagramma degli stati 1/4 • E‟ un diagramma comportamentale. • E‟ detto anche “diagramma di macchina a stati”. • Descrive l‟evoluzione dello stato interno di un oggetto/sistema in base alle condizioni che lo tendono a modificare. • Descrive ottimamente il comportamento di un oggetto in più casi d‟uso, non mostra le collaborazioni tra oggetti. Diagramma degli stati 2/4 Stato iniziale Transizioni Evento Guardia Azione Stato finale Stati Diagramma degli stati 3/4 Diagramma degli stati 4/4 Diagramma delle attività 1/3 • E‟ un diagramma comportamentale. • Descrive la logica procedurale, i processi di business e i workflow in un‟ottica di flusso applicativo. • Rispetto al flowchart supporta l‟elaborazione parallela. • Permette di rappresentare i flussi specificando le diverse responsabilità. Diagramma delle attività 2/3 Nodo iniziale Azione Fork Decisione Guardia Flusso Merge Nodo finale Join Diagramma delle attività 3/3 Partizioni (swimlanes) Diagramma dei package 1/2 • E‟ un diagramma strutturale. • Mostra la struttura di un sistema ad un livello di granularità maggiore rispetto al diagramma delle classi (a livello di namespace). • E‟ estremamente utile per descrivere la suddivisione logica di un sistema e per documentare le dipendenze tra le diverse parti costituenti. Diagramma dei package 2/2 Diagramma di deployment 1/2 • E‟ un diagramma strutturale. • Permette di descrivere la struttura fisica di un sistema. • Mostra come i diversi componenti devono essere distribuiti sulle macchine fisiche. Diagramma di deployment 2/2 Riferimenti utili • UML distilled: a brief guide to the standard object modeling language – Third edition Martin Fowler – Pearson Ed. Addison Wesley – 2004 • Applying UML and patterns: an introduction to objectoriented analisys and design and iterative development – Third edition Craig Larman – Pearson Ed. Prentice Hall PTR – 2005 • Object Management Group www.omg.org • UML Resource Page (OMG) www.uml.org