Progettazione e sviluppo di applicazioni software GIS

Transcript

Progettazione e sviluppo di applicazioni software GIS
Progetto Sistemi Informativi Geografici per la gestione e la modellazione di dati territoriali
7a Edizione - 2009
Progettazione e sviluppo di applicazioni software GIS
Ingegneria software, modelli OO e a componenti, sintassi e costrutti di
programmazione in VBA/ArcObjects per ArcGIS 9
Scopo del corso
Il presente corso si propone l’obiettivo di introdurre, previa una breve analisi dei modelli di programmazione
ad oggetti ed a componenti, all’architettura ed alle tecniche di programmazione in VBA (Visual Basic for
Applications) per ArcObjects/ArcGIS 9. Il corso si incentrerà soprattutto sulle tecniche di programmazione
per la gestione dei dati geografici, l’interazione con il nuovo modello ESRI di database geografico
(geodatabase) e le tecniche di analisi, interrogazione e definizione delle componenti geometriche.
ArcGIS 9, la nuova piattaforma software della ESRI, si è ormai imposta come standard di riferimento
professionale nel settore GIS, consentendo una più matura integrazione con i sistemi informativi tradizionali
in virtù di una nuova architettura e filosofia basata sul modello a componenti, nonché un nuovo modello di
geodatabase orientato ad oggetti. In questo contesto Avenue, il precedente linguaggio script per ArcView
3.x, ha lasciato il posto a linguaggi di programmazione più evoluti e standard, quali VBA, Visual Basic e
Visual C++; tali linguaggi garantiscono un accesso completo alle funzionalità native di ArcGIS 9, messe a
disposizione degli sviluppatori attraverso la libreria di componenti ArcObjects.
Questo corso si colloca nell’ambito di un progetto ambizioso di formazione sui Sistemi Informativi Territoriali.
Tali sistemi, anche noti come GIS dall’acronimo inglese Geographical Information Systems, si stanno
gradualmente imponendo come strumenti di gestione, visualizzazione, interrogazione ed analisi di dati
geografici nei domini professionali più disparati. Tra questi, il settore urbanistico (PRG), quello della
pianificazione territoriale, quello del controllo ambientale sono solo alcuni degli esempi più rilevanti. In
questo contesto, le esigenze di automazione e di personalizzazione della piattaforma software di base,
ovvero di sviluppo di applicazioni stand-alone, sono sempre più
rilevanti.
Programma del corso
Il corso verterà sui seguenti punti fondamentali, secondo un percorso
teorico/pratico:
Classe, oggetto e ordered collection di oggetti
Introduzione ai concetti di software e di ingegneria software
Definizione estensiva di software: ingegneria software, programmazione, documentazione di sistema ed
utente, files di configurazione e di dati. Sviluppo software nel contesto della GIScience: ragioni, filosofia
e tecniche nella personalizzazione di piattaforme GIS e sviluppo di nuovi applicativi. Leggibilità,
mantenibilità e portabilità.
Software Engineering: specifiche, progettazione, project
management,
implementazione,
debugging/testing,
analisi
di
performance,
documentazione
e
manutenzione, concetti e diagrammi fondamentali del
UML (Unified Modelling Language), progettazione e
sviluppo di geodatabase per ArcGIS 9 a partire dalla
estensione del modello originario di ArcInfo in MsVisio
2000. Gerarchia di classi, instanziazione di oggetti e
verifica di funzionalità a livello di prototyping mediante
strumenti RAD (Rapid Application Development).
Modelli di programmazione ad oggetti e a componenti:
concetti fondamentali illustrati attraverso esempi in
JAVA/BlueJ
Modelli di programmazione orientata ad oggetti: concetti
Visual Basic: applicazione di analisi spaziale di
fondamentali di classe, oggetto, incapsulamento,
dati epidemiologici (colera e punti d’acqua nel
ereditarietà, messaggi e polimorfismo, variabili di
caso storico del Dott. Snow)
autoriferimento (this/self/me), costruttori/distruttori. Punti
di forza del modello rispetto a quello classico procedurale.
Modello a componenti: concetti fondamentali di factory, interfaccia, ereditarietà di interfacce,
aggregazione e contenimento. Caratteristiche peculiari del modello in una architettura client/server e nel
contesto di applicazioni distribuite.
JAVA/BlueJ: storia del linguaggio (JAVA) e dell’ambiente di sviluppo (BlueJ), entrambi accessibili
gratuitamente in rete, esame sintetico della implementazione dei concetti fondamentali del modello ad
oggetti (classi, oggetti, metodi e passaggio di messaggi, ereditarietà, metodi astratti ed interfacce, classi
grafiche Swing e AWT).
Presentazione ed analiisi dello sviluppo di alcuni esempi didattici funzionali alla comprensione
dell’architettura del modello a componenti di ArcObjects/ArcGIS 9.
Fondamenti di programmazione, linguaggio VBA (Visual Basic for Application) ed esempi di sviluppo
di applicazioni di analisi spaziale
Variabili e costanti, tipi fondamentali (bits e bytes, interi e interi lunghi, single o floating-point, double,
booleani, stringhe), indirizzi in memoria e puntatori, arrays statici
' Function: SearchLayer
e dinamici (dimensionamento, inizializzazione, accesso),
' Ricerca di un layer nella TOC, basata sul
costanti, operazioni su bits, files ad accesso sequenziale e
‘ suo nome e sul GUID, che rappresenta il
casuale (apertura, scrittura, lettura e chiusura).
‘ tipo di layer da ricercare
Function SearchLayer(layerName As String, _
Metodi di programmazione: controllo del flusso e delle iterazioni,
Optional pID As UID = Nothing) As ILayer
subroutine e function, passaggio di variabili per valore e per
Dim pMxDoc As IMxDocument
riferimento, visibilità e parametri/valori di ritorno, ricorsione.
Dim pMap As IMap
Dim pEnumLayer As IEnumLayer
Gestione degli eventi. Gestione degli errori.
Dim pLayer As ILayer
Elementi fondamentali dell’ambiente di sviluppo VBA (Visual
Set pMxDoc = ThisDocument
Basic for Application) di ArcGIS 9: accesso all’ambiente,
Set pMap = pMxDoc.FocusMap
strumenti e controlli di base, scrittura di codice, compilazione e
debugging.
If pID Is Nothing Then
Set pEnumLayer = pMap.Layers
Proprietà degli oggetti fondamentali in VBA e metodi correlati:
Else
form, textBox, Label, Frame, CommandButton, CheckBox,
Set pEnumLayer = pMap.Layers(pID, False)
OptionButton, ListBox, ComboBox, PictureBox, ScrolBar,
End If
DriveListBox, DirListBox, FileListBox, Timer, controlli grafici
pEnumLayer.Reset
(point, line, circle), menu ed array di controlli. Architettura di
Set pLayer = pEnumLayer.Next
applicazioni multi-form e metodi load/unload/hide. Grafica:
Do While Not pLayer Is Nothing
' Searched layer found ...
sistema di coordinate, gestione del colore, metodi grafici,
If pLayer.Name = layerName Then
immagini in fase di progettazione e a run-time, controllo della
Set SearchLayer = pLayer
scala e gestione di animazioni.
Exit Function
End If
Sviluppo
di
applicazioni
di
esempio,
funzionali
Set pLayer = pEnumLayer.Next
all’approfondimento dei concetti analizzati ed incentrate sulla
Loop
gestione, visualizzazione ed analisi spaziale di dati geografici:
Set SearchLayer = Nothing 'Not found
regionalizzazione mediante l’algoritmo dell’inverso della distanza
End Function
____________________________________________________________________________________________
Questo documento è coperto da copyright. E’ vietata la riproduzione totale o parziale senza esplicita autorizzazione
(IDW), calcolo dell’indice I di Moran per la valutazione della correlazione spaziale, ecc..
Ambiente di sviluppo e programmazione VBA/Arcobjects in ArcGIS 9 e sviluppo di un prototipo
Comandi di ArcGIS, Customize dialog box, creazione di un nuovo comando, settaggio delle proprietà ed
accesso al codice sorgente, debugging, creazione ed aggiunta di macro ad una toolbar.
Programmazione con classi ed oggetti, Object browser, creazione di oggetti a run time ed a design time,
utilizzo dell’istruzione Set. Implementazione del modello a componenti in ArcObjects (classi COM,
interfacce, polimorfismo, metodi, proprietà, riferimenti ad altre interfacce), tipi di classi (abstract,
instantiable e creatable), relazioni di ereditarietà, proprietà ed interfacce, relazioni, settaggio e lettura di
proprietà.
Gestione delle mappe e dei layers: accesso alle mappe ed ai layers, iterazione su collezioni di mappe,
aggiunta e settaggio di nuovi layers, iterazioni sulla TOC (Table Of Contents) di ArcMap, accesso ed
interazione con le sorgenti di dati.
Gestione dei dati: fonti di dati (shape, coverage e geodatabase), tecniche ed interfacce di accesso agli
oggetti principali (workspace, dataset, table, object, feature, query, cursor, selection, relationship,
domain, fields, fields collection, rows).
Gestione della geometria e geoprocessing: creazione, costruzione e disegno di geometrie, selezione e
cursori, operatori topologici e spaziali (ItopologicalOperator, IRelationalOperator, IProximityOperator),
componenti geometriche ed attributi alfanumerici. Classi astratte (polilinee, poligoni, punti, curve,
envelope).
Sviluppo di un prototipo, che illustri architettura e principali funzionalità di creazione, gestione ed
interrogazione di una base dati geografica sviluppata in ambiente ArcGIS 9.
Progetto didattico
Il corso si inquadra nel contesto di un più ampio progetto di formazione nel settore GIS. Avvalendosi di una
docenza di alto profilo, certificata da titoli universitari di specializzazione post-laurea e curriculum accademici
e professionali consolidati nel settore della GIScience, il progetto affronta tematiche introduttive nel corso
“Introduzione ai GIS: Dai principi e tecniche fondamentali alla filosofia di sviluppo di applicazioni reali di
gestione, visualizzazione ed analisi spaziale” e nel seminario “Business Geographics & Geodemographics” ,
e tematiche più specialistiche, focalizzate sulla personalizzazione di ambienti GIS e sulla
progettazione/implementazione di applicazioni GIS nell’ambito dei due corsi “Progettazione e sviluppo di
applicazioni software GIS - Ingegneria software, modelli OO e a componenti, sintassi e costrutti di
programmazione in VBA/ArcObjects per ArcGIS 9” e “Programmazione OO in JAVA per l’implementazione di
soluzioni GIS”.
I nuovi corsi specialistici “La gestione di progetti ambientali: Aspetti legislativi, tecnici, organizzativi e
comunicativi” e “Applicazione della modellistica numerica di flusso e trasporto delle acque sotterranee:
Gestione delle risorse idriche a scala regionale e nell’analisi e progettazione di interventi di protezione e
recupero ambientale a scala locale” estendono poi l’area di interesse del progetto al settore ambientale, che
ad oggi conosce in Italia un forte impulso di crescita e pone domande di formazione e di specializzazione
sempre più forti Tali iniziative si candidano a pieno diritto come estensione ed integrazione del progetto, con
risvolti propri della GIScience focalizzati sulla implementazione di EISs (Environmental Information Systems)
e sull’analisi di temi specialistici quali l’analisi geostatistica, la modellazione numerica e le tecniche afferenti
alla disciplina della ESDA (Exploratory Spatial Data Analysis), incluse le tecniche di analisi statistica spaziale
e la visualizzazione 3D e tempo-dipendente.
Disegnando un percorso articolato e coerente, in linea con i principi ispiratori della formazione universitaria
post-laurea del mondo anglosassone ed in particolare delle modalità di formazione part-time e a distanza
(distance learning) e, non meno importante, sulla scia dell’esperienza maturata nel corso delle precedenti
edizioni 2003-2008 del progetto, la formula didattica è quella di una alternanza di formazione breve ed
intensiva, in aula, a periodi di studio in autonomia, facilitando da un lato l’accesso al corso e garantendo
dall’altro i tempi necessari ad un effettivo apprendimento.
____________________________________________________________________________________________
Questo documento è coperto da copyright. E’ vietata la riproduzione totale o parziale senza esplicita autorizzazione
Software utilizzati
Suite di Office Automation MsOffice™, RDBMS MsAccess™ (www.microsoft.com), linguaggi di
programmazione JAVA™ (http://java.sun.com), e VBA™ (www.microsoft.com), ambiente di sviluppo JBlue™
(www.jblue.org) per JAVA, GIS ArcGIS 9™ ( www.esri.com).
A chi è indirizzato
Il corso è indirizzato a laureati e laureandi, funzionari, responsabili e dirigenti di enti pubblici e di società
private, specialisti nello sviluppo di applicazioni di gestione, analisi e modellazione di dati spaziali, il corso
coinvolge i domini professionali più disparati, tra i quali quello urbanistico/architettonico, della pianificazione
territoriale e geologico/ambientale sono solo alcuni degli esempi più rilevanti.
E’ richiesta una conoscenza consolidata dell’ambiente PC/MsOffice, una conoscenza di base delle
problematiche GIS e dei prodotti GIS della famiglia ESRI ArcView 3.x e/o ArcGIS 8.x/9, ed uno spiccato
interesse personale per lo sviluppo di applicazioni; non è richiesta alcuna conoscenza pregressa di
programmazione, pur essendo utili esperienze pregresse anche con linguaggi procedurali tradizionali.
Sede e date
Il corso si terrà presso il Centro Didattico Ambientale Casa Archilei , ubicato in pieno centro di Fano (PU) ed
agevolmente raggiungibile dalle maggiori vie di comunicazione. Il corso avrà la durata di 48 ore, con lezioni
di 8 ore, nei giorni 17-18 aprile, 15-16 maggio e 12-13 giugno 2009.
Iscrizione e modalità di pagamento
La quota di partecipazione al corso, da versarsi in una unica soluzione al momento dell’iscrizione, è fissata
in 1300 € + IVA o in 1200 € + IVA per chi intenda utilizzare il proprio computer portatile. Ulteriori riduzioni
sono previste come da tabella a seguire:
Riduzioni da applicarsi
Iscrizione entro il 15/3/2009
Partecipanti a precedenti corsi promossi da www.GIScience.it
Studenti iscritti regolarmente a corsi universitari, post-universitari e dottorati di ricerca in
Italia e all’estero
Istituzioni accademiche, società, studi associati ed amministrazioni pubbliche, che
iscrivano più di una persona
5%
10%
I
moduli
di
iscrizione
sono
scaricabili
in
formato
PDF
all’indirizzo
http://www.giscience.it/it/corsi/vbarcobjects/vbarcobjects.html o direttamente richiesti via Email all'indirizzo
[email protected]
____________________________________________________________________________________________
Questo documento è coperto da copyright. E’ vietata la riproduzione totale o parziale senza esplicita autorizzazione
Attestato di frequenza
Al termine del corso verrà rilasciato un Attestato di Frequenza per ciascun partecipante che avrà
frequentato almeno il 70% delle lezioni.
Per i geologi: sono state attivate le procedure per il riconoscimento di crediti A.P.C.
Materiale didattico
Ai partecipanti al corso verrà fornita, su supporto ottico, documentazione relativa agli argomenti trattati e
codice sorgente degli esempi analizzati e sviluppati in JAVA, VBA e VBA/ArcObjects. Il corso adotta il
seguente testo, incluso nella quota di iscrizione:
Burke R., 2003. Getting to know ArcObjects – ProgrammingArcGIS with VBA. ESRI Press, Redlands,
California (include CDROM con la raccolta completa dei modelli di ArcObjects, dati e risultati degli
esercizi)
La letteratura e le risorse Web su ingegneria software, programmazione in VBA e JAVA, progettazione e
programmazione di applicazioni geografiche, sono molto ampie. Qui di seguito si riportano alcuni testi
raccomandati:
Bradley J.C. e Millspaugh A.C., 1998. Visual Basic: guida alla programmazione. McGraw-Hill Libri
Italia Srl
rd
Walnum C., 1999. The complete idiot’s guide to Visual Basic 6. Ed. Alpha Books, 201 West 103
St., Indianapolis, USA (include CDROM Visual Basic 6 Working Model edition)
Kang-Tsun C.,2005. Programming ArcObjects with VBA. Ed. CRC Press LLC, Boca Raton, Florida,
USA
Barnes D.J. e l Kölling M., 2008. Objects First with Java - A Practical Introduction using BlueJ. Ed.
Prentice Hall / Pearson Education.
Wood J., 2002. JAVA programming for spatial sciences. Taylor & Francis, London, UK
Nell’ambito del corso verranno discusse le applicazioni didattiche originali sviluppate nell’ambito dell’ultima
edizione del progetto ed attualmente oggetto di revisione nell’ambito della stesura di un testo dedicato a
VBA/ArcObjects, con contributi specialistici afferenti alle scienze geologiche ed ambientali, alla
pianificazione territoriale ed urbana, ed all’analisi sociale (regionalizzazione, indice di autocorrelazione
spaziale di Moran, visualizzazione avanzata di dati spaziali in condizioni 3D e tempo dipendenti, interfacce
utente).
I partecipanti possono accedere ad una copia dimostrativa di ArcGIS acquistando il testo:
Ormsby T., Napoleon E., Burke R., Groessl C. e Feaster L., 2001. Getting to know ArcGIS desktop:
basics of ArcView, ArcEditor and ArcInfo. ESRI Press (include CDROM con una copia trial a tempo
valida per 180 giorni di ArcGIS)
Informazioni
Per informazioni dettagliate sul programma del corso e sulla docenza, rivolgersi al Presidente
dell'Associazione, all'indirizzo Email [email protected] o fare riferimento alla sezione contatti del sito Web
www.giscience.it
____________________________________________________________________________________________
Questo documento è coperto da copyright. E’ vietata la riproduzione totale o parziale senza esplicita autorizzazione