UML Component and Deployment diagram Ing. Orazio Tomarchio Orazio.Tomarchio@diit.unict.it Dipartimento di Ingegneria Informatica e delle Telecomunicazioni Università di Catania
I diagrammi UML Classificazione ufficiale dei diagrammi UML 2 2
Uso dei component e deployment Fase di specifica Fase di progettazione Component Deployment diagram Fase di codifica 3
Component Diagram (CD) Rappresentano l architettura SW del sistema, ovvero la suddivisione di esso in varie componenti (classi, librerie, DB, eseguibili, etc.) e le dipendenze tra questi 4
CD - Componenti Componente i componenti sono moduli software (eseguibili o meno), dotati di identità e con un'interfaccia ben specificata Non esiste un metodo unico per l individuazione dei componenti (Alhir li definisce una parte del sistema che esiste durante l esecuzione del sistema ) Spesso un componente rappresenta una classe o un package del class diagram 5
Component Diagram - Elementi Il simbolo di un componente è un rettangolo con due rettangoli più piccoli su un lato Componente 6
Component Diagram - Esempio Si supponga che il sistema sia costituito da: user interface component (interfaccia di interazione) business-processing component (funzionalità specifiche dell applicazione) data component (immagazzinamento dati) security component (funzionalità di sicurezza, come verifiche di accesso, controllo dei privilegi di accesso ai dati) 7
Component Diagram - Esempio 8
Component Diagram - Elementi Un componente UML non rappresenta uno specifico oggetto, ma un insieme di cose (class) Per rappresentare un elemento di tale insieme si una una component instance Il simbolo di una c. instance è il seguente (nome:classe, tutto sottolineato) Nome:Classe 9
Component Diagram - Esempio Dettagliando l esempio precedente si potrebbe avere: web user interface component instance (accesso via web) client/server user interface component instance (accesso con paradigma client-server) local data component instance (immagazzinamento dati di un utente) enterprise data component instance (dati corporate) 10
Component Diagram - Esempio 11
Component Diagram - Elementi Assieme al componente si possono indicare le interfacce l interfaccia è mostrata con un cerchio collegato al componente Un componente può avere più interfacce Componente Interfaccia 12
Component Diagram - Elementi Esempio di componente con più interfacce Unit Server Application Application Configuration 13
Dipendenze: CD - Dipendenze Tra due componenti esiste una dipendenza quando modificando la definizione di uno (il supplier) può doversi modificare la definizione dell altro (detto client) Tra classi esistono diversi motivi che causano dipendenza comunicazione tra due classi una classe memorizza i dati di un altra classe Una classe adopera i dati di un altra come parametri 14
CD - Dipendenze UML consente di esprimere dipendenze tra tutti i suoi elementi, e in particolare nel component diagram Una dipendenza viene rappresentata con una freccia tratteggiata (punta sul supplier), sulla quale è possibile indicare il tipo di dipendenza Attenzione: la presenza di numerose dipendenze (soprattutto in grossi sistemi) puo complicare notevolmente la gestione delle modifiche 15
CD - Dipendenze Esempio Dipendenze: Benefit window e una classe di interfaccia (classe di presentazione), Employee e una classe nel dominio dell applicazione. Una modifica a quest ultima potra avere conseguenze sulla classe di presentazione 16
CD - esempio Si noti, nell esempio precedente che una modifica alla benefit window non altera la classe Employee. E buona norma evitare cicli Si noti che Data Gateway e Benefit windows sono indirettamente dipendenti: una modifica sulle Data Gateway puo richiedere una modifica alla Employee, ma solo se quest ultima cambia la sua interfaccia la modifica coinvolgera anche Benefit window 17
Alcuni tipi di dipendenze «call» Il client invoca un operazione nella supplier «create» «instantiate» «derive» Il client crea istanze della supplier Il client e derivata dalla supplier «permit» Il client ha accesso a informazioni private di supplier 18
Alcuni tipi di dipendenze «realize» Il client e l implementazione dell interfaccia di supplier «refine» «substitute» Relazione tra differenti livelli semantici (ad esempio tra classe di progetto e classe di analisi) Il client e sostituibile per il supplier «use» Il client necessita del supplier per la sua implementazione 19
Esempio di dipendenze 20
Deployment Diagram (DD) Rappresenta la relazione fisica tra i componenti software e quelli hardware E utile quando si ha la necessità di mostrare in quale componente HW di un sistema distribuito viene eseguito o risiede ciascun componente SW 21
Deployment Diagram - Elementi Nodo: Ogni nodo rappresenta qualcosa che può ospitare del software Mote volte viene usato per rappresentare un componente hardware (device) Es: un sensore, un server, un mainframe Un nodo può anche essere esso stesso del SW, un ambiente di esecuzione, ad es. SSOO, macchine virtuali, ecc.. 22
Deployment Diagram - Elementi Il nodo viene rappresentato tridimensionalmente come un box. Sullo stesso viene indicato il nome del nodo Server Printer Input Device Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 23
Deployment Diagram - Elementi Istanza di Nodo: In generale il nodo non rappresenta una specifica risorsa, ma una classe di risorse dello stesso tipo Per rappresentare una specifica risorsa del sistema si usano le istanze di nodo In un contesto object-oriented e analogo all istanza di una classe Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 24
Deployment Diagram - Elementi Una istanza di nodo e rappresentata come un nodo, ma il nome e del tipo nome:classe Sia nome che classe possono essere omessi (e in tal caso si può omettere anche il : ) Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 25
DD - Communicatio Association Una Communication association Communication association (o connection) tra il nodo A e il nodo B rappresenta un percorso di comunicazione tra i componenti ospitati nei due nodi Una CA è rappresentata come una linea continua tra i due nodi Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 26
DD - Communication Association Su una CA è possibile specificare anche il protocollo di comunicazione adoperato (ne viene indicato il nome in prossimità della linea di CA) Windows 2000 Server <<Parallela>> Epson Laser <<TCP/IP>> Server Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 27
Spesso è utile integrare i due diagrammi Component e Deployment Diagram L integrazione rappresenta la distribuzione dei vari componenti nei nodi del sistema Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 28
Component e Deployment Diagram - Esempio Diabetes Unit Server <<object database>> Jasmin Healthcare Domain <<TCT/IP>> Liver Unit Server <<object database>> Jasmin <<communication>> Liver Unit Configuration Windows CompatiblePC Liver Unit Client Facade <<TCT/IP>> Healthcare Domain <<user interface>> Liver Unit UI Liver Unit Server Application Application Configuration Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 29
Nodi e artifact All interno dei nodi è possibile rappresentare gli artifact, che sono la manifestazione fisica del SW Tipicamente gli artifact sono file, e possono essere: eseguibili (file.exe,.dll, script, file binari, ecc.) dati file di configurazione pagine HTML... Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 30
Nodi e artifact Se un artifact è posto all interno di un nodo il file sarà memorizzato proprio in tale nodo durante il funzionamento del sistema Un artifact può essere indicato elencandoli all interno del nodo come class box all interno del nodo, indicando però l icona documento o la parola <<artifact>> È possibile etichettare sia i nodi che gli artifact per specificare svariate informazioni (produttore, SO) Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 31
Nodi e artifact - Esempio Febbraio 2007 M2 - Analisi e Progettazione di un sistema software 32