ANALISI E SVILUPPO DELLE FUNZIONALITA' Filippo Licenziati PROGETTO E REALIZZAZIONE DI SISTEMI INFORMATIVI TERRITORIALI le funzionalità 1 ANALISI E SVILUPPO DELLE FUNZIONALITA' 2 PROGETTO S.I.T. STUDIO DI FATTIBILITÀ ANALISI DEI DATI PROGETTO DEL DATABASE ACQUISIZIONE DATI ANALISI DELLE FONTI CARTOGRAFICHE PIANO DI ACQUISIZIONE VERIFICHE ANALISI FUNZIONALE PROGETTO DELLE PERSONALIZZAZ. REALIZZAZIONE DEL PROTOTIPO ANALISI DELLE UTENZE PROGETTO SISTEMISTICO SISTEMA ANALISI E SVILUPPO DELLE FUNZIONALITA' INDICE ANALISI FUNZIONALE • tecnologie di gestione dei dati • validazione • scopi e dinamica del database PROGETTO DELLE PERSONALIZZAZIONI • software di consultazione e di lavoro • software di gestione degli archivi 3 ANALISI E SVILUPPO DELLE FUNZIONALITA' ANALISI FUNZIONALE restituzione introduzione e modifica dei dati validazione degli aggiornamenti e manutenzione degli archivi consultazione 4 ANALISI E SVILUPPO DELLE FUNZIONALITA' PRESUPPOSTI TECNICI Alcuni concetti di base circa la tecnologia di gestione degli interventi sulle basi di dati. 5 ANALISI E SVILUPPO DELLE FUNZIONALITA' PRESUPPOSTI TECNICI • concetto di transazione • long transaction • versioning 6 ANALISI E SVILUPPO DELLE FUNZIONALITA' Transazione (I) esempio di database non grafico PROPRIETARI codice fiscale nominativo luogo data RSS GCH 92B29 G479 P Gioacchino ROSSINI Pesaro 29/2/1792 VRD GPP 13R10 B293 P Giuseppe VERDI Busseto 10/10/1813 PSL GNN 40E09 H409 K Giovanni PAESIELLO Roccaforzata APPEZZAMENTI particella estensione rendita proprietario 2987 345,12 2.674,00 RSS GCH 92B29 G479 P 3459 167,89 1.263,98 VRD GPP 13R10 B293 P 1236 1.234,53 5.672,18 RSS GCH 92B29 G479 P 5623 987,65 4.861,93 VRD GPP 13R10 B293 P 3486 123,45 1.894,65 PSL GNN 40E09 H409 K 9/5/1740 7 ANALISI E SVILUPPO DELLE FUNZIONALITA' Transazione (I) esempio di modifica del database particella 5623 1. inserire Bellini nella tabella PROPRIETARI 2. effettuare la variazione nella tabella APPEZZAMENTI 8 ANALISI E SVILUPPO DELLE FUNZIONALITA' Transazione (III) esempio di database modificato PROPRIETARI codice fiscale nominativo luogo data RSS GCH 92B29 G479 P Gioacchino ROSSINI Pesaro 29/2/1792 VRD GPP 13R10 B293 P Giuseppe VERDI Busseto 10/10/1813 PSL GNN 40E09 H409 K Giovanni PAESIELLO Roccaforzata 9/5/1740 BLL VCN 01S03 C351 L Vincenzo BELLINI Catania 3/11/1801 APPEZZAMENTI particella estensione rendita proprietario 2987 345,12 2.674,00 RSS GCH 92B29 G479 P 3459 167,89 1.263,98 VRD GPP 13R10 B293 P 1236 1.234,53 5.672,18 RSS BLLGCH VCN92B29 01S03 G479 C351 PL 5623 987,65 4.861,93 VRD GPP 13R10 B293 P 3486 123,45 1.894,65 PSL GNN 40E09 H409 K 9 ANALISI E SVILUPPO DELLE FUNZIONALITA' 10 Transazione (IV) iter di modifica del database INIZIO TRANSAZIONE FINE TRANSAZIONE BEFORE IMAGE UNLOCK PARTICELLA Particella? LOCK PARTICELLA Nuovo proprietario? crash sì COMMIT? INSERIMENTO NUOVO PROPRIETARIO no RIPRISTNO BEFORE IMAGE MODIFICA PARTICELLA accessi concorrenti ANALISI E SVILUPPO DELLE FUNZIONALITA' 11 Long transaction Molte attività di pianificazione e progettazione, come la suddivisione di sviluppo, richiedono lunghe operazioni. Una long transaction consente applicazioni in cui le modifiche a un database potrebbero prolungarsi per diversi giorni, settimane o mesi e possono quindi riguardare più sessioni. ANALISI E SVILUPPO DELLE FUNZIONALITA' 12 Versioning (I) Il versioning consente a più utenti di apportare modifiche allo stesso oggetto del database allo stesso tempo. Gli altri utenti non vedono i cambiamenti fino a che non siano inseriti nella versione ufficiale del GIS. versione di lavoro (non validata) versioni di utente versione ufficiale (validata) ANALISI E SVILUPPO DELLE FUNZIONALITA' 13 Versioning (II) Quando gli utenti lavorano, salvano le modifiche nella loro versione personale. Alla fine della loro sessione, pongono le loro modifiche nella versione di lavoro, dove vengono segnalate le eventuali incongruenze tra le versioni dei vari utenti. Dopo che tutti gli utenti hanno rilasciato le loro versioni, il responsabile della validazione esamina le variazioni e le pubblica nella versione ufficiale. ANALISI E SVILUPPO DELLE FUNZIONALITA' 14 Iter di una long transaction INIZIO TRANSAZIONE validazione FINE TRANSAZIONE il lavoro continua su più sessioni, nel corso di più giorni sì COMMIT? no ANALISI E SVILUPPO DELLE FUNZIONALITA' 15 INTRODUZIONE E MODIFICA Funzioni basilari di introduzione e modifica dei dati ANALISI E SVILUPPO DELLE FUNZIONALITA' 16 INTRODUZIONE E MODIFICA • controlli formali • controlli semantici • controlli sintattici ANALISI E SVILUPPO DELLE FUNZIONALITA' 17 Controlli formali Consistono nel verificare che l’aggiunta o la modifica sia formalmente corretta, cioè non contravvenga alle regole formali del database. Ad esempio, non è formalmente corretto inserire un punto in uno stato di poligoni o inserire un poligono in uno strato di linee. Sono per lo più intrinsecamente previsti dalle piattaforme GIS. ANALISI E SVILUPPO DELLE FUNZIONALITA' 18 Controlli sintattici strada edificio edificio strada strada Di solito è possibile attivare tali controlli attraverso le funzioni delle piattaforme GIS. edificio strada Ad esempio, non è possibile che un tronco stradale non sia connesso ad un altro tronco stradale. edificio Consistono nel verificare che l’aggiunta o la modifica abbia un significato all’interno del database. ANALISI E SVILUPPO DELLE FUNZIONALITA' 19 Controlli semantici Consistono nel verificare che l’aggiunta o la modifica sia correttamente inserita nel contesto del database. Ad esempio, non è possibile che una strada incroci una ferrovia senza definire un passaggio a livello o un’intersezione a piani sfalsati. SEDE = “propria” strade ferrovie SEDE = “propria” strade SEDE= “Ponte/Viad.” ferrovie Per eseguire questo tipo di controlli, è normalmente necessario sviluppare apposito software. ANALISI E SVILUPPO DELLE FUNZIONALITA' 20 Modalità di elaborazione dei controlli I controlli possono essere: • interattivi, se vengono effettuati contestualmente alle operazioni di editing; • bathc, se vengono effettuati dopo il termine delle operazioni di editing. ANALISI E SVILUPPO DELLE FUNZIONALITA' Validazione A valle di tutti i controlli, l’utente autorizzato può validare le variazioni intervenute e pubblicarle nella versione ufficiale del database. 21 ANALISI E SVILUPPO DELLE FUNZIONALITA' RESTITUZIONE Alcune esigenze di restituzione grafica 22 ANALISI E SVILUPPO DELLE FUNZIONALITA' Restituzione • restituzione a video e restituzione su carta • restituzione con valenza metrica ESEMPI 23 ANALISI E SVILUPPO DELLE FUNZIONALITA' Restituzione a video La restituzione a video non presenta particolari problemi di precisione, ma deve seguire criteri di ergonomicità e di facilità operativa. 24 ANALISI E SVILUPPO DELLE FUNZIONALITA' 25 Restituzione a valenza metrica La restituzione a valenza metrica deve consentire di risalire alle dimensioni reali di un elemento grafico, attraverso la misura della sua rappresentazione. Per ottenere tale risultato con sufficiente attendibilità, può essere necessario adottare supporti cartacei speciali e unità di stampa particolari (plotter piani). ANALISI E SVILUPPO DELLE FUNZIONALITA' 26 MANUTENZIONE DEGLI ARCHIVI Esigenze di conservazione delle informazioni e di continuità del servizio ANALISI E SVILUPPO DELLE FUNZIONALITA' 27 MANUTENZIONE DEGLI ARCHIVI ANALISI • eventuale validità legale del database • frequenza di aggiornamento • mole di aggiornamento ANALISI E SVILUPPO DELLE FUNZIONALITA' Database a validità legale Quando un database ha una validità legale, le procedure di salvataggio e di ripristino devono essere adeguate alle norme riguardanti la conservazione sostitutiva. deliberazione del CNIPA n° 11 del 19 febbraio 2004 28 ANALISI E SVILUPPO DELLE FUNZIONALITA' 29 Frequenza di aggiornamento La valutazione della frequenza di aggiornamento del database serve definire la periodicità dei salvataggi. Database aggiornati molto raramente possono essere sottoposti a procedure di backup più distanziate nel tempo. ANALISI E SVILUPPO DELLE FUNZIONALITA' Mole di aggiornamento È necessario stimare adeguatamente la mole di dati effettivamente aggiornata. Infatti, in caso di aggiornamenti su insiemi limitati di informazioni si può ricorrere a back-up parziali, con risparmio di spazio e di tempo. 30 ANALISI E SVILUPPO DELLE FUNZIONALITA' CONSULTAZIONE Funzioni basilari di consultazione 31 ANALISI E SVILUPPO DELLE FUNZIONALITA' CONSULTAZIONE FUNZIONALITÀ DI BASE • selezione • dissolve • buffering • overlay FUNZIONALITÀ COMPLESSE • esempio 32 ANALISI E SVILUPPO DELLE FUNZIONALITA' Selezione Le funzionalità di selezione consentono di selezionare un sottoinsieme del database, attraverso il valore di uno o più attributi o attraverso la collocazione territoriale. 33 ANALISI E SVILUPPO DELLE FUNZIONALITA' ED01 Bella Selezione per attributi ED02 ED04 via Bassa piazza Larga ED05 ED06 vico Corto ED03 via via Alta 34 ANALISI E SVILUPPO DELLE FUNZIONALITA' Selezione diretta 35 ANALISI E SVILUPPO DELLE FUNZIONALITA' Selezione territoriale 36 ANALISI E SVILUPPO DELLE FUNZIONALITA' Buffering La funzione di buffering crea un poligono a partire da un punto, da una linea o da un altro poligono. 37 ANALISI E SVILUPPO DELLE FUNZIONALITA' Buffering 38 ANALISI E SVILUPPO DELLE FUNZIONALITA' Buffering Buffering intorno ad asta fluviale 39 ANALISI E SVILUPPO DELLE FUNZIONALITA' Dissolve 40 ANALISI E SVILUPPO DELLE FUNZIONALITA' Dissolve b a a a a b c b b b c c a b a b a 41 ANALISI E SVILUPPO DELLE FUNZIONALITA' Overlay La funzionalità di overlay sovrappone due strati del database, fornendo un output che dipende dalle modalità di esecuzione. 42 ANALISI E SVILUPPO DELLE FUNZIONALITA' Overlay eseguono la join degli attributi 43 ANALISI E SVILUPPO DELLE FUNZIONALITA' 44 Overlay con join degli attributi a2, b2, c2 d, e a3, b3, c3 a3, b3, c3 a4, b4, c4 a1, b1, c1 a3, b3, c3, d, e a4, b4, c4, d, e a4, b4, c4 ANALISI E SVILUPPO DELLE FUNZIONALITA' Overlay: clip 45 ANALISI E SVILUPPO DELLE FUNZIONALITA' Overlay: intersect 46 ANALISI E SVILUPPO DELLE FUNZIONALITA' Overlay: union 47 ANALISI E SVILUPPO DELLE FUNZIONALITA' Overlay: merge 48 ANALISI E SVILUPPO DELLE FUNZIONALITA' Esempio di overlay (I) Overlay tra cartografia catastale e carta dell’uso del suolo. 49 ANALISI E SVILUPPO DELLE FUNZIONALITA' Esempio di overlay (II) Overlay tra confini provinciali e zone a rischio d’incendio boschivo. 50 ANALISI E SVILUPPO DELLE FUNZIONALITA' 51 Funzionalità complesse Sono funzionalità ottenute dalla combinazione di funzioni di base della piattaforma in uso, in modo che l’output della funzione precedente costituisca l’input della funzione successiva. ANALISI E SVILUPPO DELLE FUNZIONALITA' Funzionalità complesse ESEMPIO: studio di rumorosità di una strada 1. selezione dell’asse strada > select strada = “SP43” 52 ANALISI E SVILUPPO DELLE FUNZIONALITA' Funzionalità complesse ESEMPIO: studio di rumorosità di una strada 2. buffering > buffer 50 53 ANALISI E SVILUPPO DELLE FUNZIONALITA' Funzionalità complesse ESEMPIO: studio di rumorosità di una strada 3. overlay tra il poligono di buffering e i poligoni degli edifici 54 ANALISI E SVILUPPO DELLE FUNZIONALITA' 55 Funzionalità complesse ESEMPIO: studio di rumorosità di una strada 4. selezione degli edifici che ricadono nel poligono di buffer codice destinazione %sovrapposiz. K3446 civile abitazione 34,76% K8765 ospedale 12,23% K7893 civile abitazione 87,74% H7893 scuola 48,50% W8989 civile abitazione 19,54% Y7896 civile abitazione 29,34% …….. …….. …….. ……. …….. …….. ANALISI E SVILUPPO DELLE FUNZIONALITA' 56 Progetto delle personalizzazioni Definizione del software necessario alle esigenze dell’utente ANALISI E SVILUPPO DELLE FUNZIONALITA' 57 Progetto delle personalizzazioni • software di utente • software di gestione degli archivi ANALISI E SVILUPPO DELLE FUNZIONALITA' 58 Modello applicativo input analisi output ANALISI E SVILUPPO DELLE FUNZIONALITA' Fase di input input • ristrutturazione • compilazione • editing 59 ANALISI E SVILUPPO DELLE FUNZIONALITA' Ristrutturazione in input Modificazione della struttura di un file o di un database in una forma utilizzabile dal sistema di elaborazione 60 ANALISI E SVILUPPO DELLE FUNZIONALITA' Compilazione Codifica dei dati geografici in una forma utilizzabile dal sistema di elaborazione componente non grafica topologia 61 ANALISI E SVILUPPO DELLE FUNZIONALITA' Editing Ricerca e correzione di errori ed incoerenze logiche 62 ANALISI E SVILUPPO DELLE FUNZIONALITA' 63 Fase di analisi • operazioni logiche • operazioni aritmetiche • operazioni di overlay analisi • operazioni geometriche • operazioni di trasformazione geometrica • operazioni di derivazione geometrica ANALISI E SVILUPPO DELLE FUNZIONALITA' Operazioni logiche Funzioni che utilizzano operatori logici per identificare ed eventualmente aggregare elementi del database secondo criteri spaziali o alfanumerici 64 ANALISI E SVILUPPO DELLE FUNZIONALITA' 65 Operazioni aritmetiche Funzioni che utilizzano operatori aritmetici per trasformare gli attributi degli elementi di uno strato particella estensione rendita proprietario 2987 345,12 2.674,00 RSS GCH 92B29 G479 P 3459 167,89 1.263,98 VRD GPP 13R10 B293 P 1236 1.234,53 5.672,18 RSS GCH 92B29 G479 P 5623 987,65 4.861,93 VRD GPP 13R10 B293 P 3486 123,45 1.894,65 PSL GNN 40E09 H409 K particella aumentare “rendita” del 10% (RENDITA = RENDITA x 1,10) estensione rendita proprietario 2987 345,12 2.941,40 RSS GCH 92B29 G479 P 3459 167,89 1.390,38 VRD GPP 13R10 B293 P 1236 1.234,53 6.239,40 RSS GCH 92B29 G479 P 5623 987,65 5.348,12 VRD GPP 13R10 B293 P 3486 123,45 2.084,16 PSL GNN 40E09 H409 K ANALISI E SVILUPPO DELLE FUNZIONALITA' Operazioni di overlay Funzioni che fondono gli elementi di due o più livelli 66 ANALISI E SVILUPPO DELLE FUNZIONALITA' 67 Operazioni geometriche m Funzioni che calcolano gli indici relativi alle proprietà geometriche di un livello φ m2 m3 misure valutazioni di connettività e di contiguità ANALISI E SVILUPPO DELLE FUNZIONALITA' 68 Trasformazione geometrica Funzioni che modificano le caratteristiche posizionali di uno strato cambiamenti di scala cambiamenti di proiezione ANALISI E SVILUPPO DELLE FUNZIONALITA' Derivazione geometrica Funzioni che creano nuovi elementi da altri elementi presenti in uno strato generazione dei centroidi 69 ANALISI E SVILUPPO DELLE FUNZIONALITA' Fase di output output • ristrutturazione • reporting • visualizzazione 70 ANALISI E SVILUPPO DELLE FUNZIONALITA' 71 Ristrutturazione in output Modificazione della struttura di un file o di un database in una forma utilizzabile da un altro sistema di elaborazione ANALISI E SVILUPPO DELLE FUNZIONALITA' 72 Reporting Funzioni che forniscono informazioni descrittive riguardanti il database e calcolano gli indici sintetici circa le proprietà spaziali e gli attributi non grafici ANALISI E SVILUPPO DELLE FUNZIONALITA' Restituzione Funzioni che producono rappresentazioni grafiche dei dati su supporti volatili o permanenti 73 ANALISI E SVILUPPO DELLE FUNZIONALITA' Interfaccia utente L’interfaccia utente deve essere progettata secondo i comuni requisiti di ergonomicità e deve avere una propria continuità grafica, funzionale e semantica. 74 ANALISI E SVILUPPO DELLE FUNZIONALITA' Esigenze particolari RETI TECNOLOGICHE geografia della rete 75 ANALISI E SVILUPPO DELLE FUNZIONALITA' Esigenze particolari RETI TECNOLOGICHE geo-schematica (georeferenziata) 76 ANALISI E SVILUPPO DELLE FUNZIONALITA' Esigenze particolari RETI TECNOLOGICHE schematica (non georeferenziata) 77 ANALISI E SVILUPPO DELLE FUNZIONALITA' Esigenze particolari DTM (Digital Terrain Model) Campi di applicazione: Ambiente Agricoltura Geologia Idrologia Meteorologia Epidemiologia 78 ANALISI E SVILUPPO DELLE FUNZIONALITA' Esempio di applicazione 79 ANALISI E SVILUPPO DELLE FUNZIONALITA' Esempio di applicazione 80 ANALISI E SVILUPPO DELLE FUNZIONALITA' Ambienti di sviluppo proprietari aperti 81 ANALISI E SVILUPPO DELLE FUNZIONALITA' Java Java è un linguaggio di programmazione orientato agli oggetti. La Sun ha promosso la produzione di un ambiente di sviluppo open source chiamato NetBeans e lo mette a disposizione gratuitamente insieme a Sun Java Studio. Java è un marchio registrato di Sun Microsystems. 82 ANALISI E SVILUPPO DELLE FUNZIONALITA' Microsoft .NET La suite di prodotti .NET è un progetto all'interno del quale Microsoft ha creato una piattaforma di sviluppo software basata su una versatile tecnologia di programmazione ad oggetti. Microsoft ha sviluppato .NET come contrapposizione proprietaria al linguaggio Java. Rispetto a Java, .NET è standard ISO riconosciuto e quindi non è possibile, da parte della casa madre, modificarne la sintassi (a meno di discostarsi dal suo stesso standard). 83 ANALISI E SVILUPPO DELLE FUNZIONALITA' 84 ArcObjects Gli ArcObjects sono componenti software realizzate in C++, indipendenti dalla piattaforma, che forniscono le funzionalità GIS per applicazioni di tipo desktop, o centralizzate di tipo web o client/server. Sebbene questa architettura costituisca le fondamenta dei prodotti ArcGIS (ArcView, ArcEditor, ArcInfo ed ArcReader), tutte le componenti sono state progettate per essere utilizzate in ambienti di sviluppo ed architetture eterogenei. ANALISI E SVILUPPO DELLE FUNZIONALITA' 85 ArcGIS Engine ArcGIS Engine è il prodotto della famiglia ArcGIS che consente agli sviluppatori di utilizzare gli ArcObjects per creare applicazioni GIS personalizzate di tipo desktop oppure per integrare funzionalità GIS all’interno di applicazioni già esistenti. ANALISI E SVILUPPO DELLE FUNZIONALITA' 86 MANUTENZIONE DEGLI ARCHIVI PROGETTO • back-up periodici • back-up multipli • modalità di back-up • back-up storici ANALISI E SVILUPPO DELLE FUNZIONALITA' 87 Back-up periodici La frequenza dei back-up deve essere adeguata alla frequenza di aggiornamento del database. lunedì Spesso è opportuno non limitarsi a conservare copia dell’ultimo back-up, ma mantenere copia di quelli più recenti. martedì mercoledì giovedì venerdì ANALISI E SVILUPPO DELLE FUNZIONALITA' Back-up totali Sono i back-up che riguardano l’intero database. Possono essere necessari frequentemente, quando l’aggiornamento riguarda elevate quantità di dati o sporadicamente, quando sono previsti anche back-up parziali. 88 ANALISI E SVILUPPO DELLE FUNZIONALITA' Back-up parziali Sono i back-up che riguardano solo una parte del database. Sono indicati quando gli aggiornamenti sono particolarmente limitati. 1 2 3 89 ANALISI E SVILUPPO DELLE FUNZIONALITA' 90 Back-up parziali Le procedure di ripristino dovranno naturalmente tenere conto dei back-up parziali e applicarli, nello stesso ordine, all’ultimo back-up totale. 1 2 3 ANALISI E SVILUPPO DELLE FUNZIONALITA' Back-up storici Sono back-up totali, che riproducono lo stato del database in certi istanti e che vengono conservati per motivi di documentazione. 2000 2001 2002 2003 2004 91