E3 - UML

Transcript

E3 - UML
11/19/2008
Acquire
Interpret
Transform
Analyze
© 2008 Exeura – Confidential and Proprietary
Copyright Notice
„
This publication may contain Exeura patented or patent
patent-pending
pending
information. It should be considered proprietary and confidential.
„
No part of this publication may be reproduced, reformatted or
transmitted in any form or by any means, electronic or mechanical,
including photocopying, recording or through any information storage
and retrieval system, currently available or developed in the future,
without prior written approval of Exeura. This document is protected
by copyright law and international treaties. Unauthorized reproduction
or distribution of all or part of this document may result in severe civil
and criminal penalties and will be prosecuted to the full extent of the
law.
11/19/2008
© 2008 Exeura – Confidential and Proprietary
Page 2
1
11/19/2008
Unified Modeling Language (UML)
Richiami dei diagrammi di base
per l’utilizzo nel corso di RPPI
11/19/2008Rielaborazione
© 2008 Exeura
Confidential
and Proprietary
delle slide proposte
da– M.
Cossentino
Page 3
Perchè usare la progettazione visuale?
Mary
y Loomis,, HP - Software Technology
gy Laboratory:
y
“… 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”
11/19/2008
© 2008 Exeura – Confidential and Proprietary
Page 4
2
11/19/2008
Perchè usare la progettazione visuale?
John Roskill,, Microsoft - Director of Product Marketing
g 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.”
11/19/2008
© 2008 Exeura – Confidential and Proprietary
Page 5
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. :
11/19/2008
© 2008 Exeura – Confidential and Proprietary
http://panoramix.univ-paris1.fr/CRINFO/dmrg/OODOC/oodoc/oo-7.html
Page 6
3
11/19/2008
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.
11/19/2008
© 2008 Exeura – Confidential and Proprietary
Page 7
Classificazione(2)
Area
Strutturale
Dinamica
Vista
Diagramma
Casi d’uso
d uso
Diagr dei casi d
Diagr.
d’uso
uso
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Descrive il comportamento
Diagramma delle Classi
Statica
del sistema nel tempo
Descrive
del l’organizzazione
Diagr.
Attività le entità
Descrive
g delle attività
sistema
i
e le
l loro
l
relazioni
l sistema
i i
del
unità
Diagr. in
di sequenza
Interazioni
gerarchiche
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
(2) 'The Unified Modeling Language Reference Manual' - J. Rumbaugh, I. Jacobson, G. Booch - Addison-Wesley
Page 8
4
11/19/2008
Area Strutturale
Area
Strutturale
Vista
Diagramma
Diagr. dei casi d’uso
Casi d’uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Attività
Diagr. delle attività
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page 9
Vista dei casi d’uso
Area
St tt
Strutturale
l
Vista
C i d
Casi
d’uso
Diagramma
Diagr dei casi d’uso
Diagr.
d uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Attività
Diagr. delle attività
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
10
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
5
11/19/2008
Cosa è
E’ dedicata alla comprensione e utilizzo del sistema
Questa vista comprende gli attori ed i casi d’uso insieme
con le loro interazioni.
I diagrammi di questa vista sono:
1 - diagramma dei casi d’uso
2 - diagramma di sequenza(*)
3 - diagramma di collaborazione(*)
(*) appartengono a questa vista in quanto realizzazioni dei casi d’uso
11/19/2008
11
© 2008 Exeura – Confidential and Proprietary
Page
Il diagramma dei casi d’uso
Area
St uttu l
Strutturale
Vista
Casi d
d’uso
uso
Diagramma
Diagr dei casi d’uso
Diagr.
d uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Attività
à
Diagr. delle
d ll attivitàà
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
12
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
6
11/19/2008
Diagramma dei casi d’uso – Cosa è
Mostra le relazioni tra attori e casi d’uso nel sistema.
attore: un
utilizzatore
del sistema
I diagrammi dei casi d’uso
rappresentano una vista
dall’esterno del sistema.
acquistare articoli
log in
cliente
cassiere
caso d'uso: un
"modo" di utilizzare il
sistema
rimborsare
articoli venduti
11/19/2008
13
© 2008 Exeura – Confidential and Proprietary
Page
Attore – cosa è
Qualcuno o qualcosa, esterno al sistema,
che interagisce con i casi d’uso.
11/19/2008
14
© 2008 Exeura – Confidential and Proprietary
Page
7
11/19/2008
Caso d’uso – cosa è
Caso d’uso
C ons ulta catalogo
Acquis ta articolo
(f rom Att iv ità i n ne goz io)
Un modello di
comportamento supportato
dal
d l sistema.
i t
E’ una sequenza di
transazioni effet-tuate tra
Venditore
l’attore ed il sistema
durante una sessione di
dialogo.
C li ente
Effettua pagam ento
Servizi POS
Casi d’uso del
gruppo “attività
Relazione
in negozio”
© 2008 Exeura – Confidential and Proprietary
(f ro m A tt iv ità i n neg oz io )
Attore
11/19/2008
15
Page
Relazioni – cosa sono
„
Sono associazioni tra attori e casi d’uso
„
I principali tipi di relazioni:
Relazione
Descrizione
Associazione
Il percorso della comunicazione tra un attore ed il caso
d’uso cui partecipa
Estensione
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.
Generalizzazione
Tra un caso d’uso più generale ed uno più specifico che
eredita dal primo alcune funzionalità e ne aggiunge altre
Inclusione
Inclusione in un caso d’uso di base di funzionalità illustrate
in altri casi d’uso
11/19/2008
16
© 2008 Exeura – Confidential and Proprietary
Notazione
<<extend>>
<<include>>
Page
8
11/19/2008
Esempio
Fornisce i dati
Cambia
residenza
dall’estero
<<include>>
Cambia residenza
<<extends>>
Aggiorna passaporto
11/19/2008
17
© 2008 Exeura – Confidential and Proprietary
Page
Vista logica (statica)
Area
Strutturale
Vista
Casi d’uso
Diagramma
Diagr. dei casi d’uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Attività
Diagr. delle attività
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
18
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
9
11/19/2008
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
11/19/2008
19
© 2008 Exeura – Confidential and Proprietary
Page
Il diagramma delle classi
Area
Strutturale
Vista
Casi d’uso
Diagramma
Diagr. dei casi d’uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr.
g a stati finiti
Attività
Diagr. delle attività
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
20
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
10
11/19/2008
Cosa è una classe
Una collezione di oggetti con
simile
i il struttura,
t tt
comportamento e relazioni.
Una classe contiene proprietà
(attributi) e metodi (operazioni)
11/19/2008
21
© 2008 Exeura – Confidential and Proprietary
Page
Rappresentazione grafica
Il riquadro superiore contiene il
nome della classe e le proprietà
g
generali della classe
Il riquadro centrale contiene la
struttura della classe
Il riquadro della classe contiene
gli elementi che determinano il
comportamento della classe
11/19/2008
22
© 2008 Exeura – Confidential and Proprietary
Page
11
11/19/2008
Relazioni
„
Le relazioni forniscono un percorso per le comunicazioni.
„
Esistono vari tipi di relazioni, le principali sono:
„
Associazione
„
Dipendenza
„
Generalizzazione (ereditarietà)
„
Realizzazione
11/19/2008
23
© 2008 Exeura – Confidential and Proprietary
Page
Relazione di associazione
Descrive le relazioni tra le istanze delle classi e la loro
cardinalità
cardinalità.
S pettacolo
Località
A utore
E vento : Data
P ost o : Num ero_p os to
Vendita
1
0 *
0..
P revendita : T_Im porto
Molteplicità
= numero
Relazione
di di
istanze di associazione
una classe
Attributi della relazione
correlateClassi
ad una istanza
dell’altra
classe.
11/19/2008
© 2008 Exeura – Confidential and Proprietary
24
B igl ietto
Prezzo : T_Im porto
Page
12
11/19/2008
Associazione/aggregazione
Una associazione in cui la relazione è tra un tutto e le sue
parti.
Relazione di
aggregazione
11/19/2008
25
© 2008 Exeura – Confidential and Proprietary
Page
Associazione/ composizione
L’elemento composto ha la sola responsabilità della gestione
delle sue parti (es.: allocazione e deallocazione).
11/19/2008
26
© 2008 Exeura – Confidential and Proprietary
Page
13
11/19/2008
Relazione di dipendenza
Una relazione in cui una classe (il client) dipende da un’altra per un
particolare servizio.
11/19/2008
27
© 2008 Exeura – Confidential and Proprietary
Page
Relazione di generalizzazione (ereditarietà)
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.
Relazioni di
generalizzazione
11/19/2008
28
© 2008 Exeura – Confidential and Proprietary
Page
14
11/19/2008
Relazione di generalizzazione (ereditarietà)
Veicolo
Azionato a
{overlapping}
Discriminatore –
indica una partizione
della superclasse
Ambiente operativo
Azionato a
A energia eolica
Ambiente operativo
A motore
Terra
Camion
11/19/2008
29
{overlapping}
Barca a vela
Acqua
Vincolo di overlapping
– le sottoclassi
possono discendere da
più di una classe
© 2008 Exeura – Confidential and Proprietary
Page
Esempio: iscrizione ai corsi universitari
Il modello del sistema
<<Entity>>
C
Corso
<<Entity>>
1
Informazioni docente
1
Catalogo Corsi
1..*
1..*
<<Entity>>
<<Entity>>
Informazioni Studente
Offerta Corsi
3..10
11/19/2008
30
© 2008 Exeura – Confidential and Proprietary
Page
15
11/19/2008
Esempio: iscrizione ai corsi universitari
Il modello del sistema
Informazioni Utente
<<Entity>>
Informazioni docente
11/19/2008
31
<<Entity>>
Informazioni Studente
© 2008 Exeura – Confidential and Proprietary
Page
La vista implementativa e di distribuzione
Area
Strutturale
Vista
Casi d
d’uso
uso
Diagramma
Diagr dei casi d’uso
Diagr.
d uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Attività
Diagr delle attività
Diagr.
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
32
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
16
11/19/2008
Il diagramma dei Componenti
Area
Strutturale
Vista
Casi d’uso
Diagramma
Diagr. dei casi d’uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr.
g a stati finiti
Attività
Diagr. delle attività
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
33
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
Cosa è
Mostra l’organizzazione e le dipendenze dei moduli software
((sorgenti,
g
, binari,, eseguibili).
g
)
11/19/2008
34
© 2008 Exeura – Confidential and Proprietary
Page
17
11/19/2008
Componenti
Un componente è la rappresentazione di
un file di codice sorgente, una libreria o
un eseguibile.
11/19/2008
35
© 2008 Exeura – Confidential and Proprietary
Page
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
11/19/2008
36
© 2008 Exeura – Confidential and Proprietary
Page
18
11/19/2008
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.
11/19/2008
37
© 2008 Exeura – Confidential and Proprietary
Page
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.
11/19/2008
38
© 2008 Exeura – Confidential and Proprietary
Page
19
11/19/2008
Il diagramma di distribuzione
Area
Strutturale
Vista
Casi d’uso
Diagramma
Diagr. dei casi d’uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Attività
Diagr. delle attività
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
39
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
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.
11/19/2008
40
© 2008 Exeura – Confidential and Proprietary
Page
20
11/19/2008
Il diagramma di distibuzione
Questo diagramma contiene
nodi e connessioni tra nodi.
CONNESSIONE
Indica NODO
un percorso di
E’ un oggetto fisico
di
comunicazione
tra i nodi.
esecuzione
s
i n d
dell codice.
di
Queste
associazioni
possono
Rappresenta
una risorsa
avere
uno stereotipo. per
computazionale
indicare la natura del percorso
della comunicazione (ad esempio
il tipo di canale o di rete).
11/19/2008
41
© 2008 Exeura – Confidential and Proprietary
Page
Esempio
Registration
Database
Library
Main Building
Dorm
11/19/2008
42
© 2008 Exeura – Confidential and Proprietary
Page
21
11/19/2008
L’area dinamica
Area
Strutturale
Vista
Diagramma
Diagr dei casi d’uso
Diagr.
d uso
Casi d
d’uso
uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
A i i à
Attività
Di
Diagr.
delle
d ll attività
tti ità
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
43
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
Vista delle Attività
Area
Strutturale
Vista
Casi d’uso
Diagramma
Diagr. dei casi d’uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Attività
Diagr. delle attività
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
44
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
22
11/19/2008
Diagramma delle attività
Area
Strutturale
l
Vista
Diagramma
Di
Diagr.
d
deii casii d’
d’uso
C i d’uso
Casi
d’
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Attività
Diagr. delle attività
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
45
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
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 completamento
dell’azione o della
sottoattività.
sottoattività
Può rappresentare la
macchina a stati finiti
di una procedura.
11/19/2008
46
© 2008 Exeura – Confidential and Proprietary
Page
23
11/19/2008
Esempio:
La procedura di evasione di un ordine
Corsia (indica la
responsabilità degli
oggetti nelle azioni)
11/19/2008
47
© 2008 Exeura – Confidential and Proprietary
Page
Area (e vista) di
gestione del modello
Area
Strutturale
Vista
Casi d’uso
Diagramma
Diagr. dei casi d’uso
(Diagr. Sequenza)
(Diagr. Collaborazione)
Dinamica
Statica
Diagramma delle Classi
Implementativa
Diagr. dei componenti
Distribuzione
Diagr. di distribuzione
Macchina a stati finiti
Diagr. a stati finiti
Attività
à
Diagr. delle
d ll attivitàà
Interazioni
Diagr. di sequenza
Diagr. collaborazione
Gestione del modello Gestione del modello
11/19/2008
48
Diagramma delle Classi
© 2008 Exeura – Confidential and Proprietary
Page
24
11/19/2008
La gestione del modello
Un 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 p
package
g p
può
contenere
qualunque
elemento o
diagramma UML
11/19/2008
49
© 2008 Exeura – Confidential and Proprietary
Page
Utilizzo dei package
Nidificando i package si ottiene una struttura
più chiara
11/19/2008
50
Il sistema complessivo può essere visto
come
Page
un package
© 2008 Exeura – Confidential and Proprietary
25
11/19/2008
Diagramma dei casi d’uso con package
Selezione del corso
da insegnare
Studente
S d
Docente
Registrazione ad un corso
Sistema di registrazione
Manutenzione Curriculum
(From Segreteria)
<<uses>>
<<uses>>
Addetto segreteria
Manutenzione Informazioni Studente
(From Segreteria)
<<uses>>
Convalida operazione
(From Segreteria)
11/19/2008
51
© 2008 Exeura – Confidential and Proprietary
Page
Manutenzione Informazioni Docenti (From Segreteria)
Esempio:
struttura del modello con package
11/19/2008
52
© 2008 Exeura – Confidential and Proprietary
Page
26