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