Università di Roma “La Sapienza” sede di Latina a.a 2009-2010 Progettazione strutturale in UML: Component and Connector Diagram Deployment Diagram A cura di: Daniele Gazzelloni e Marco Marafini Struttura dell'esercitazione Panoramica sui diagrammi progettuali di Deployment ed a Componenti e Connettori. Nuove tecnologie amministrative universitarie Struttura e componentistica di una gru Il caso VolBank pag. 2 Progettazione strutturale in UML Studio di casi reali e sviluppo di una progettazione UML adeguata con Deployment Diagram e con diagrammi a Componenti e Connettori. C&C diagram: rappresentano l'architettura software del sistema, ovverlo la suddivisione di esso in varie componenti (classi, librerie, DB, eseguibili, etc..) e le dipendenze tra questi. Deployment diagram: rappresentano le relazioni fisiche che sussistono tra i vari componenti software e l'hardware del sistema. pag. 3 Progettazione strutturale in UML Diagram Structure Class Diagram Behaviour Activity Diagram Component Diagram Deployment Diagram Package Diagram State Machine Interaction Diagram Compositive Structure Object Diagram Use Case Diagram Timing Diagram Comunication Diagram Interaction Overview Sequence Diagram Caso primo: Sistema di gestione esami CellEx pag. 5 Caso primo: Sistema di gestione esami CellEx L'ateneo in questione richiede lo sviluppo di un sistema di registrazione degli esami basato sull'uso dei telefoni cellulari da parte dei docenti. Per ogni corso, caratterizzato da un codice, e nominata una commissione, formata dai docenti che possono svolgere il ruolo di esaminatore. Tra di essi, e designato il presidente di commissione. Il sistema, denominato CellEx, prevede che i docenti abilitati all’uso di CellEx che fanno parte della commissione, utilizzino il cellulare per verbalizzare gli esami, mediante l’invio di un SMS al numero telefonico del servizio. Come misura di sicurezza e autenticazione, i docenti si abilitano al servizio registrando (una volta sola) su CellEx il numero del loro telefono cellulare. pag. 6 Caso primo: Sistema di gestione esami CellEx Ogni docente ha un indirizzo mail. Giornalmente, CellEx registra gli esami della giornata nel sistema S3 (che e in uso da anni nell’Ateneo) e invia agli esaminatori di ogni corso una mail contenente un’indicazione di tutti gli esami del loro corso registrati in giornata. In seguito alla ricezione della mail, il presidente della commissione provvede a rispondere per confermare. CellEx attende 60 giorni l’invio della mail di conferma. Gli esami confermati sono definitivamente archiviati in S3, quelli non confermati sono cancellati da S3 e devono essere registrati manualmente dal presidente della commissione, secondo una procedura che prevede l’uso di uno statino in formato cartaceo. Utilizzando l’elenco degli studenti iscritti a un appello, organizzato in sottoelenchi per ogni giornata di esami, il docente procede a effettuare l’esame che puo avere un esito positivo (voto maggiore o uguale a 18 trentesimi) o negativo. Solo gli esami con esito positivo sono registrati mediante l’invio di un SMS. pag. 7 Caso primo: Sistema di gestione esami CellEx pag. 8 Caso primo: Sistema di gestione esami CellEx pag. 9 Caso primo: Sistema di gestione esami CellEx Sistema CellEx Il componente Sistema CellEx rappresenta il core del sistema da progettare. Esso è composto da tre componenti principali: Gestore numeri docenti Registrazione esami Gestione conferme esami pag. 10 Caso primo: Sistema di gestione esami CellEx Gestore numeri docenti Con Gestore numeri docenti si intende rappresentare quella parte del sistema software che si occupa della gestione dei numeri di telefono, interfacciandosi con il “database utenti”. In particolare questo componente si occupa di: Registrare un numero telefonico nel database, attraverso una procedura di registrazione basata su SMS. Autenticare, e quindi consentire l'accesso al sistema software, a tutti quei numeri persenti nel database utenti. pag. 11 Caso primo: Sistema di gestione esami CellEx Registrazione esami Con Registrazione esami si intende rappresentare quella parte del sistema software che si occupa della registrazione giornaliera degli esami nel Database S3. Inoltre questo componente invia agli esaminatori di ogni corso una mail contenente un’indicazione di tutti gli esami del loro corso registrati in giornata. pag. 12 Caso primo: Sistema di gestione esami CellEx Gestione conferme esami Con Gestione conferme esami rappresenta la parte del sistema dedita al management degli esami per i quali il sistema CellEx attende 60 giorni l’invio della mail di conferma da parte del presidente della commissione e dopodiché provvede con due operazioni distinte: gli esami confermati sono definitivamente archiviati nel database S3; quelli non confermati sono cancellati dal database S3. pag. 13 Caso primo: Sistema di gestione esami CellEx Database S3 Il componente Database S3 è l’archivio principale che registra giornalmente gli esami che successivamente se confermati verranno definitivamente archiviati, altrimenti saranno eliminati. pag. 14 Caso primo: Sistema di gestione esami CellEx Database utenti CellEx Il componente Database utenti CellEx contiene i numeri dei cellulari degli esaminatori abilitati all’uso del sistema. pag. 15 Caso primo: Sistema di gestione esami CellEx AbilitaNumero->RegistraNumero: Il sistema CellEx, inizialmente, si occupa di abilitare l'utente registrando il numero di telefono in un database apposito. pag. 16 Caso primo: Sistema di gestione esami CellEx ConfermaUtente->RiceveConferma: Il sistema CellEx, quando riceve un SMS di registrazione di un esame, confronta il numero di telefono dell'SMS con l'elenco dei numeri presenti nel database apposito: in caso di matching, invia una conferma positiva al sistema. pag. 17 Caso primo: Sistema di gestione esami CellEx RegistraEsami->SalvaEsami: Se il numero di telefono risulta abilitato al sistema, la richiesta di registrazione dell'esame ha inizio: l'esame viene scritto nel database S3, ed una mail viene spedita agli esaminatori di ogni corso. pag. 18 Caso primo: Sistema di gestione esami CellEx ConfermaEsame->ScriviConferma: Il presidente della commissione inva quindi una mail di conferma degli esami registrati. Se riceve una conferma positiva, il sistema CellEx registra permanentemente gli esami nel database S3. pag. 19 Caso primo: Sistema di gestione esami CellEx CancellaEsami->Elimina: Gli esami non confermati sono cancellati da S3 e devono essere registrati manualmente dal presidente della commissione. pag. 20 Caso secondo: Gru Hilg-6 pag. 21 Caso secondo: Gru Hilg-6 Da oltre trent’anni la società in questione produce gru per l’edilizia e l’industria, mantenendo sempre elevati livelli tecnologici, nel rispetto degli standard di sicurezza. L’ultima generazione di gru, denominate Hilg-6, sono in grado di spostare carichi fino a 25 tonnellate a un’altezza di 70 metri, con uno sbraccio massimo di 80 metri. In accordo agli standard tecnologici, le gru Hilg-6 prevedono tre movimenti, anche concomitanti, del gancio (circolare, orizzontale, verticale). I movimenti sono realizzati da motori elettrici da 110 KW. Oltre a questi attuatori, la gru e dotata di opportuni sensori: i sensori di posizione sono in grado di rilevare la posizione del gancio nello spazio 3D, i sensori di fine corsa segnalano alcuni eventi rilevanti ai fini della sicurezza. In particolare, controllano i movimenti in orizzontale e in verticale, e bloccano automaticamente il relativo motore. pag. 22 Caso secondo: Gru Hilg-6 L’operatore puo controllare la gru mediante una pulsantiera dotata di sei pulsanti (due per ogni movimento). La pressione e il rilascio di un pulsante generano eventi trasmessi agli attuatori mediante un collegamento wireless. Le norme di sicurezza richiedono la memorizzazione di tutti gli eventi in un log che li registra sequenzialmente rispetto al momento in cui accadono, indicando anche la posizione del gancio. pag. 23 Caso secondo: Gru Hilg-6 pag. 24 Caso secondo: Gru Hilg-6 pag. 25 Caso secondo: Gru Hilg-6 pag. 26 Caso secondo: Gru Hilg-6 Controllo movimento Il componente Controllo movimento racchiude in se tutta la gestione meccanica del gancio della gru. Esso contiene gli attuatori ed è colui che effettua i movimenti nelle tre direzioni: orizzontale, verticale e circolare. I comandi vengono inviati dalla pulsantiera (Gestione movimento). pag. 27 Caso secondo: Gru Hilg-6 Gestione movimento Il componente Gestione movimento si occupa delle operazioni di avviamento motore e controllo dei movimenti del gancio tramite una pulsantiera, con la quale si inviano i comandi agli attuatori. La pressione di ogni tasto provoca il logging di tale evento nell’archivio dei log (sistema registrazione operazione). pag. 28 Caso secondo: Gru Hilg-6 Sistema rilevazione gancio Il componente Sistema rilevazione gancio è composto da due differenti sensori: quelli di rilevazione del gancio e quelli di fine corsa. I primi rilevano la posizione del gancio nello spazio 3D, i secondi si occupano invece di inviare un segnale di blocco motore in caso di eventi rilevanti alla sicurezza. pag. 29 Caso secondo: Gru Hilg-6 Sistema registrazione operazione Il componente Sistema registrazione operazione rappresenta l’archivio dei log, contenente la registrazione cronologica di tutti gli eventi segnalati dalla Gestione movimento e dal Sistema rilevazione gancio. pag. 30 Caso secondo: Gru Hilg-6 InvioPosizione->RiceviPosizione: Il sistema di rilevamento del gancio, tramite i sensori di posizione invia la posizione del gancio che si muove nello spazio 3D. pag. 31 Caso secondo: Gru Hilg-6 InvioBlocco->Blocca: I sensori di fine corsa, alla rilevazione di un evento rilevante ai fini della sicurezza, inviano un segnale di arresto-motore al controllo movimento. pag. 32 Caso secondo: Gru Hilg-6 EventoSicurezza->Registra: L’evento rilevante dell’arresto del motore viene registrato nell’ archivio dei log. pag. 33 Caso secondo: Gru Hilg-6 InvioComandi->Ricevicomandi: Ogni comando riguardante il movimento, l’accensione o lo spegnimento, viene inviato al controllo movimento dalla gestione movimento. pag. 34 Caso secondo: Gru Hilg-6 SegnalaEventi->MemorizzaEventi: Ogni comando inviato dalla pulsantiera viene registrato nel sistema registrazione operazione. pag. 35 Caso terzo: VolBank pag. 36 Caso terzo: VolBank La VolBank è un´ organizzazione senza fini di lucro che si occupa di mettere in contatto volontari con persone e gruppi che hanno bisogno di assistenza di qualsiasi genere. I principali obbiettivi che si pone questa organizzazione sono la promozione del senso di appartenenza ad una comunità, coinvolgendo persone in attività di volontariato sul loro territorio. Questo viene fatto gestendo una lista di richieste di servizi ed una lista di potenziali volontari, cercando quindi di associare ai volontari le opportunità che maggiormente rispondono alle loro capacità. Fa parte della filosofia di VolBank ritenere che ciascuno abbia delle qualità e delle attitudini che può mettere a disposizione degli altri, cosí come dei bisogni che devono essere soddisfatti. Per questo si incoraggiano i volontari a fornire un elenco delle proprie necessità, ed i destinatari degli aiuti a mettere a disposizione le proprie abilità. pag. 37 Caso terzo: VolBank Il nome VolBank nasce dall´ idea che le persone possono ´´depositare´´ il tempo che sono in grado di mettere a disposizione degli altri, così come una lista di capacità ed abilità che desiderano offrire. VolBank è stata fondata in collaborazione con associazioni locali di volontariato, che propongono interventi di lavoro di volontariato. Queste organizzazioni fungono anche da punti di contatto sul territorio per i volontari che desiderano farsi avanti. I volontari possono comunicare le abilità e le capacità che intendono offrire a VolBank telefonando a un´ organizzazione di volontari, presentandosi di persona presso una delle associazioni locali di volontariato, oppure compilando una apposita form di una pagina web. pag. 38 Caso terzo: VolBank Se il volontario si registra presso un´ associazione di volontariato, le sue informazioni vengono trasmesse per iscritto a VolBank, dove saranno inserite in archivio da un`organizzazione di volontari, come se il nuovo iscritto avesse contattato VolBank direttamente per telefono. Le associazioni di volontariato ed i singoli individui, tra cui i volontari stessi, possono registrare le proprie richieste di aiuto contattando un` organizzazione di volontari, che cercherà quindi di associare le persone che mettono a disposizione il loro tempo che le varie opportunità. Questo può avvenire in due modi differenti: confrontando il loro tempo con l`elenco delle richieste, o confrontando una nuova richiesta con l´elenco dei volontari. L` abbinamento viene fatto in base a criteri geografici (per esempio, utilizzando il codice di avviamento postale), e facendo combaciare le capacità offerte con le esigenze. pag. 39 Caso terzo: VolBank Una volta che i volontari sono stati assegnati a un`opportunità di servizio, vengono loro comunicati i dettagli della richiesta, e se sono ancora interessati, i loro riferimenti vengono trasmessi da un` organizzazione di volontari all` associazione o alla singola persona che ha richiesto l`opera di volontariato. Viene anche specificato ai volontari che questo secondo passaggio non implica che verranno automaticamente accettati: per alcuni particolari lavori, come per esempio interventi con i bambini, potrebbero essere necessari ulteriori controlli o persino verifiche da parte delle forze dell` ordine e dei servizi sociali. Questi sono compiti che spettano all` associazione o al singolo che ha effettuato la richiesta. VolBank sta allestendo un sistema informatico per gestire tutta la parte relativa alla registrazione e all` abbinamento di volontari e opportunità, nonché alla notifica degli abbinamenti alle varie parti in causa. pag. 40 Caso terzo: VolBank Supporto informatico di VolBank VolBank ha bisogno di un sistema informatico in grado di gestire l`abbinamento di volontari con le richieste di aiuto e viceversa; tale sistema dovrà anche disporre di un collegamento con il web server di VolBank. Le associazioni di volontariato saranno avvertite di un possibile abbinamento tra una loro richiesta e un volontario tramite fax o e-mail. I volontari saranno avvertiti di un possible abbinamento tra loro e una richiesta di aiuto tramite lettera cartacea. pag. 41 Caso terzo: VolBank Requisiti di VolBank (pt.1) Sviluppare un sistema che gestisca la registrazione dei volontari e il deposito del loro tempo: Registrare i dettagli dei volontari, comprese le abilità e capacità di ciascuno di essi, ed i loro recapiti; Registrare il tempo che ogni volontario deposita, ossia può mettere a disposizione; Trasferire dal web-server i dettagli dei volontari ed il tempo che stanno depositando. Gestire la registrazione delle opportunità di un servizio di volontariato: Registrare i dettagli delle associazioni di volontariato Registrare le esigenze e le richieste di aiuto fatte dalle associazioni di volontariato Registrare le richieste di aiuto di singoli individui (tra cui i volontari stessi) pag. 42 Caso terzo: VolBank Requisiti di VolBank (pt.2) Abbinare donatori e riceventi dell’ attività di volontariato, e registrare il risultato dell’abbinamento: Abbinare un volontario con attività di volontariato appropriate, da effettuare nella sua zona Abbinare un’ attività di volontariato con volontari appropriati, nella medesima zona Registrare ogni abbinamento tra volontari e richieste di aiuto Avvertire i volontari degli abbinamenti ottenuti che li riguardano Avvertire le associazioni di volontariato degli abbinamenti ottenuti che le riguardano Registrare le riuscita di ogni abbinamento e stilare una convenzione per ogni abbinamento riuscito Produrre analisi statistiche del numero di volontari, delle opportunità di volontariato e della quantità di tempo depositato. pag. 43 Caso terzo: VolBank pag. 44 Caso terzo: VolBank pag. 45 Caso terzo: VolBank pag. 46 Caso terzo: VolBank pag. 47 Caso terzo: VolBank Registrazioni Webserver Il componente Registrazioni Webserver identifica il server web dedito alle registrazioni dei dati, del tempo e delle abilità messe a disposizione dalle associazioni di volontariato e dai singoli volontari. La registrazione avviene tramite un form via web. pag. 48 Caso terzo: VolBank Sistema registrazioni Il Sistema registrazioni è un componente software che svolge la stessa funzione del webserver: quindi registrazioni dei dati, del tempo e delle abilità messe a disposizione dalle associazioni di volontariato e dai singoli volontari. La registrazione avviene all’interno dell’azienda, inserendo manualmente i dati all’interno del software. pag. 49 Caso terzo: VolBank Sistema associazioni Il componente Sistema associazioni identifica quel modulo software che si occupa dell’abbinamento dei donatori e riceventi dell’attività di volontariato e ne registra il risultato nel database associazioni. Dopo l’abbinamento i volontari verranno avvertiti tramite fax o email. pag. 50 Caso terzo: VolBank Analisi statistiche Il componente Analisi statistiche effettua analisi e statistiche sul numero dei volontari, sulle opportunità di volontariato e sulla quantità di tempo depositato dai volontari e dalle associazioni. Le statistiche vengono salvate in un apposito database. pag. 51 Caso terzo: VolBank Database Il componente Database è costituito da tre sottocomponenti: • DB dati clienti: E’ il database contenente i dati dei volontari e delle associazioni di volontariato. • DB associazioni: E’ il database contenente i dati relativi alle associazioni effettuate dal sistema software. • DB statistiche: E’ il database contenente i dati relativi alle statistiche effettuate dal sistema software. pag. 52 Caso terzo: VolBank Registra_datiClienti->Dati_Registrazioni: Il Sistema di Registrazione si occupa della memorizzazione dei dati anagrafici dei clienti (gruppi di volontariato e volontari singoli), del loro tempo messo a disposizione e delle loro capacità nel DB dati clienti. pag. 53 Caso terzo: VolBank Dati_Associazioni->LeggeDB_Associazioni: Il Sistema Associazioni preleva le informazioni necessarie dal DB associazioni. pag. 54 Caso terzo: VolBank ScriviDB_Associazioni->Memorizza_Associazioni: Il Sistema Associazioni scrive le informazioni elaborate nel DB associazioni. pag. 55 Caso terzo: VolBank Registra_datiClienti->Dati_Registrazioni: Il Web-Server si occupa della memorizzazione dei dati anagrafici dei clienti (gruppi di volontariato e volontari singoli), del loro tempo messo a disposizione e delle loro capacità nel database apposito, attraverso un modulo da compilare online. Caso terzo: VolBank Dati_Clienti->Legge_Dati: Il componente Analisi statistiche legge i dati dal DB statistiche per l’elaborazione. pag. 57 Caso terzo: VolBank Scrive_Statistiche>Riceve_Statistiche: Il componente Analisi statistiche, dopo aver elaborato i dati ricevuti, riporta i risultati nel DB statistiche. pag. 58