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