Upload
duonganh
View
221
Download
0
Embed Size (px)
Citation preview
11/19/2008
1
InterpretInterpretAcquireAcquire
TransformTransform AnalyzeAnalyze
© 2008 Exeura – Confidential and Proprietary
Copyright Notice
This publication may contain Exeura patented or patent-pendingThis publication may contain Exeura patented or patent pendinginformation. It should be considered proprietary and confidential.
No part of this publication may be reproduced, reformatted ortransmitted in any form or by any means, electronic or mechanical,including photocopying, recording or through any information storageand retrieval system, currently available or developed in the future,without prior written approval of Exeura. This document is protectedby copyright law and international treaties. Unauthorized reproduction
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 2
or distribution of all or part of this document may result in severe civiland criminal penalties and will be prosecuted to the full extent of thelaw.
11/19/2008
2
Unified Modeling Language (UML)
Richiami dei diagrammi di base
per l’utilizzo nel corso di RPPI
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 3Rielaborazione delle slide proposte da M. Cossentino
Mary Loomis, HP - Software Technology Laboratory:
Perchè usare la progettazione visuale?
y , gy 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
11/19/2008
3
John Roskill, Microsoft - Director of Product Marketing for Microsoft
Perchè usare la progettazione visuale?
, g
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 : E’ il successore dei linguaggi di progettazione utilizzati nei metodi
La specifica,
La visualizzazione,
La produzione
La documentazione
Può essere applicato a:Sistemi software,
Modelli economici
progettazione utilizzati nei metodi di Booch(1), OOSE/Jacobson(2), OMT/Rumbaugh(3), …
UML non è un metodo(come i metodi di DeMarco, Jacobson,
Rumbaugh)
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 6
Modelli economici
Sistemi non software
(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
11/19/2008
4
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 Vista Diagramma
Casi d’uso Diagr dei casi d’uso Strutturale 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à
Dinamica Descrive le entità del
i l l l i i
Descrive il comportamento del sistema nel tempo
Descrive l’organizzazione
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 8
Diagr. di sequenza 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
sistema e le loro relazionig
del sistema in unità gerarchiche
11/19/2008
5
Area Vista Diagramma
Area Strutturale
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 Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 9
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
Area Vista Diagramma
Diagr dei casi d’uso C i d’ St tt l
Vista dei casi d’uso
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 Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 10
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
11/19/2008
6
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:
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 11
1 - diagramma dei casi d’uso2 - diagramma di sequenza(*)3 - diagramma di collaborazione(*) (*) appartengono a questa vista in quanto realizzazioni dei casi d’uso
Il diagramma dei casi d’uso
Area Vista Diagramma
Diagr dei casi d’uso Casi d’uso St uttu l 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
à d ll à
Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 12
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
11/19/2008
7
Diagramma dei casi d’uso – Cosa è
Mostra le relazioni tra attori e casi d’uso nel sistema.
I diagrammi dei casi d’uso rappresentano una vista dall’esterno del sistema.
acquistare articoli
log in
attore: un utilizzatore del sistema
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 13
log incassierecliente
rimborsare articoli venduti
caso d'uso: un "modo" di utilizzare il sistema
Attore – cosa è
Qualcuno o qualcosa, esterno al sistema,
che interagisce con i casi d’uso.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 14
11/19/2008
8
Caso d’uso – cosa è
Un modello di comportamento supportato d l i t
Caso d’usoCaso d’uso
Cons ulta catalogo
Acquis ta articolo
(f rom Att iv ità i n ne goz io)
Venditore
dal sistema.
E’ una sequenza di transazioni effet-tuate tra l’attore ed il sistema durante una sessione di dialogo.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 15
Cli ente
Effettua pagam ento
(f ro m A tt iv ità i n neg oz io )
Servizi POS
AttoreAttore RelazioneRelazioneCasi d’uso del Casi d’uso del gruppo “attività gruppo “attività in negozio”in negozio”
Relazioni – cosa sono
Sono associazioni tra attori e casi d’uso
I principali tipi di relazioni:
Relazione Descrizione Notazione
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 Bindica che il secondo può includere (sotto specifiche condizioni dettagliate nella estensione) il comportamento del caso d’uso A. <<extend>>
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 16
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 <<include>>
11/19/2008
9
Esempio
Fornisce i dati
Cambia residenza
<<include>>
Cambia residenza dall’estero
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 17
Aggiorna passaporto
<<extends>>
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 Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 18
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
11/19/2008
10
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.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 19
A questa vista appartiene il diagramma delle classi
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 Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 20
g
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
11/19/2008
11
Cosa è una classe
Una collezione di oggetti con i il t tt simile struttura,
comportamento e relazioni.
Una classe contiene proprietà(attributi) e metodi (operazioni)
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 21
Rappresentazione grafica
Il riquadro superiore contiene il nome della classe e le proprietà generali della classeIl riquadro centrale contiene la
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 22
gIl riquadro centrale contiene la struttura della classe
Il riquadro della classe contiene gli elementi che determinano il comportamento della classe
11/19/2008
12
Relazioni
Le relazioni forniscono un percorso per le comunicazioni.Le relazioni forniscono un percorso per le comunicazioni.
Esistono vari tipi di relazioni, le principali sono:
Associazione
Dipendenza
Generalizzazione (ereditarietà)
Realizzazione
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 23
Relazione di associazione
Descrive le relazioni tra le istanze delle classi e la loro cardinalità
SpettacoloLocalitàAutore
0 *
Evento : DataP ost o : Num ero_posto
1
VenditaEvento : DataP ost o : Num ero_posto
10 *
cardinalità.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 24
Bigl iettoPrezzo : T_Im porto
Prevendita : T_Importo
0..
Prevendita : T_Importo
0..
Molteplicità = numero di istanze di una classe correlate ad una istanza dell’altra classe.
Relazione diRelazione diassociazioneassociazioneAttributi della relazione
ClassiClassi
11/19/2008
13
Associazione/aggregazione
Una associazione in cui la relazione è tra un tutto e le sue parti.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 25
Relazione diRelazione diaggregazioneaggregazione
Associazione/ composizione
L’elemento composto ha la sola responsabilità della gestione delle sue parti (es.: allocazione e deallocazione).
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 26
11/19/2008
14
Relazione di dipendenza
Una relazione in cui una classe (il client) dipende da un’altra per un particolare servizio.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 27
Relazione di generalizzazione (ereditarietà)
E’ una relazione tra una classe e la sua sottoclasse classe e la sua sottoclasse dove gli elementi comuni sono contenuti nella classe di livello superiore e le particolarità nelle
sottoclassi.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 28
Relazioni di Relazioni di generalizzazionegeneralizzazione
11/19/2008
15
Veicolo Ambiente operativoAzionato a
Relazione di generalizzazione (ereditarietà)
A energia eolica A motore Terra Acqua
Azionato a Ambiente operativo{overlapping} {overlapping}
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 29
Camion Barca a velaVincolo di overlapping
– le sottoclassi possono discendere da
più di una classe
Discriminatore –indica una partizione
della superclasse
Esempio: iscrizione ai corsi universitari
Il modello del sistema
C<<Entity>>
Informazioni docente
<<Entity>>Corso
11
1
Catalogo Corsi
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 30
Offerta Corsi
<<Entity>>
1..*1..*
3..103..10
1..*1..*
Informazioni Studente<<Entity>>
11/19/2008
16
Esempio: iscrizione ai corsi universitari
Il modello del sistema
Informazioni Utente
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 31
Informazioni docente<<Entity>>
Informazioni Studente<<Entity>>
Area Vista Diagramma
Diagr dei casi d’uso Casi d’uso Strutturale
La vista implementativa e di distribuzione
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à
Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 32
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
11/19/2008
17
Area Vista Diagramma
Il diagramma dei Componenti
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 Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 33
g
Attività Diagr. delle attività
Diagr. di sequenza
Dinamica
Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
Cosa è
Mostra l’organizzazione e le dipendenze dei moduli software (sorgenti, binari, eseguibili).( g , , g )
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 34
11/19/2008
18
Componenti
Un componente è la rappresentazione di un file di codice sorgente, una libreria o un eseguibile.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 35
Esempio 1
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 36
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
19
Esempio 2
Questo esempio mostra l’abbinamento delle classi con le rispettive librerie di runtime.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 37
La libreria Trade (Trade.dll) dipende dalla classe Slate (Slate.cls) e dalla classe Trade (Trade.cls). Quest’ultima dipende dalla classe TradeLeg.
Esempio 3
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 38
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
20
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 Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 39
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
Cosa è
Il diagramma di distribuzione illustra la configurazione dei illustra la configurazione dei nodi di elaborazione durante l’esecuzione, i componenti, i processi e gli oggetti che in essi vivono.
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 40
11/19/2008
21
Il diagramma di distibuzione
Questo diagramma contiene nodi e connessioni tra nodi.nodi e connessioni tra nodi.
CONNESSIONEIndica un percorso di
comunicazione tra i nodi.NODO
E’ un oggetto fisico di s i n d l di
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 41
Queste associazioni possono avere uno stereotipo per
indicare la natura del percorso della comunicazione (ad esempio
il tipo di canale o di rete).
esecuzione del codice. Rappresenta una risorsa
computazionale .
Esempio
Registration Database
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 42
Main Building
Dorm
Library
11/19/2008
22
Area Vista Diagramma
Diagr dei casi d’uso Casi d’uso Strutturale
L’area dinamica
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
A i i à Di d ll tti ità
Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 43
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
Area Vista Diagramma
Vista delle Attività
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 Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 44
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
11/19/2008
23
Diagramma delle attività
Area Vista Diagramma
Di d i i d’C i d’ l 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 Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 45
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
Cosa è
E’ una variazione di una macchina a stati in cui gli stati rappresentano gli stati rappresentano l’effettuazione di azioni o sottoattività e le transizioni sono dovute al completamentodell’azione o della sottoattività
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 46
sottoattività.
Può rappresentare la macchina a stati finiti di una procedura.
11/19/2008
24
Esempio: La procedura di evasione di un ordine
Corsia (indica la responsabilità degli oggetti nelle azioni)
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 47
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
à d ll à
Dinamica
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 48
Attività Diagr. delle attività
Diagr. di sequenza Interazioni
Diagr. collaborazione
Gestione del modello Gestione del modello Diagramma delle Classi
11/19/2008
25
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 package può
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 49
p g pcontenere qualunque elemento o
diagramma UML
Utilizzo dei package
Nidificando i package si ottiene una struttura più chiara
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 50
Il sistema complessivo può essere visto comeun package
11/19/2008
26
Diagramma dei casi d’uso con package
S dSelezione del corso
(From Segreteria)
Studente
Sistema di registrazione
Registrazione ad un corso
da insegnare
Docente
Manutenzione Curriculum
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 51
(From Segreteria)
(From Segreteria)
(From Segreteria)
(From Segreteria)
Convalida operazione
Manutenzione Informazioni Studente
Manutenzione Informazioni Docenti
Addetto segreteria
<<uses>>
<<uses>>
<<uses>>
Esempio: struttura del modello con package
11/19/2008 © 2008 Exeura – Confidential and Proprietary Page 52