Ingegneria del software 2016/2017 InRiva Versione 2.0 28 Febbraio 2017 Feederico Cappon 854132 Filippo Daniel 851520 Omar Utanti 854789 Leonardo Veronese 852057
Indice 1. Introduzione... 3 1.1 Open Data utilizzati... 3 2. Progettazione Architetturale... 3 2.1 Modello di gestione dei dati...3 2.2 Strategia di progettazione...3 2.3 Struttura: sottosistemi dell applicazione... 3 2.4 Classi... 3 3. Diagrammi... 4 3.1 Diagramma delle classi... 4 3.2 Funzioni offerte dall applicazione... 5 3.3 Diagrammi delle attività...5 3.4 Diagrammi di sequenza...7 4. Interfaccia Grafica... 9 4.1 Immagini mockup dell interfaccia grafica... 9 4.2 Dettagli implementativi...10 Pagina 2 di 10
1. Introduzione L obiettivo di questo documento è definire le caratteristiche tecniche dell applicazione InRiva, descritte nei documenti precedenti, necessarie all implementazione. Inoltre viene specificata la struttura del sistema, le classi con i relativi diagrammi UML e l interfaccia grafica che rappresenta le varie schermate dell applicazione. 1.1 Open Data utilizzati I dati usati dall applicazione sono disponibili ai seguenti indirizzi web: Balneabilità: http://www2.arpa.veneto.it/dati/xml/balneazione/balneazione.xml Qualità dell aria: http://89.96.234.233/aria-json/exported/aria/data.json http://89.96.234.233/aria-json/exported/aria/stats.json Meteo: http://www.arpa.veneto.it/previsioni/it/xml/bollettino_utenti.xml 2. Progettazione Architetturale 2.1 Modello di gestione dei dati Considerato che i dati sono di piccole dimensioni, sono dei file xml e json scaricati dal sito dell arpav, non è necessario un sistema di gestione dei dati complesso e condiviso: il sottosistema della gestione dei dati manterrà nello stato dei suoi oggetti tutte le informazioni. I dati verranno scaricati ad ogni avvio dell applicazione oppure a seguito dell azione di aggiornamento dei dati. Vi sarà anche una cache per evitare il riavvio dell'applicazione nel caso venga messa in pausa e poi ripristinata. 2.2 Strategia di progettazione Visto che viene utilizzato il linguaggio di programmazione Java, nella progettazione viene scelto un approccio orientato ad oggetti. 2.3 Struttura: sottosistemi dell applicazione L applicazione è divisa internamente in due sottosistemi: il sottosistema grafico e il sottosistema dati. Il sottosistema grafico è l interfaccia grafica, esposta in dettaglio nella sezione 4. Il sottosistema dati è la sezione che rappresenta il funzionamento interno dell applicazione, che si occupa dunque di scaricare i dati dal sito arpav, eseguire il parsing e mantenerli organizzati e accessibili. 2.4 Classi Qui di seguito sono indicate le classi del sottosistema dei dati dell applicazione, ovvero quelle classi che non fanno parte dell interfaccia grafica. Pagina 3 di 10
1. Classe parser Oggetto singleton che ha come responsabilità l acquisizione (e il parsing) dei dati sulle località e sulla balneazione dal file xml, la creazione e il mantenimento degli oggetti località (lista). L oggetto parser scarica e acquisisce anche tutti i dati di meteo e qualità dell aria e li assegna ad ogni località. 2. Classe località Oggetto che rappresenta la singola località, sarà creato con nome, comune, codice identificativo, posizione (latitudine/longitudine), corpo idrico e balneabilità(con relativa data di aggiornamento). La sua responsabilità è mantenere i dati della singola località, come il meteo e qualità dell aria. 3. Classe meteo Oggetto che contiene le informazioni sul meteo. Tali informazioni sono: temperatura, condizione meteo attuale, vento, precipitazioni e attendibilità del rilevamento. 4. Classe aria Oggetto che contiene le informazioni sulla qualità dell aria. In particolare si tiene conto dei valori di ozono e pm10. 3. Diagrammi 3.1 Diagramma delle classi Pagina 4 di 10
3.2 Funzioni offerte dall applicazione Il seguente grafico presenta le possibilità offerte all utente per selezionare la località, che verranno analizzate dai diagrammi delle attività e di sequenza. 3.3 Diagrammi delle attività A sinistra viene mostrata la selezione della località dalla lista, al centro la selezione della località dalla mappa, a destra la ricerca della località. Pagina 5 di 10
Pagina 6 di 10
3.4 Diagrammi di sequenza Ad ogni avvio l applicazione eseguirà il download e il parsing dei dati, dunque di seguito vi sono per primi i diagrammi che rappresentano soltanto l avvio dell applicazione, poi i diagrammi che mostrano l interazione con l utente (escluso l avvio). Avvio dell applicazione: Avvio dell applicazione e aggiornamento dei dati: Pagina 7 di 10
Selezione località dalla lista: Selezione località dalla mappa: Selezione località tramite ricerca: Pagina 8 di 10
4. Interfaccia Grafica 4.1 Immagini dell interfaccia grafica Schermata con lista e ricerca: Pagina 9 di 10
Esempio schermata mappa e schermata dettagli: 4.2 Dettagli implementativi Per la scrittura dell interfaccia grafica si utilizzerà una Activity diversa per ogni schermata, eccetto la ricerca che sarà visualizzata sull activity in cui è avviata. La schermata con la lista utilizzerà una list view in cui viene dichiarata una custom row per includere l immagine, la località e il comune. Per la schermata info verrà usato Android CardView. Per la schermata con la mappa si utilizzerà Google Maps Api v.2. Pagina 10 di 10