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