Upload
others
View
4
Download
0
Embed Size (px)
Citation preview
1
Unified Modeling Language (UML)
Richiami dei diagrammi di base
per l’utilizzo nel corso di RPPI
Rielaborazione delle slide proposte da M. Cossentino
2
Mary Loomis, HP - Software Technology
Laboratory:
“… la progettazione visuale e le tecniche di
rappresentazione visuale (…) permettono di
rappresentare le specifiche in un modo comprensibile
sia per le persone che per i tool di sviluppo”
Perchè usare la progettazione visuale?
3
• John Roskill, Microsoft - Director of Product
Marketing for Microsoft Visual Studio:
“… Noi riteniamo la progettazione visuale molto
importante nello sviluppo delle applicazioni di livello
‘enterprise’ basate su componenti (…) perché
permette di gestire la complessità dell’applicazione.”
Perchè usare la progettazione visuale?
4
Cosa è l’UML
• UML è un linguaggio per :• La specifica,
• La visualizzazione,
• La produzione
• La documentazione
• Può essere applicato a:• Sistemi software,
• Modelli economici
• Sistemi non software
• E’ il successore dei linguaggi di progettazione utilizzati nei metodi di Booch(1), OOSE/Jacobson(2), OMT/Rumbaugh(3), …
• UML non è un metodo(come i metodi di DeMarco,
Jacobson, Rumbaugh)
(1) – Object-Oriented Analysis and Design with Applications (OOADA) by Booch: http://panoramix.univ-paris1.fr/CRINFO/dmrg/OODOC/oodoc/oo-8.html
(2) - Object-Oriented Software Engineering (OOSE) by Jacobson et. al. : http://panoramix.univ-paris1.fr/CRINFO/dmrg/OODOC/oodoc/oo-12.html
(3) - Object Modelling Technique (OMT) by Rumbaugh et. al. : http://panoramix.univ-paris1.fr/CRINFO/dmrg/OODOC/oodoc/oo-7.html
5
La struttura dell’UML
• Come altri linguaggi di specifica l’UML include:
• Elementi di modellazione – semantica e concetti
fondamentali per la modellazione.
• Notazione – rappresentazione grafica degli elementi
del modello.
• Linee guida – raccomandazioni per l’utilizzo.
6
UML: viste e diagrammi
7
Classificazione(2)
Area Vista Diagramma
Casi d’uso Diagr. dei casi d’uso
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
(2) 'The Unified Modeling Language Reference Manual' - J. Rumbaugh, I. Jacobson, G. Booch - Addison-Wesley
Descrive le entità del sistema e le loro relazioni
Descrive il comportamento del sistema nel tempo
Descrive l’organizzazione del sistema in unità
gerarchiche
8
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
Area Strutturale
9
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
Vista dei casi d’uso
10
Cosa è
E’ dedicata alla comprensione e utilizzo del sistema
Questa vista comprende gli attori ed i casi d’uso insiemecon le loro interazioni.
I diagrammi di questa vista sono:1 - diagramma dei casi d’uso2 - diagramma di sequenza(*)3 - diagramma di collaborazione(*)
(*) appartengono a questa vista in quanto realizzazioni dei casi d’uso
11
Il diagramma dei casi d’uso
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
12
Diagramma dei casi d’uso – Cosa è
I diagrammi dei casi d’uso rappresentano unavista dall’esterno del sistema.
Mostra le relazioni tra attori e casi d’uso nel sistema.
acquistare articoli
log incassierecliente
rimborsare articoli venduti
attore: un utilizzatore del sistema
caso d'uso: un "modo" di utilizzare il sistema
13
Attore – cosa è
Qualcuno o qualcosa,
esterno al sistema, che
interagisce con i casi d’uso.
14
Cons ulta catalogo
Acquis ta articolo
(f rom Att iv ità i n ne goz io)
Cli ente
Venditore
Effettua pagam ento
(f ro m A tt iv ità i n neg oz io )
Servizi POS
Caso d’uso – cosa è
Un modello di comportamento supportato dal sistema.
E’ una sequenza di transazioni effet-tuate tra l’attore ed il sistema durante una sessione di dialogo.
AttoreAttore
RelazioneRelazione
CasoCaso dd’’usouso
CasiCasi dd’’usouso del del gruppogruppo ““attivitattivitààin in negozionegozio””
15
Relazioni – cosa sono
• Sono associazioni tra attori e casi d’uso
• I principali tipi di relazioni:
Inclusione in un caso d’uso di base difunzionalità illustrate in altri casi d’uso
Inclusione
Tra un caso d’uso più generale ed uno piùspecifico che eredita dal primo alcune funzionalità e ne aggiunge altre
Generalizzazione
Una relazione di estensione dal caso d’uso A al caso d’uso B indica che il secondo può includere (sotto specifiche condizioni dettagliate nella estensione) il comportamento del caso d’uso A.
Estensione
Il percorso della comunicazione tra un attore ed il caso d’uso cui partecipa
Associazione
NotazioneDescrizioneRelazione
<<extend>>
<<include>>
16
Esempio
Cambia residenza
Fornisce i dati
<<include>>
Aggiorna passaporto
<<extends>>
Cambia residenza dall’estero
17
Miglioramento delle comunicazioni(1)
Analisti commerciali ed esperti del dominio defini-scono i requisiti del sistema
Progettisti e sviluppatori del software realizzano il sistema sulla base dei requisiti fissati
Questi due gruppi devono collaborarestrettamente ma spesso la loro comunicazione è
resa difficoltosa dalle differenze nella terminologia usata.
L’UML fornisce un modello che diventa uno standard di comunicazione tra i due domini.
18
Vista logica (statica)
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
19
La vista logica – Cosa è
Descrive le entità del sistema.
In questa vista figurano le classi con le loro relazioni statiche. In effetti viene anche descritto il comportamento dinamico delle classi.
A questa vista appartiene il diagramma delle classi
20
Il diagramma delle classi
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
21
Cosa è una classe
Una collezione di oggetti con simile struttura, comportamento e relazioni.
Una classe contiene proprietà (attributi) e metodi (operazioni)
22
Rappresentazione grafica
Il riquadro superiore contiene il nome della classe e le proprietàgenerali della classe
Il riquadro superiore contiene il nome della classe e le proprietàgenerali della classeIl riquadro centrale contiene la struttura della classeIl riquadro centrale contiene la struttura della classe
Il riquadro della classe contiene gli elementi che determinano il comportamento della classe
Il riquadro della classe contiene gli elementi che determinano il comportamento della classe
23
Relazioni tra le classi
24
Relazioni
• Le relazioni forniscono un percorso per le comunicazioni.
• Esistono vari tipi di relazioni, le principali sono:
• Associazione
• Dipendenza
• Generalizzazione (ereditarietà)
• Realizzazione
25
Spettacolo
LocalitàAutore
Bigl ietto
Prezzo : T_Im porto
Prevendita : T_Importo
0..*
Evento : DataP ost o : Num ero_posto
1
VenditaEvento : DataP ost o : Num ero_posto
Prevendita : T_Importo
1
0..*
Molteplicità = numero di istanze di una classe correlate ad una istanza dell’altra classe.
Relazione di associazione
Descrive le relazioni tra le istanze delle classi e la loro cardinalità.
Relazione diRelazione diassociazioneassociazioneAttributi della relazioneClassiClassi
26
Associazione/aggregazione
Una associazione in cui la relazione è tra un tutto e le sue parti.
Relazione diRelazione diaggregazioneaggregazione
27
Associazione/ composizione
L’elemento composto ha la sola responsabilità della gestione delle sue parti (es.: allocazione e deallocazione).
28
Relazione di dipendenza
Una relazione in cui una classe (il client) dipende da un’altra per un particolare servizio.
29
Relazione di generalizzazione (ereditarietà)
RelazioniRelazioni didigeneralizzazionegeneralizzazione
E’ una relazione tra una classe e la sua sottoclasse dove gli elementi comuni sono contenuti nella classe di livello superiore e le particolarità nelle sottoclassi.
30
A energia eolica A motore Terra Acqua
Camion Barca a vela
Veicolo
Azionato a Ambiente operativo
Ambiente operativoAzionato a
Relazione di generalizzazione (ereditarietà)
{overlapping} {overlapping}
Vincolo di overlapping– le sottoclassi
possono discendere da più di una classe
Vincolo di overlapping– le sottoclassi
possono discendere da più di una classe
Discriminatore –indica una partizione della superclasse
Discriminatore –indica una partizione della superclasse
31
Esempio: iscrizione ai corsi universitari
Il modello del sistema
Informazioni docente
<<Entity>>Corso
<<Entity>>
Offerta Corsi
<<Entity>>
1
1..*
1
1..*
3..103..10
1..*
1
1..*
Informazioni Studente<<Entity>>
Catalogo Corsi
32
Esempio: iscrizione ai corsi universitari
Il modello del sistema
Informazioni docente<<Entity>>
Informazioni Studente<<Entity>>
Informazioni Utente
33
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
La vista implementativa e di distribuzione
34
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
Il diagramma dei Componenti
35
Cosa è
Mostra l’organizzazione e le dipendenze dei moduli software (sorgenti, binari, eseguibili).
36
Componenti
Un componente è la rappresentazione di un file di codice sorgente, una libreria o un eseguibile.
37
Esempio 1
Questo diagramma mostra le dipendenze tra i file nella compilazione
I componenti Trade.cls e TradeLeg.cls rappresentano rispettivamente la classe Trade e la classe TradeLeg
38
Esempio 2
Questo esempio mostra l’abbinamento delle classi con le rispettive librerie di runtime.
La libreria Trade (Trade.dll) dipende dalla classe Slate (Slate.cls) e dalla classe Trade (Trade.cls). Quest’ultima dipende dalla classe TradeLeg.
39
Esempio 3
Questo esempio mostra le interfacce e le chiamate tra componenti eseguibili.
L’eseguibile Trade dialoga con l’eseguibile Contracts attraverso l’inter-faccia TradeContract. Dialoga anche con la libreria Trade attraverso l’interfaccia Trade.
40
Il diagramma di distribuzione
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
41
Cosa è
Il diagramma di distribuzione illustra la configurazione dei nodi di elaborazione durante l’esecuzione, i componenti, i processi e gli oggetti che in essi vivono.
42
Il diagramma di distibuzione
Questo diagramma contiene nodi e connessioni tra nodi.
CONNESSIONEIndica un percorso di
comunicazione tra i nodi.
Queste associazioni possono avere uno stereotipo per
indicare la natura del percorso della comunicazione (ad esempio
il tipo di canale o di rete).
NODOE’ un oggetto fisico di esecuzione del codice. Rappresenta una risorsa
computazionale .
43
Esempio
Registration Database
Main Building
Dorm
Library
44
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
L’area dinamica
45
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
Vista delle Attività
46
Diagramma delle attività
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
47
Cosa è
E’ una variazione di una macchina a stati in cui gli stati rappresentano l’effettuazione di azioni o sottoattività e le transizioni sono dovute al completamentodell’azione o della sottoattività.
Può rappresentare la macchina a stati finiti di una procedura.
48
Esempio: La procedura di evasione di un ordine
Corsia (indica la responsabilità degli oggetti nelle azioni)
Corsia (indica la responsabilità degli oggetti nelle azioni)
49
Area (e vista) di gestione del modello
Area Vista Diagramma
Diagr. dei casi d’uso (Diagr. Sequenza)
Casi d’uso
(Diagr. Collaborazione)
Statica Diagramma delle Classi
Diagr. dei componenti
Strutturale
Implementativa
Distribuzione Diagr. di distribuzione
Macchina a stati finiti Diagr. a stati finiti
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
50
La gestione del modelloUn sistema di grandi dimensioni deve essere diviso in sottosistemi per facilitarne la gestione
Gli elementi del modello vengono raggruppati in uno o più package.
Un package può contenere qualunque elemento o
diagramma UML
51
Utilizzo dei package
Nidificando i package si ottiene una struttura più chiara
Il sistema complessivo può essere visto come un package
52
(From Segreteria)
(From Segreteria)
(From Segreteria)
(From Segreteria)
Diagramma dei casi d’uso con package
Convalida operazione
Studente
Sistema di registrazione
Registrazione ad un corso
Selezione del corsoda insegnare
Docente
Manutenzione Curriculum
Manutenzione Informazioni Studente
Manutenzione Informazioni Docenti
Addetto segreteria
<<uses>>
<<uses>>
<<uses>>
53
Esempio: struttura del modello con package