Alunno: Tumedei Gianni Classe: 5°E DOCUMENTAZIONE PROGETTO GARDEN OF THINGS - PARTE WEB SOMMARIO SOMMARIO ............................................................................................................................................................................ 1 PANORAMICA ........................................................................................................................................................................ 2 Descrizione e contesto del progetto ................................................................................................................... 2 Ambito del progetto .................................................................................................................................................. 2 ANALISI DEL PROBLEMA ................................................................................................................................................... 3 Definizione dei requisiti ............................................................................................................................................ 3 Specifica dei requisiti ................................................................................................................................................. 3 PROGETTO .............................................................................................................................................................................. 5 Architettura di progetto............................................................................................................................................ 5 Disegno di dettaglio................................................................................................................................................... 7 REALIZZAZIONE .................................................................................................................................................................... 9 Programmazione ......................................................................................................................................................... 9 Test ................................................................................................................................................................................. 10 Integrazione e test del sistema ............................................................................................................................ 10 Rilascio del prodotto (release) e collaudo ....................................................................................................... 10 Avviamento .................................................................................................................................................................. 10 Manutenzione ............................................................................................................................................................. 10 FONTI ...................................................................................................................................................................................... 11 CREDITI ................................................................................................................................................................................... 11 1 PANORAMICA Descrizione e contesto del progetto Il progetto Garden of Things nasce con lo scopo di realizzare una serra automatizzata e informatizzata in rete, tramite la collaborazione dell’Istituto Tecnico Tecnologico B. Pascal con l’Istituto Tecnico Agrario G. Garibaldi. Vista la complessità del progetto, esso è stato suddiviso in due parti: 1. Progetto Pascal: questa fase prevede la realizzazione di un sistema di acquisizione e consultazione remota di temperatura, umidità e luminosità all’interno dei laboratori dell’ITT Pascal, oltre ad un sistema di videosorveglianza; 2. Progetto Garibaldi: prevede l’installazione del sistema realizzato nella fase precedente presso la serra dell’ITA Garibaldi. Inizialmente era stata preventivata la riuscita della prima fase tramite le lezioni di laboratorio mattutine e della seconda tramite corsi pomeridiani di eccellenza. Tuttavia, a causa di complicazioni verificatesi durante lo sviluppo del progetto, è stato possibile ultimare il sistema solo durante i corsi pomeridiani, quindi si è potuto procedere con l’installazione presso l’ITA Garibaldi. Se il dipartimento tecnico giudicherà positivi i risultati conseguiti, è possibile che il progetto venga esteso ai due anni scolastici successivi (2015-2016 e 2016-2017), con l’obiettivo di realizzare sistemi di automazione per la serra sempre più complessi. Questa documentazione tratta solamente la parte del progetto relativa alla consultazione dei dati rilevati. Il sistema di consultazione è stato sviluppato dalla classe 5°E dell’ITT Pascal, in particolare dagli alunni di tale classe che hanno deciso di continuare il progetto tramite i corsi pomeridiani. Ambito del progetto La parte di consultazione dei dati prevede la realizzazione di un sito web che mostri i dati rilevati tramite varie pagine che li rielaborano a seconda delle necessità dell’utente. Il sito web deve inoltre mettere a disposizione dei contatti da utilizzare in caso di malfunzionamenti, oltre ad una descrizione del progetto per i visitatori. Il sito web non deve in alcun modo permettere agli utenti di modificare i dati visualizzati, non si deve infatti occupare dell’acquisizione di tali dati, ma solo della visualizzazione. Anche il sistema di videosorveglianza non è legato in alcun modo al sito web, e deve essere consultato tramite altri mezzi. Per queste ragioni, non è incluso nel sito web alcun sistema di autenticazione: chiunque vi acceda può effettuare operazioni a piacimento, perchè in nessun modo esse interferiranno con il funzionamento o l’integrità del sistema. 2 ANALISI DEL PROBLEMA Definizione dei requisiti Il personale è composto esclusivamente dagli alunni della classe 5°E dell’ITT Pascal. Le postazioni dei laboratori in cui va sviluppato il sito sono già funzionanti e dotate degli appositi software e gli alunni non vanno retribuiti in alcun modo, per cui non vi sono costi diretti. I costi indiretti sono relativi al rinnovo della licenza per i software effettuato ad inizio anno e al consumo di corrente elettrica durante le ore di lavoro. La tecnologia utilizzata è quella di ASP.NET per il sito web e Sql Server per il database, pertanto i software necessari allo sviluppo sono Visual Studio e Sql Server Management Studio. È stata adottata la tecnologia ASP.NET perchè utilizza il linguaggio c# per la parte di scripting, che la classe già conosceva dagli anni precedenti. Inizialmente si era ritenuto sufficiente l’inserimento di una sola pagina di visualizzazione dati, che permetteva all’utente di selezionare la data, la centralina e la grandezza e quindi visualizzare i risultati, pertanto il lavoro appariva relativamente semplice. Tuttavia, si è poi giunti alla conclusione che una sola pagina non bastava in quanto non forniva dati abbastanza specifici, per cui il direttore del progetto Prof. Serri ha definito il layout di 10 pagine, ognuna con dati differenti. A causa dei cambiamenti all’interno del progetto, il tempo per l’ultimazione del sito web è aumentato ed è stato necessario continuare lo sviluppo nei corsi pomeridiani. Specifica dei requisiti Il sito web deve essere dotato delle seguenti pagine: Pagina master: funge da “contenitore” per visualizzare i dati delle altre pagine. Deve essere dotata di un menu per la navigazione e di un logo adatto al progetto. La pagina master rispecchia le sembianze finali del sito, pertanto deve essere facile interfacciarsi con essa e il suo aspetto deve essere gradevole. Home page: pagina principale con informazioni generali sul progetto e magari un’immagine per accogliere gli utenti. Pagina informativa: reca informazioni sul progetto. Pagina contatti: riporta i recapiti delle persone da contattare in caso di malfunzionamenti al sito o al sistema. Pagina valori attuali Pagina ultimi valori per una centralina Pagina ultimi valori per una grandezza Pagina valori per una grandezza e una centralina in un dato giorno 3 Pagina riepilogo giornaliero Pagina riepilogo settimanale Pagina riepilogo mensile Pagina riepilogo annuale Pagina valori orari Pagina valori orari per una grandezza e una centralina in una specificata settimana Vista la lentezza nello sviluppo molte pagine sono state abbandonate e ci si è concentrati sulla realizzazione delle prime cinque tra quelle dedicate alla visualizzazione dati, in quanto si è ritenuto che potessero bastare per una semplice consultazione, mentre le pagine momentaneamente ignorate forniscono per la maggior parte dati riepilogativi che possono essere trascurati in una fase iniziale. 4 PROGETTO Architettura di progetto Struttura del database del sistema 5 Struttura del sito Il sito da realizzare deve avere sostanzialmente una struttura gerarchica, anche se link inseriti all’interno delle pagine possono “rompere” tale struttura. 6 Disegno di dettaglio Modalità di interazione con il database È necessario definire per ogni pagina di consultazione dati la modalità di interazione con il database. Poichè le pagine sono simili tra loro, si possono schematizzare i procedimenti in un unico flow chart. L’interazione sopra riportata viene ripetuta ad ogni caricamento della pagina; in questo modo, se per qualche ragione non è stato possibile contattare il database, tramite un caricamento supplementare si può tentare di ovviare a tale errore. Per minimizzare l’utilizzo di risorse, l’accesso al database va effettuato in modalità non connessa. Inoltre, per motivi di sicurezza, tutte le richieste sono effettuate tramite viste o procedure, utilizzando il sistema di parametri fornito da Sql Server. Pagine di informazione Le pagine di informazione sono sostanzialmente statiche, anche se è possibile che vengano aggiornate di tanto in tanto, perciò si è scelto di ometterle dalla parte di programmazione in quanto non utilizzano algoritmi complessi o di interazione con il database. 7 Pagina master Per la pagina master non è stata effettuata una vera e propria progettazione. Qui sono comunque riportate le strutture adottate e le ragioni per cui sono state scelte. Si è deciso di creare un menu a tendina con una posizione fissa in cima alla pagina per dare accesso rapido a tutte le pagine del sito. Per far fronte ad eventuali problemi di compatibilità che portano alla scomparsa delle tendine, è possibile cliccare sull’elemento padre per accedere ad una pagina contenente un elenco puntato con gli elementi della tendina (vedi figure sotto). Gli altri elementi che compongono la pagina master sono: Footer: una barra che rimane fissa in fondo alla pagina e sempre visibile; per il momento contiene l’anno corrente ed il nome del progetto, ma è possibile che siano aggiunti la versione del sito e i crediti. Header: un’immagine del logo Garden of Things, che è possibile nascondere tramite scroll se il contenuto della pagina caricata supera le dimensioni della finestra. Content: un pannello semitrasparente, all’interno del quale risiede il ContentPlaceHolder, una sorta di tag “segnaposto” caratteristico della tecnologia ASP.NET, in cui appariranno i contenuti della pagina caricata. Lo sfondo della pagina master è stato reso statico, in modo da prevenire distorsione o spazi bianchi in caso di zoom/scroll della pagina. Tutti gli elementi che compongono la pagina master sono stati stilizzati tramite codice css, salvato in un file con estensione omonima legato alla pagina master tramite un tag “link”all’interno della head della pagina. 8 REALIZZAZIONE La parte di codifica del sito web è descritta solo dal momento in cui sono state stabilite le specifiche finali, poichè il lavoro svolto prima è trascurabile, in quanto non ha portato risultati particolarmente utili. Programmazione La classe 5°E è stata suddivisa in gruppi di 3-4 studenti. Di questi, 5 gruppi con il compito di realizzare e testare una pagina ciascuno, un sesto con il compito di progettare la pagina master e, a lavoro completato, di unire tutte le pagine. I rimanenti studenti hanno avuto il compito di scrivere la documentazione da pubblicare nel blog del progetto. Pagine di visualizzazione dati Poichè tutte le pagine di visualizzazione dati hanno un discreto ammontare di codice c#, richiesto per l’accesso al database e i relativi controlli, si è deciso di creare pagine con code behind. Tramite questa opzione è possibile inserire il codice c# in un file separato dalla parte HTML/ASP.NET, così da rendere i due codici più facili da leggere e comprendere. Il file di code behind (estensione “.cs”) di una pagina ASP.NET è collegato al file “.aspx” tramite l’attributo “CodeFile” inserito automaticamente alla prima riga quando si crea una pagina con code behind. Pagina master Poichè questa è una documentazione di carattere generale, non sono riportate parti di codice, ma solo la spiegazione del perchè si è deciso di effettuare certe decisioni. Le motivazioni possono essere consultate nella sezione “Disegno di Dettaglio”. Per la realizzazione della pagina master si è deciso di unificare il layout dei siti prodotti nella prima parte dell’anno, aggiungendo migliorie ideate o trovate dagli studenti che si sono dedicati a tale compito. Il risultato finale è riportato nello screenshot sottostante. 9 Test Utilizzando un database riempito con dati fittizi, generati tramite un programma realizzato da un’altra classe, è stato possibile effettuare test delle varie pagine in parallelo con il loro sviluppo. Per quando riguarda la pagina master, sono stati effettuati test con i seguenti browser: Google Chome Mozilla Firefox Internet Explorer Purtroppo, da alcuni test è stata rilevata la presenza di problemi a cui non si è ancora trovata una soluzione, che consistono nella sparizione delle tendine del menu e nella scomparsa del pannello semi-trasparente. I problemi sembrano verificarsi solo quando si accede al sito installato nel server con IIS, mentre non si presentano durante un normale debug di Visual Studio. Integrazione e test del sistema Quando le pagine di visualizzazione dati sono state completate, la classe ha abbandonato il progetto; ultimarlo è stato compito dei quattro alunni che lo hanno continuato tramite i corsi pomeridiani. La fase di integrazione delle varie pagine in un unico sito web è stata più complicata del previsto, e siccome alcune di esse non seguivano le specifiche imposte, è stato necessario ridisegnarle quasi da zero. In questa fase, si è rivelato molto importante il programma di simulazione, che ha permesso test accurati sulle pagine che sono state riprogrammate. Rilascio del prodotto (release) e collaudo Il prodotto deve ancora essere ultimato, ma nel frattempo è sotto collaudo presso l’ITA Garibaldi, dove è possibile effettuare test più o meno accurati servendosi dei dati reali rilevati dai sensori. Tali test, per il momento, sono stati affidati solamente a coloro che hanno preso parte al progetto, si ritiene però che non sarà complicato imparare ad utilizzare il sito per i dipendenti dell’ITA Garibaldi non esperti in campo informatico. Avviamento Siccome il sistema di acquisizione deve essere ancora ultimato, non è opportuno affermare che il sito web è già entrato in funzione. Inoltre, al momento della stesura di questa documentazione, è possibile accedervi solo tramite la rete privata dell’ITA Garibaldi, e non tramite Internet. Manutenzione Si prevede una manutenzione evolutiva nell’anno scolastico successivo e possibilmente anche durante l’estate, per l’aggiunta di funzioni al sistema e al sito. 10 FONTI Blog del progetto: http://giardinoitt.altervista.org/ CREDITI Persone che hanno collaborato al progetto: Classe 5°E dell’ITT B. Pascal, in particolare: Facciani Enrico, Tentoni Daniele, Tono Thomas e Tumedei Gianni, che hanno partecipato ai corsi pomeridiani. Professori che hanno allestito i corsi pomeridiani, in particolare: Serri Mauro, per le specifiche riguardanti le di consultazione, e Zabberoni Vanna, per aver seguito gli studenti durante lo sviluppo di tutto il sito. 11