Progettazione e sviluppo di applicazioni software GIS

Pagina creata da Christian Borrelli
 
CONTINUA A LEGGERE
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
    e dinamici (dimensionamento, inizializzazione, accesso),                  ' Function: SearchLayer
                                                                              ' 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
    Metodi di programmazione: controllo del flusso e delle iterazioni,        Function SearchLayer(layerName As String, _
                                                                               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
    Gestione degli eventi. Gestione degli errori.                               Dim pEnumLayer As IEnumLayer
                                                                                Dim pLayer As ILayer
    Elementi fondamentali dell’ambiente di sviluppo VBA (Visual
    Basic for Application) di ArcGIS 9: accesso all’ambiente,                   Set pMxDoc = ThisDocument
                                                                                Set pMap = pMxDoc.FocusMap
    strumenti e controlli di base, scrittura di codice, compilazione e
    debugging.                                                                  If pID Is Nothing Then
    Proprietà degli oggetti fondamentali in VBA e metodi correlati:               Set pEnumLayer = pMap.Layers
                                                                                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
    sistema di coordinate, gestione del colore, metodi grafici,                   ' Searched layer found ...
                                                                                  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
    Sviluppo      di      applicazioni     di    esempio,      funzionali         End If
                                                                                  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                                                                                           5%
Partecipanti a precedenti corsi promossi da www.GIScience.it                                                            10%
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

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
info@giscience.it

        ____________________________________________________________________________________________
        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 info@giscience.it 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
Puoi anche leggere