Sei sulla pagina 1di 41

UNIVERSITÀ

DEGLI STUDI DI TRIESTE

Facoltà di Ingegneria
Corso di laurea in Ingegneria Informatica

TESI DI LAUREA

PROGETTAZIONE E REALIZZAZIONE DI UNA


APPLICAZIONE PER LA GESTIONE DEI
REGISTRI DELLE SCUOLE SUPERIORI

RELATORE
Prof. Maurizio FERMEGLIA

Candidato
Erni DURDEVIC

ANNO ACCADEMICO 2008/2009


Erni Durdevic

Indice
Progettazione e realizzazione di un’applicazione per la gestione dei registri delle
scuole superiori ............................................................................................................... 3

1 Introduzione ................................................................................................................. 3

2 Analisi .......................................................................................................................... 4

2.1 Analisi della domanda ........................................................................................... 4

2.2 Analisi dei requisiti ............................................................................................... 4


Espansione prevista fino al 2013 ........................................................................................................... 7
Fantascienza ........................................................................................................................................... 9

3 Progettazione .............................................................................................................. 11

3.1 Progettazione del DataBase .................................................................................. 11

3.2 Progettazione sistema informativo ...................................................................... 17


3.2.1 Sviluppo processi decisionali dell’utente ................................................................................... 17
3.2.2 Progettazione del sistema informativo ...................................................................................... 18
3.2.3 Progettazione dell’autenticazione degli utenti .......................................................................... 19

4 Tecnologie .................................................................................................................. 20

4.1 Dati: ..................................................................................................................... 20

4.2 Sistema informativo ............................................................................................ 20

4.3 Interfaccia ........................................................................................................... 20

5 Realizzazione.............................................................................................................. 22

5.1 Realizzazione DataBase e accesso ai dati ............................................................ 22

5.2 Realizzazione interfaccia e codice ....................................................................... 24


5.2.1 Registrazione degli utenti ............................................................................................................ 25
5.2.2 Creazione di una nuova scuola (“SetUp”) .................................................................................. 27
5.2.3 Configurazione da parte degli amministratori scolastici ..........................................................28
5.2.4 Inserimento valutazioni – per gli insegnanti .............................................................................30
5.2.5 Visualizza valutazioni – per gli insegnanti ................................................................................ 32
5.2.6 Visualizza valutazioni – per i genitori ........................................................................................ 34

1
Erni Durdevic

5.3 Implementazione del codice ............................................................................... 35


5.3.1 Implementazione della navigazione ........................................................................................... 35
5.3.2 Implementazione delle interrogazioni ....................................................................................... 36
5.3.3 Implementazione delle memorizzazioni ....................................................................................38

Conclusioni ................................................................................................................... 40

2
Erni Durdevic

Progettazione e realizzazione di un’applicazione per la


gestione dei registri delle scuole superiori
Relazione per la tesi Triennale in Ingegneria informatica

1 Introduzione
Il lavoro svolto consiste nella progettazione e realizzazione di un’applicazione web che gestisca i
registri elettronici delle scuole superiori. Si vuole offrire un servizio on-line per la comunicazione di
valutazioni, assenze e annotazioni da parte delle scuole ai genitori degli studenti.

Si vuole realizzare un sito internet che offra la gestione dei dati delle scuole e dei relativi utenti. Il sito
dovrà offrire agli amministratori scolastici la possibilità di configurare tutti i dati e gli utenti della
scuola in modo da rendere il tutto utilizzabile dagli insegnanti, alunni e genitori. Gli insegnanti
potranno inserire e annullare le valutazioni degli studenti a cui insegnano. I genitori come i figli
potranno visualizzare tali valutazioni con tutti i dettagli forniti dagli insegnanti, compresi eventuali
motivi di annullamento.

L’intento di questo progetto è venire incontro alla crescente domanda di un’ interfaccia tra la scuola e i
genitori. Recenti comunicazioni stampa da parte dei ministri dell’istruzione e della pubblica
amministrazione hanno dichiarato che tutte le scuole italiane dovranno essere dotate di tale servizio in
breve tempo. Un accurato studio della situazione è stato fatto dal sottoscritto per la stesura di un
business plan per la partecipazione al concorso StartCup 2009 (http://tinyurl.com/ykzply2). Nel
Business Plan si evidenzia la dimensione del mercato (65 500 scuole sprovviste del servizio), la bassa
concorrenza e l’alto costo di tali software, da 800 € a 3000 €.

L’idea del progetto nasce a gennaio 2009. Da allora è stata sviluppata in diversi campi:

 Business Plan per una azienda che sviluppi questo progetto presentato a StartCup. Comprende:
Analisi del mercato e dell’ambiente competitivo

Strategia di marketing

 Assetto organizzativo
 Timing e Financial Planning
 Analisi e progettazione di un prototipo del sistema informativo (Esame di sistemi informativi 1)
 Analisi, progettazione e realizzazione della Base Dati in MS Access (Esame di Basi di Dati)

Non tutti gli elementi sono stati usati per questo progetto, in quanto sono stati sviluppati
indipendentemente e i requisiti sono cambiati nell’approfondimento delle analisi nei diversi campi. In
particolare, è stato necessario sviluppare i seguenti passi:

 Studio, analisi e progettazione dei principali processi di configurazione delle scuole.


 Evoluzione del progetto del sistema informativo per il cambiamento di alcuni requisiti in seguito
al Business Plan
 Evoluzione del progetto del DataBase per soddisfare i nuovi requisiti e per l’interfacciamento con
MS SQL Server Membership Provider
 Realizzazione del nuovo DataBase con MS SQL Server
 Realizzazione delle parti principali del sistema informativo
 Test di usabilità e intuitività dell’interfaccia, nonché della logica di configurazione
 Debug e test dell’applicazione

3
Erni Durdevic

2 Analisi
2.1 Analisi della domanda
In ambiente scolastico c’è un forte interesse nel avere uno strumento che possa semplificare e
accelerare il bisogno di comunicazione tra la scuola e i genitori. Il livello di informatizzazione delle
scuole e degli insegnanti però non permette ancora di passare a un sistema completamente
informatizzato. Non si sta quindi cercando di sostituire il registro cartaceo, ma soltanto di avvicinare i
genitori sempre più impegnati alle scuole con un sistema di registro digitale di “appoggio”.

La domanda è quindi orientata a un sistema:

 Versatile – accessibile con una semplice connessione a internet, senza software aggiuntivo
 Semplice – Adatto anche agli utenti meno esperti
 Essenziale – Deve fornire solo le funzioni essenziali ed essere di appoggio al registro cartaceo
 Economico – Il budget delle scuole lascia sempre più a desiderare

Il trend della domanda sta evolvendo lentamente verso un sistema completamente digitale sempre più
complesso e ricco di servizi. L’intenzione del progetto è di sviluppare un sistema informativo modulare
che soddisfi la domanda adesso ed evolva con essa espandendo i servizi.

2.2 Analisi dei requisiti


Il sistema informativo deve permettere la comunicazione dei voti, delle annotazioni e delle assenze ai
genitori degli studenti per via telematica.

Si necessita di una parte pubblica del sistema informativo che esponga tutte le informazioni pubbliche
e di una parte privata per l’utilizzo del sistema da parte degli utenti registrati.

Parte pubblica
Per accedere alla parte pubblica non c’è bisogno di autenticazione da parte dell’utente. Questa parte
offre dati utili a scopo informativo sul servizio offerto e sulle scuole aderenti al nostro servizio. Sarà
anche possibile accedere al negozio on-line, il quale offrirà una fonte di ulteriore guadagno. Si prevede
di inserire delle campagne pubblicitarie nei sistemi informativi delle scuole che usufruiranno del
servizio gratuitamente.

Si vuole comunicare ai visitatori tutta l’offerta didattica della loro zona, per facilitare la scelta della
scuola per i ragazzi, pubblicando i dati resi pubblici dagli amministratori.

4
Erni Durdevic

Sistema informativo
parte pubblica
Interrogazioni di
selezione scuola
Pagina pubblica
della scuola

Elenco indirizzi di
studio
Elenco delle scuole Dettaglio della
coperte dal servizio scuola
Elenco professori
con curriculum
Statistiche
Negozio online
pubbliche della
(esterno a contratto)
scuola

Utente generico
Panoramica dei
servizi offferti

Parte privata
Alla parte privata si accede tramite autenticazione dell’utente poiché essa contiene dati personali
(anche sensibili) degli utenti. Attraverso l’autenticazione il sistema deve riconoscere il ruolo dell’utente
nel sistema e offrirgli le operazioni possibili.

5
Erni Durdevic

Sistema informativo
parte privata

Gestione
Gestione Bacheca
Statistiche

Gestione pagina di
Gestione Utenti
presentazione

Configurazione
Gestione Classi
della scuola

Setup rapido Gestione Materie

Gestione
Insegnamenti

Amministratore scolastico Annulla Gestione dati


valutazione personali

Inserimento
valutazioni

Inserimento Giustificazione Genitore


annotazioni assenze

Insermento
assenze

Dettaglio
valutazione

Visualizzazione
Insegnante assenze

Visualizzazione
valutazioni

Visualizzazione
annotazioni
Modifica Studente
curriculum
Visualizzazione
Bacheca

................. Implementato

................. Non implementato

6
Erni Durdevic

Espansione prevista fino al 2013


Dopo aver soddisfatto la domanda iniziale con un sistema informativo essenziale si vuole completare
l’offerta con servizio completo.

Servizi esterni
Questo modulo viene incontro alle esigenze degli utenti, ma non completa il registro elettronico come
vera alternativa al cartaceo.

Micro hosting per file


degli studenti e
professori

Web e-mail Biblioteca virtuale

Mercatino libri
Eserciziari on-line
usati

Utente autenticato

Servizi interni
Questo modulo completerebbe l’offerta del registro elettronico in quanto il sistema sarebbe in grado di
gestire le lezioni, gli eventi (compiti in classe, interrogazioni, compiti per casa, etc.), il programma
delle materie, i capitoli di tale programma e le attrezzature necessarie allo svolgimento delle lezioni.

7
Erni Durdevic

Moduli aggiuntivi al sistema informativo - parte privata


Alternativa al cartaceo

Gestione sedi Gestione delle Gestione


scolastiche aule dell’attrezzatura

Gestione
abilitazioni degli
insegnanti

Gestione del
programma delle
materie
Gestione dei Gestione dell’
Amministratore scolastico
capitoli del attrezzatura necessaria
programma al capitolo
Gestione del
programma delle
materie abilitate

Visualizzazione
eventi
Gestione degli
eventi abilitati
Genitore
Dettaglio eventi

Visualizza lezioni
svolte
Gestione delle
lezioni e
Insegnante svolgimento
Visualizza statistiche e grafici
di profitto scolastico
(solo versione a pagamento)
Studente

8
Erni Durdevic

Fantascienza
La proposta consiste nel assegnare dei “punti” di merito agli studenti meritevoli, offrendo loro la
possibilità di usarli per acquistare a prezzi scontati dal negozio online oppure di usarli per avere la
possibilità di nascondere ai genitori un voto per qualche giorno.

Lo scopo è di premiare i buoni risultati scolastici degli studenti con buoni acquisto o con Jolly. Con
una buona valutazione a ogni studente verranno accreditati dei punti. Gli studenti potranno scegliere
se cambiare i punti con buoni acquisto o Jolly. I buoni acquisto potranno essere usati per acquisti nel
negozio on-line a contratto. I Jolly potranno essere applicati a valutazioni per renderle invisibili ai
genitori per alcuni giorni, ma solo se i genitori forniscono esplicitamente il consenso.

Definizione della logica del sistema:

Voto nascosto per


qualche giorno

Regala

Si Trasformano in Jolly
(se il genitore permette)
Assegna
(con le valutazioni)
Usa Genitore
Punti

Usa
Insegnante Si Trasformano in Buoni acquisto

Regali dal negozio


on-line Studente

Questa logica viene incontro alla parte di utenza che giudica questo tipo di servizio troppo invasivo per
la privacy degli studenti. Infatti ogni genitore potrà adottare la politica di privacy che desidera con i
propri figli, decidendo se consentire l’utilizzo dei Jolly e determinando il prezzo in punti degli stessi.
Contemporaneamente si stimola la capacità decisionale e di valutazione degli studenti.

Vantaggi per il sistema informativo:

 Maggiore coinvolgimento degli utenti


 Stimolo a usufruire del negozio on-line
 Fattore pubblicitario rispetto alla concorrenza

Di conseguenza è previsto il seguente modulo di espansione dei servizi del sistema informativo:

9
Erni Durdevic

Sistema informativo
Espansione parte privata

Abilitare/Disabilitare
Regalare Jolly
Jolly

Abilitare/Disabilitare
Punti

Acquistare il Software per


Amministratore scolastico disabilitare la pubblicità per
tutti gli utenti Abilitare/Disabilitare
Buoni acquisto
Genitore
Abilitare/Disabilitare
Pubblicità
(a pagamento)

Assegnare punti Usare Jolly


(con le valutazioni) =
Nascondere una valutazione

Comprare Jolly
con i punti

Insegnante Comprare Buoni Studente


acquisto con i punti

10 
Erni Durdevic

3 Progettazione
3.1 Progettazione del DataBase
La progettazione del database è avvenuta con tecnica mista, partendo da uno schema scheletro,
raffinando le varie parti fino a ottenere lo schema completo.

Schema scheletro:

Scuole Associazione Classi Appartenenza Studenti

Dipendenza

Dipendenti

Annotazione

Insegnanti Insegnamento
Amministratori

Valutazione

residenza
Materia

Sede Appartenenza Aule Svolgimento Lezione

Assenza

È tuttavia necessario tenere conto delle seguenti generalizzazioni:

Utenti

Dipendenti
Genitori Studenti

Amministratori Insegnanti

Raffinando tutti gli elementi dello schema scheletro si ottiene il seguente schema complessivo:

11 
Erni Durdevic

Sede
Genitori

Proposta Indirizzi di studio


residenza

Tutorato

Scuole ClasseScuola

Classi ClasseStudenti Studenti

Anni di corso
Dipendenza

Dipendenti
Evento

Annotazione

Insegnanti Insegnamento
Amministratori
Nota

Abilitazione Materia Valutazione Tipo

Appartenenza3 Studio

Aule Svolgimento Lezione

Associazione
Assenza

Possesso
Programma Composizione Capitolo
Giustificazione

Atrezzatura Richiesta

Gli elementi colorati sono i componenti scelti per la realizzazione del progetto, mentre gli elementi
bianchi sono quelli previsti per il funzionamento a regime del sistema informativo. Verranno dunque
implementati in un secondo momento nei moduli aggiuntivi.

Dopo l’analisi delle entità, relazioni e cardinalità si è giunto allo schema seguente:

12 
Erni Durdevic

Indirizzo

IDSede Indirizzo

Nome ID
Sede
CodiceFiscale
Nome
Cognome Genitori
(0,N)
DataDinascita

(1,1) Contatti (1,N)


Proposta Indirizzi di studio
residenza
Contatti
Nome
Contatti Descrizione
Tutorato ID
(1,N) (0,N) (0,N) IDIndirizzo CodiceFiscale
Nome Nome
IDScuola Descrizione
(1,1) Cognome
IDClasse
Nome Scuole ClasseScuola (1,N) DataDinascita
(0,N)
Indirizzo
Indirizzo (1,N) (1,1) (0,N)
(1,N) (0,N) (0,N) Classi ClasseStudenti Studenti

Anni di corso (0,N) (1,N)


(0,N) (0,N)
Dipendenza
Indirizzo NumeroAnnualita
ID (1,N)
CodiceFiscale
(1,1)
Nome Dipendenti (0,N)
Cognome Evento
DataDinascita

Contatti (0,N)

(1,N) (0,1)
Annotazione
(0,N)
Insegnanti Insegnamento
(0,N) (1,N)
Amministratori
(1,N) (1,N) Nota
(0,N)

(0,N) Abilitazione Materia Valutazione Tipo


(1,1)
(0,N)
Nome Titolo Nome
Voto Descrizione
Appartenenza3 Studio Descrizione
(1,N) IDMateria IDNota
Dettagli

(1,N) (0,N)
(1,1)
(1,N)
(1,1)
Aule Svolgimento Lezione
(0,N) (0,N) Giustificata

Nome
Descrizione Associazione (0,N)
Piano IDCapitolo Assenza
Settore Nome (0,N)
(0,N) IDAule NumeroOrdine Descrizione Titolo
(1,N) Descrizione
DataOra
(1,N) (1,N) (1,N)
Possesso (0,N) NumeroLezione
Programma Composizione Capitolo IDLezione

Giustificazione
(0,N)
(0,N) (0,N)
Nome
Descrizione IDGiustificazione
IDProgramma Titolo
Descrizione
Atrezzatura Richiesta DataOra
Approvazione

Nome (0,N) IDvalutazione


Descrizione Data valutazione
IDAttrezzatura Data di riferimento
Descrizione
Stato TelefonoFisso Dettagli IP valutazione
Citta Telefonino
Indirizzo Contatti Annullato?
Via E-mail Motivo annullamento
Numero Web IP annullamento
CAP Data annullamento

Sviluppando ulteriormente la parte interessata (parte colorata) si è ritenuto procedere come segue:

 Isolare la parte interessata per poter procedere alla realizzazione

13 
Erni Durdevic

 Accorpare la generalizzazione (utente->studenti, genitori, dipendenti) in una unica entità


“Utenti” poiché non contengono differenze a livello di attributi e poiché l’appartenenza di un
utente a uno dei sottoinsiemi è ricavabile dalle relazioni “Tutorato”, “ClasseStud” e
“Dipendenza”.
 Accorpare la generalizzazione (Dipendenti -> Insegnanti, Amministratori) nell’ unica entità
“Utenti” introducendo l’attributo di tipo booleano “Amministratore” che identifica gli
amministratori.
 Separare l’attributo composto “Contatti” dalle entità facendolo diventare un’entità a sè stante. Le
motivazioni sono sia di tipo prestazionale che di univocità dei dati.
 Separare l’attributo composto “Indirizzi” dalle entità facendolo diventare un’entità a sè stante. Le
motivazioni sono sia di tipo prestazionale che di univocità dei dati (es. Una famiglia intera con lo
stesso indirizzo).
 Collegare l’entità “Utenti” con gli utenti del SQL Server Membership Provider per avere una
corrispondenza tra gli utenti del sistema informativo (Nome e Cognome) con gli utenti del
Membership Provider (Username e Password).

Si è giunti allo schema E-R seguente:

14 
Erni Durdevic

SQL Server
Indirizzo Contatti Membership Provider
IDindirizzo IDcontatto

Indirizzo Contatti (0,1)

(1,N) (1,N)
Corrispondenza IDutente
(0,1) (0,1) CodiceFiscale
Indirizzo Contatto DataDinascita
Nome
Cognome
(0,1)
(1,1) (1,N) (0,N)

Utenti (0,N)
Tutorato

Nome
(1,1) Descrizione
Indirizzo di IDIndirizzo
Propone
studio
(0,1)
(1,N)
(1,N)
Nome
IDScuola Descrizione
(1,N) (1,1) IDClasse
Nome Scuole Appartenenza1 Anno
Descrizione
(1,N)
(1,N) Classi ClasseStud
NumeroAnnualita
(0,N)
Dipendenza (0,N)
(1,N)
Amministratore
(0,N) (0,N)
(0,N)
Insegnamento

(0,N)

(1,1)
(0,N)
ScuolaMateria Materia Valutazione

Voto
Nome
Descrizione Dettagli
IDmateria

È stato considerato opportuno aggiungere anche una tabella “Master” composta da una sola riga
contenente i dati statici riguardanti il sistema, quali versione del software e anno corrente (scolastico).

15 
Erni Durdevic

Procedendo con la progettazione logica si è giunti al seguente schema logico:

TblDipendenza TblScuole TblContatti


IDutente IDscuola IDcontatto

IDscuola Nome TelFisso

Admin Tipo TelLavoro

Contatti Telefonino

Indirizzo Telefonino2

[Pagante?] Fax
TblUtenti
Email
IDutente
Email2
Nome
TblClasseScuola Skype
Cognome IDscuola
MSN
IDcontatti IDclasse

IDindirizzi IDindirizzo
TblIndirizzi
IDmembershipProvider
IDindirizzo
ChiaveInvito
Citta
DataDiNascita
TblClasse Stato
CodiceFiscale IDclasse
Provincia
[Maschio?] Nome
CAP
[Pagante?] Descrizione
Via
[AcconsenteMarketing?] Anno
Numero

TblMateria
IDmateria
TblClasseStud
IDstudente IDscuola

IDclasse Nome

Anno Descrizione
TblIndirizziDiStudio TblValutazione
IDvalutazione
IDindirizzoDiStudio
IDstudente
IDscuola
IDprofessore
Nome
IDmateria
Descrizione
TblInsegnamento
Voto DecodAnno
IDprofessore
Anno
DataInserimento IDclasse
Stringa
DataVoto IDmateria

Descrizione

Annullato

MotivoAnnullamento
Master
DataAnnullamento AnnoCorrente

IDutenteAnnullamento VersioneSW

TblTutorato IPvalutaz

IDgenitore IPannullamento

IDstudente TipoValutazione

Si può notare che la relazione tra l’utente del sistema e l’utente del Membership Provider viene gestita
a livello di applicazione, in quanto sono due database distinti e non è possibile creare direttamente
un’entità referenziale. L’attributo IDmembershipProvider nella tabella Utente è dunque una chiave
esterna che punta alla chiave primaria del utente del Membership Provider.

16 
Erni Durdevic

3.2 Progettazione sistema informativo


3.2.1 Sviluppo processi decisionali dell’utente
È stata studiata la logica di approccio al sistema informativo. Si è cercato di differenziare gli utenti
anonimi che accedono per consultare i dati pubblici, utenti registrati e utenti nuovi.

La panoramica dei servizi consiste nel esporre agli utenti le finalità del servizio e le 3 azioni principali
previste: Consultazione dati pubblici delle scuole, login e registrazione utente.

Dopo la registrazione di un nuovo utente ci si aspetta che sia un utente di una scuola, oppure che sia
un amministratore scolastico che desidera privare il sistema informativo. Nel primo caso (il più
frequente) viene chiesto il codice di accesso fornito dalla scuola, in caso di codice corretto il sistema
provvede ad associare l’utente appena registrato (del Membership Provider) con l’utente fisico del
nostro sistema informativo. Nel secondo caso viene avviata una procedura di configurazione di una
nuova scuola.

Consultazione Area amministratori


delle scuole
disponibili
Creazione dei nuovi
Creazione di una Configurazione
utenti con codici di
nuova scuola della nuova scuola
accesso
Panoramica dei Registrazione
servizi utente

Accesso con il
codice di accesso

Utente generico

Area privata
Accesso all’area
Login utente
privata

Un altro dei processi analizzati è la procedura di configurazione rapida delle scuole. Per avere coerenza
e integrità dei dati è necessario procedere sequenzialmente nella configurazione, secondo lo schema
seguente:

Creazione indirizzi Associazione Creazione delle


Creazione Classi
di studio classe-indirizzo materie

Associazione Creazione degli Associazione insegnamenti Creazione degli


studente-classe studenti (insegnante-materia-classe) insegnanti

Amministratore scolastico

Associazione di
Creazione degli
tutorato ra stud. e
genitori
gen.

Per velocizzare questo processo sono stati accorpati dei processi, permettendo di automatizzarne
alcuni (frecce gialle) sfruttando la coerenza delle azioni (es. Creare una classe specificando subito un
indirizzo di studio, sia nuovo che esistente).

17 
Erni Durdevic

Pg. Classi e indirizzi Pg. insegnamenti Pg. Studenti

Creazione indirizzi Creazione delle Creazione degli Associazione


di studio materie studenti studente-classe

Associazione di
Associazione Associazione insegnamenti
tutorato ra stud. e
classe-indirizzo (insegnante-materia-classe)
gen.

Amministratore scolastico
Creazione degli Creazione degli
Creazione Classi
insegnanti genitori

Con questo sistema è stata incrementata notevolmente la velocità e la semplicità di configurazione


delle scuole.

3.2.2 Progettazione del sistema informativo


Struttura e Layout

La struttura delle pagine web è composta da

 Testata di presentazione
 Colonna sinistra per la navigazione e il login
 Colonna centrale per il contenuto (stretta per permettere l’espansione di una ulteriore colonna
pubblicitaria)
 Piè di pagina con informazioni di Copyright

Header - Testata Header - Testata

Naviga- Naviga-
Pubbli-
zione e Contenuto zione e Contenuto
cità
login login

Footer Footer

Navigazione

La navigazione è offerta da un menù a albero che espone i collegamenti a tutte le pagine del sistema
informativo con organizzazione gerarchica. La navigazione del sistema informativo è suddivisa in 6
parti logiche:

 Pagine pubbliche – accessibili a tutti i visitatori


 Pagine per gli utenti autenticati – accessibili da tutti gli utenti autenticati di qualsiasi ruolo
 Pagine per gli amministratori scolastici
 Pagine per gli insegnanti
 Pagine per i genitori

18 
Erni Durdevic

 Pagine per gli studenti

Nel menù a albero la parte pubblica è sempre presente, mentre le parti private compaiono soltanto con
l’autenticazione degli utenti. Il menù viene popolato a seconda del ruolo dell’utente nel sistema.

3.2.3 Progettazione dell’autenticazione degli utenti


Si è ritenuto inopportuno creare automaticamente i nomi degli utenti e le password (come avviene
all’università) poiché sono difficili da ricordare e non è una buona idea fornire le password predefinite
poiché sono pochi gli utenti che cambiano la loro password al primo accesso.

Il procedimento ritenuto più adatto consiste nel separare il concetto di utente registrato (login-
Username e password) e utente del sistema (Nome e Cognome con un ruolo in almeno una scuola). In
questo modo ogni utente si deve registrare al servizio con username e password personali. Dopo di
ché deve fornire i propri dati personali e la chiave di accesso fornita dall’amministratore scolastico.

La chiave di accesso serve a confermare l’identità dichiarata del utente.

SQL Server Membership


provider Database del sistema

Utente Utente del


Registrato sistema

Username Nome
Password Cognome
Sicurezza Ruolo

Chiave di accesso

19 
Erni Durdevic

4 Tecnologie
4.1 Dati:
DBMS
Per il DBMS è stato scelto MS SQL Server Express per la semplicità e velocità di configurazione.
Inoltre questo motore implementa tutti i tipi di vincoli di integrità e si interfaccia perfettamente con
MS Visual Web Developer.

Membership
Per la gestione degli utenti, credenziali di accesso e ruoli è stato usato il MS SQL Server Membership
provider. Questo modulo offre un buon standard di sicurezza della base dati, in quanto memorizza
soltanto gli hash code delle password. Inoltre implementa sistemi avanzati di recupero password e
controlli di sicurezza.

Questo modulo implementa diverse funzionalità di gestione della navigazione attraverso la tecnologia
.NET. Risulta semplice quindi

 gestire i permessi e ruoli degli utenti con le Roles


 differenziare il contenuto delle pagine con LoginView
 inserire form di login/logout con Login
 inserire form di registrazione con CreateUserWizard
 inserire form di recupero password con PasswordRecovery

Accesso dati
Per accedere ai dati è stata utilizzata la tecnologia dei Data Set, attraverso gli ObjectDataSource.

Questa tecnologia permette di avere uno strato di accesso ai dati a livello di applicazione per
centralizzare l’accesso ai dati. Il DataSet offre delle “Viste” (TableAdapter) a livello applicazione che
permettono l’accesso ai dati attraverso query presenti nei TableAdapter alle quali è possibile accedere
come a procedure, passando parametri e ottenendo tabelle come risultato.

4.2 Sistema informativo


Tecnologia di sviluppo
ASP .NET 2.0

Linguaggio di programmazione
Visual Basic .NET e frammenti di javascript

IDE
MS Visual Web Developer 2008

4.3 Interfaccia
Layout
Page Template e CSS. Questa tecnologia permette di rendere indipendente il contenuto dalla grafica. Il
Page Template serve a creare la struttura alla quale faranno riferimento tutte le pagine. Per modificare
la struttura basta dunque modificare il Page Template e il cambiamento verrà applicato
automaticamente a tutte le pagine. Lo stesso vale per il foglio di stile CSS.

Navigazione

20 
Erni Durdevic

Site Map e TreeView menu. Il Site Map è un documento xml che definisce la struttura del sito
elencando tutte le pagine con struttura a albero. Anche in questo caso è possibile gestire la struttura in
maniera centralizzata. Il TreeView menu è un componente della tecnologia .NET, esso fa riferimento al
Site Map creando dinamicamente il menu con la struttura definita dal Site Map.

21 
Erni Durdevic

5 Realizzazione
5.1 Realizzazione DataBase e accesso ai dati
La base dati è stata sviluppata dallo schema logico. È stata poi creata la base dati del Membership
Provider attraverso la procedura guidata di MS SQL Server. In terzo luogo sono stati implementati
tutti i vincoli di integrità.

I data set sono stati popolati di Table Adapters man mano che venivano richieste dalla realizzazione
del sistema informativo e dell’interfaccia.

Il database è composto da un file che si trova nella cartella del progetto del sistema informativo. Perciò
la stringa di connessione al database è situata nel file web.config del progetto e non è necessario
ripeterla per gli oggetti che accedono ai dati visto che l’accesso viene effettuato attraverso i DataSet.

Stringa di connessione nel file web.config:

<connectionStrings>
<add
name="DatabaseConnectionString1"
connectionString="Data Source=.\SQLEXPRESS;
AttachDbFilename=|DataDirectory|\Database.mdf;
Integrated Security=True;
User Instance=True"
providerName="System.Data.SqlClient"
/>
</connectionStrings>

Mentre uno dei quattro DataSet, il DataSet “DSscuola.xsd” è strutturato come segue:

22 
Erni Durdevic

Tutte le query del progetto sono associate a TableAdapters dei DataSet. I TableAdapters sono
strutturati in modo da fornire tutte le informazioni necessarie alla visualizzazione, anche se le
informazioni si trovano in più di una tabella.

Ad esempio, per visualizzare tutte le valutazioni dettagliate di uno studente in una determinata
materia viene usata la seguente query:

SELECT TblValutazione.IDstudente, TblValutazione.IDprofessore,


TblValutazione.IDmateria, TblValutazione.Voto,
TblValutazione.DataInserimento, TblValutazione.DataVoto,
TblValutazione.Descrizione, TblValutazione.Annullato,
TblValutazione.MotivoAnnullamento,
TblValutazione.DataAnnullamento,
TblValutazione.IDutenteAnnullamento,
TblValutazione.IPvalutaz, TblValutazione.IPannullamento,
TblValutazione.IDvalutazione,
TblUtenti_1.Nome + N' ' + TblUtenti_1.Cognome AS ProfNomeCogn,
TblUtenti.Nome + N' ' + TblUtenti.Cognome AS StudNomeCognome,
TblMateria.Nome AS MateriaNome,
TblValutazione.TipoValutazione
FROM
TblUtenti INNER JOIN TblValutazione
ON TblUtenti.IDutente = TblValutazione.IDstudente
INNER JOIN TblUtenti AS TblUtenti_1
ON TblValutazione.IDprofessore = TblUtenti_1.IDutente
INNER JOIN TblMateria
ON TblValutazione.IDmateria = TblMateria.IDmateria

WHERE (TblValutazione.IDstudente = @IDstudente)


AND (TblValutazione.IDmateria = @IDmateria);

Oppure per eseguire dei controlli via software prima di inerire una nuova classe in una scuola, bisogna
accertarsi che non esistano altre classi con lo stesso nome in quella scuola. In questo caso la query ha
come risultato il numero di occorrenze di tale criterio.

SELECT COUNT(*) AS Conta


FROM TblClasse INNER JOIN TblClasseScuola
ON TblClasse.IDclasse = TblClasseScuola.IDclasse
WHERE (TblClasseScuola.IDscuola = @IDscuola)
AND (TblClasse.Nome = @NomeClasse)

Un’ altra nota spetta alle query di inserimento, che devono fornire come valore di ritorno il valore
dell’identificatore univoco del record appena inserito invece del numero di righe affette
nell’operazione. Queste query sono composte da due parti, la prima per l’inserimento dei dati e la
seconda per il valore di ritorno.

Queste query non devono essere eseguite in modalità NonQuery, ma in modalità Scalar proprio
perché il valore risultato è uno scalare, anche se l’operazione principale è una INSERT.

Come esempio, la seguente query inserisce una nuova scuola e ritorna il valore del campo IDscuola del
record appena inserito.

INSERT INTO TblScuole


(Nome, Tipo, Contatti, Indirizzo, [Pagante?],
BreveDescrizione, Descrizione)

23 
Erni Durdevic

VALUES (@Nome,@Tipo,@Contatti,@Indirizzo,@Pagante,
@BreveDescrizione, @Descrizione);

SELECT SCOPE_IDENTITY();

5.2 Realizzazione interfaccia e codice


Lo scheletro dell’interfaccia è stato realizzato nelle pagine Template con linguaggio XHTML. Esso è
composto da elementi DIV che costituiscono la struttura principale. Gli elementi DIV hanno un
contenuto statico per quanto riguarda la testata e la coda della pagina, il contenuto della parte centrale
invece varia con la navigazione. L’aspetto grafico è definito dal foglio di stile esterno con linguaggio
CSS. Per il design si è fatto riferimento a http://www.freecsstemplates.org/preview/essence.

24 
Erni Durdevic

5.2.1 Registrazione degli utenti


Nella fase di progettazione è stato deciso di usare la tecnologia fornita dal MS Membership Provider
per gestire la registrazione degli utenti per due motivi: L’ indipendenza dell’utente registrato rispetto
all’utente fisico del sistema informativo e la sicurezza e affidabilità di alto livello a un costo di
implementazione molto basso. Nel Membership Provider sono infatti implementati gli algoritmi di
hash delle password nel database, il reset delle password attraverso domande e risposte di sicurezza, il
controllo della robustezza delle password in fase di creazione, etc.

È stato creato un form per l’inserimento dei dati degli utenti con i relativi controlli di validità. Infatti
tutti i campi sono obbligatori e l’e-mail deve essere in un formato valido. Per effettuare tali controlli
sono stati usati i controlli .NET RequiredfieldValidator e RegularExpressionValidator.

Esempio di RequiredFieldValidator:

<asp:RequiredFieldValidator
ID="UserNameRequired" runat="server"
ControlToValidate="UserName"
ErrorMessage="Il nome utente è obbligatorio."
ToolTip="Inserire il nome utente desiderato."
ValidationGroup="CreateUserWizard1">
*
</asp:RequiredFieldValidator>

Esempio di RegularExpressionValidator:

<asp:RegularExpressionValidator
ID="ValidazioneMail" runat="server"
ControlToValidate="Email"
ErrorMessage="E-mail non valida."
ValidationExpression= "\w+([-+.']\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*">
</asp:RegularExpressionValidator>

Per controllare che l’utente abbia accettato i termini della licenza è stato necessario eseguire il
controllo a lato client da un codice JavaScript, il cui risultato viene interpretato a lato server per
evitare la creazione del utente in caso la licenza non sia stata accettata.

L’azione di click sul pulsante “Crea Utente” fa scattare la procedura di creazione del utente del
membership provider. Questa procedura è provvista di tutti i controlli di sicurezza, tra i quali
robustezza minima della password, confronto tra password e conferma password, non duplicazione del
nome utente scelto.

25 
Erni Durdevic

Segue il form visualizzato dall’utente per la registrazione:

Appena effettuata la registrazione viene chiesto di inserire i dati personali e la chiave di accesso in
modo da poter “agganciare” le credenziali di accesso all’utente relativo del sistema.

26 
Erni Durdevic

5.2.2 Creazione di una nuova scuola (“SetUp”)


Per poter creare una nuova istanza di una scuola bisogna essere registrati al portale ed essersi
autenticati. Dopo di che si può proseguire con la creazione della scuola.

Per tale operazione è necessario compilare il seguente form:

Anche in questo caso un primo controllo dei dati viene fatto dall’interfaccia, infatti il pulsante “Crea la
scuola” non è abilitato finchè non sono soddisfatti tutti i vincoli di correttezza sintattica.

27 
Erni Durdevic

5.2.3 Configurazione da parte degli amministratori scolastici


È stata implementata la procedura di configurazione rapida seguendo le linee guida della
progettazione. La procedura di configurazione consiste in tre passi:

1. Creare le classi
2. Configurare Materie e Professori
3. Inserire gli Studenti e Genitori

Per creare le classi è necessario specificare l’annualità e l’indirizzo di studio corrispondente. È possibile
scegliere tra gli indirizzi creati in precedenza o crearne uno nuovo. Viene visualizzata la lista delle
classi create in precedenza per permettere all’amministratore di controllare la correttezza dei dati
appena inseriti.

28 
Erni Durdevic

Per configurare le materie e i professori viene ripresa la logica precedente, se un insegnante o un


insegnamento esiste già c’è la possibilità di selezionarlo, altrimenti se ne può creare uno nuovo “al
volo”. In questo caso è necessario selezionare anche la classe a cui applicare gli insegnamenti.

29 
Erni Durdevic

Anche per l’inserimento degli alunni è stata semplificata la procedura di inserimento. Si inseriscono
contemporaneamente gli studenti e i genitori assegnandoli automaticamente alla classe selezionata.

Questa schermata permette di visualizzare gli studenti con relativi genitori e le chiavi di invito. Le
chiavi di invito devono essere fornite alle persone corrispondenti.

5.2.4 Inserimento valutazioni – per gli insegnanti


È stato sviluppato un sistema completo di valutazione. Esso consente di inserire le valutazioni con tutti
i dettagli in una singola schermata. La schermata comprende:

 Parametri di selezione generale, come scuola, classe e materia della valutazione


 Dati della valutazione: Studente interessato, voto, data, motivazione e tipo.
 Lista dei voti dello studente selezionato per la materia selezionata

Selezionando la classe, la lista delle materie insegnate dall’insegnante autenticato a quella classe si
aggiorna automaticamente. Contemporaneamente viene aggiornata anche la lista degli studenti
appartenenti a quella classe. Selezionando anche lo studente viene popolata la tabella contenente tutte
le valutazioni dello studente nella materia selezionata.

La data della valutazione è la data a cui si riferisce la valutazione. Verrà salvata sia la data di
riferimento che quella in cui la valutazione è stata inserita.

30 
Erni Durdevic

31 
Erni Durdevic

5.2.5 Visualizza valutazioni – per gli insegnanti


Gli insegnanti possono visualizzare tutte le valutazioni degli studenti a cui insegnano. È stata creata
una pagina in cui vengono visualizzate tutte le valutazioni di tutti gli alunni di una classe per una
determinata materia. L’insegnante deve selezionare la classe e la materia (soltanto tra quelle da lui
insegnate a quella classe) affinché il sistema popoli le tabelle con le valutazioni.

Le valutazioni con sfondo grigio sono state annullate.

Cliccando sul collegamento “Dettagli” vengono visualizzati tutti i dati relativi alla valutazione e viene
offerta la possibilità di annullare la valutazione se essa non è già stata annullata.

32 
Erni Durdevic

33 
Erni Durdevic

5.2.6 Visualizza valutazioni – per i genitori


In questo caso ogni genitore deve selezionare lo studente del quale visualizzare le valutazioni tra quelli
di cui è tutore. In questo caso le valutazioni sono divise per materia e la sezione “Dettagli” non offre la
possibilità di annullare le valutazioni.

34 
Erni Durdevic

5.3 Implementazione del codice


Il codice è organizzato nella tipica struttura a eventi di VisualBasic. Il codice che gestisce la
visualizzazione dei dati si trova negli eventi “OnLoad” e “OnLoadComplete” della pagina, oppure negli
eventi “OnChange” dei controlli come ListBox e DropDownList.

Il codice che gestisce gli eventi di memorizzazione viene eseguito con l’evento “OnClick” dei pulsanti.

5.3.1 Implementazione della navigazione


La struttura a albero del sito è descritta nel file xml “web.sitemap”. Nelle pagine Template del sito è
stato inserito il controllo .NET “TreeView”. Questo controllo fa riferimento al file “web.sitemap” per
creare il menu con struttura ad albero che permette la navigazione.

Questo tipo di implementazione ha consentito la completa centralizzazione della struttura del sito e
della gestione di navigazione. Tutte le pagine infatti fanno riferimento alla stessa pagina Template e
dunque hanno lo stesso menu per la navigazione.

Esempio del file web.sitemap:

<siteMapNode url="Default.aspx" title="IT-scuola.eu"


description="Il portale della scuola innnovativa">
<!--Livello radice-->
<siteMapNode url="PartePubblica.aspx" title="Parte pubblica">
<siteMapNode url="LeScuole.aspx" title="Le scuole"/>
<siteMapNode url="~/Utenti/GestioneAccount.aspx"
title="Area utenti">
<siteMapNode url="~/Utenti/DatiPersonali.aspx"
title="Dati personali"/>
<siteMapNode url="~/Utenti/CreaScuola.aspx"
title="Crea una scuola"/>
</siteMapNode>
</siteMapNode>
</siteMapNode>

Per gestire i permessi di accesso alle diverse sezioni del sito è stato implementato il sistema delle “User
roles”, ovvero dei ruoli degli utenti. Questa tecnica consiste nel dividere il contenuto del sito in diverse
parti, ognuna per un ruolo nel sistema. In questo caso sono stati individuati i ruoli di:

 Utente registrato
 Amministratore scolastico
 Insegnante
 Genitore
 Studente

Per ogni ruolo è stata creata una cartella contenente tutte le pagine alle quali l’utente del ruolo può
accedere. Nei file di configurazione del sito “web.config” sono stati definiti i permessi dei ruoli alle
relative cartelle. È stato poi necessario configurare il menu TreeView affinché visualizzasse per ogni
utente soltanto le pagine abilitate dal ruolo dello stesso.

<siteMap defaultProvider="foo" enabled="true">


<providers>
<add name="foo"
siteMapFile="web.sitemap"
type="System.Web.XmlSiteMapProvider"

35 
Erni Durdevic

securityTrimmingEnabled="true"/>
</providers>
</siteMap>

Tutto ciò implica che a ogni identificazione degli utenti attraverso le chiavi di accesso si deve assegnare
l’utente al relativo ruolo del MembershipProvider.
Esempio: Roles.AddUserToRole(currentUser.UserName, "Studente")

5.3.2 Implementazione delle interrogazioni


Tutte le interrogazioni alla Base Dati avvengono tramite DataSet. Nei DataSet sono memorizzate tutte
le tabelle virtuali (TableAdapters) con relative query. Per la visualizzazione dei dati sono state usate
due tecniche, una per la semplice visualizzazione di tabelle e l’altra per viste più complesse.

Visualizzazione semplice
Per una semplice visualizzazione dei campi di un TableAdapter sono stati utilizzati gli
ObjectDataSource. Essi sono degli oggetti che fanno riferimento a un TableAdapter e eseguono
automaticamente le operazioni di selezione configurate quando la pagina viene caricata.

Pagina.aspx DataSet TableAdapter


Fields
Database del
TableAdapter Querys sistema
Tabella
visualizzata Fields
Table
Querys Fields

Table
TableAdapter
TableAdapter Fields
Fields Table
ObjectDataSource
Fields
Querys Fields
Querys

Per visualizzare una tabella con i dati relativi a un interrogazione basta inserire il controllo .NET
“GridView” e agganciarlo al ObjectDataSource corrispondente. Questo permette di creare
visualizzazioni statiche di tabelle in pochi istanti.

Per visualizzare un record in dettaglio è stato usato il controllo .NET DetalisView. Questo controllo,
analogamente a GridView, si aggancia a un ObjectDataSource e fornisce la visualizzazione di un solo
record in maniera dettagliata.

Visualizzazione complessa
Per un maggiore controllo della visualizzazione è necessario creare la tabella da codice. Questa tecnica
è stata utilizzata per visualizzare le valutazioni degli studenti. La necessità è quella di evidenziare le
valutazioni annullate e visualizzare una tabella per ogni studente.

Segue un esempio che scrive la lista di studenti che appartengono alla classe selezionata nel controllo
LstSelClasse.

36 
Erni Durdevic

Dim TableAdapter As New


DSProfMatTableAdapters.ListaUtentiNomeECognGenericaTableAdapter
Dim DataTable As New DSProfMat.ListaUtentiNomeECognGenericaDataTable
Dim DataRow As DSProfMat.ListaUtentiNomeECognGenericaRow
'Dichiarazione del TableAdapter e DataTable utilizzati

Try
' Il metodo FillStudentiByIDClasse riempie la tabella DataTable
' con la lista degli studenti della classe selezionata nel
' controllo LstSelClasse
TableAdapter.FillStudentiByIDclasse(DataTable, LstSelClasse.Text)
Catch ex As Exception
LblResponse.Text = "Selezionare una classe"
Exit Sub
End Try

For Each DataRow In DataTable.Rows


'per ogni studente
Dim Titolo As HtmlGenericControl = New HtmlGenericControl("h4")
'crea un <H4>
Titolo.InnerText = DataRow.NomeECogn
'con il nome e cognome dello studente
ListaVoti.Controls.Add(Titolo)
'e lo inserisce nel DIV con ID=”ListaVoti”
Next

In questo caso, all’interno del ciclo “For Each” si può accedere a tutti i parametri della selezione.

37 
Erni Durdevic

5.3.3 Implementazione delle memorizzazioni


La maggior parte delle memorizzazioni usano come parametri di inserimento i valori dei controlli
presenti nelle pagine (TexBox, ListBox e DropDownList). In questo caso il modo più semplice per
memorizzare i dati è attraverso gli ObjectDataSource. Gli oggetti ObjectDataSource definiscono i
parametri e i metodi di inserimento che verranno usati per la memorizzazione. Una volta configurato
l’oggetto basta invocare la procedura “insert()” per eseguire le operazioni specificate.

È necessario considerare che le query di inserimento, modifica e selezione si trovano nei DataSet. Non
è quindi necessario preoccuparsi della struttura fisica delle tabelle, stringhe di connessione e
autenticazione nella connessione al DataBase.

Segue un esempio di configurazione di un ObjectDataSource:

<asp:ObjectDataSource ID="ODScontatti" runat="server"


InsertMethod="QuickInsertScopeID"
OldValuesParameterFormatString="original_{0}"
TypeName="DSscuolaTableAdapters.TblContattiTableAdapter">
<InsertParameters>
<asp:ControlParameter ControlID="TxtTelefono" Name="TelFisso"
PropertyName="Text" Type="String" />
<asp:ControlParameter ControlID="TxtMail" Name="Email"
PropertyName="Text" Type="String" />
<asp:Parameter DefaultValue="" Name="Note" Type="String" />
</InsertParameters>
</asp:ObjectDataSource>

Se si necessita di passare dei valori dinamicamente a dei parametri di inserimento ci sono due modi:

 Cambiare il valore di default del parametro prima di far partire la procedura insert():.
ODSscuole.InsertParameters("Indirizzo").DefaultValue = IDindirizzi
 Intercettare l’evento Inserting() dell’oggetto ObjectDataSource:
Protected Sub ODSscuole_Inserting(ByVal sender As Object, ByVal e As
System.Web.UI.WebControls.ObjectDataSourceMethodEventArgs) Handles
ODSscuole.Inserting
e.InputParameters("Indirizzo") = IDindirizzi
End Sub

Come esempio di utilizzo, viene riportato il codice del pulsante “Crea la scuola” della pagina di
creazione di una nuova scuola.

Protected Sub BtnCreaScuola_Click(ByVal sender As Object, ByVal e As


System.EventArgs)
Try
ODScontatti.Insert()
ODSindirizzi.Insert()
Catch ex As Exception
LblResponse.Text = "Si è verificato un problema nell'inserimento dei
dati della scuola, si prega di riprovare più tardi."
Exit Sub
End Try
Try
If User.Identity.IsAuthenticated Then
ODSutenti.InsertParameters("IDmembershipProvider").DefaultValue =
GUIDCurrentUser.ToString
End If

38 
Erni Durdevic

If CreaNuovoUtente Then
'se non sono note le generalità dell'utente, vengono inserite
ODSutenti.Insert()
End If
' definizione dei parametri di inserimento come DefaultValue per non
' intercettare il metodo Inserting dell'oggetto ObjectDataSource:
' ODSscuole
ODSscuole.InsertParameters("Contatti").DefaultValue = IDcontatti
ODSscuole.InsertParameters("Indirizzo").DefaultValue = IDindirizzi
ODSscuole.Insert()
' Esiste la scuola, l’utente diventa un dipendente
ODSdipendenza.InsertParameters("IDutente").DefaultValue = IDutente
ODSdipendenza.InsertParameters("IDscuola").DefaultValue = IDscuola
ODSdipendenza.Insert()
Catch ex As Exception
LblResponse.Text = "Spiacenti, controllate che tutti i dati siano
corretti e riprovate."
Exit Sub
End Try
Try
'l'utente che crea la scuola è sicuramente un amministratore
Roles.AddUserToRole(Membership.GetUser.UserName, "Admin")
Catch ex As Exception
'non fa niente, l'utente era già un amministratore.
End Try
'Per convenzione l'amministratore ha anche i privilegi degli
'insegnanti anche se non svolge insegnamenti
Try
Roles.AddUserToRole(Membership.GetUser.UserName, "Insegnante")
Catch ex As Exception
'non fa niente, l'utente era già un insegnante.
End Try
Session("UserControllatoID") = False
'serve a far identificare l'utente con le nuove credenziali
Response.Redirect("~/Amministratore/Default.aspx")
'Se la creazione è avvenuta correttamente, è possibile configurare
'subito la scuola passando all’area Amministratori
End Sub

Oppure si possono istanziare direttamente gli oggetti TableAdapters senza passare per gli
ObjectDataSource e passare direttamente i parametri di inserimento. Questo metodo viene usato per
procedure che richiedono dei controlli più accurati dei parametri ma richiede più tempo per la
realizzazione.

39 
Erni Durdevic

Conclusioni
Nello svolgimento di questo lavoro si è giunti parzialmente al obiettivo, in quanto analisi e
progettazione sono completi, ma la realizzazione è solo parziale. Inoltre non è stato raggiunto lo
standard di stabilità e qualità per la commercializzazione del prodotto, in quanto il costo reale di
sviluppo di questo progetto è molto superiore al carico di lavoro di una tesi di laurea triennale.

Complessivamente sono state realizzate 30 pagine web con un totale di circa 1000 righe di codice VB
associato e più di 3200 righe di codice ASPX (per l’ 85% autogenerato), per una media di una pagina al
giorno. Per realizzare tutti gli accessi ai dati, sono stati sviluppati 4 DataSet per un totale di 94 query.

Sono soddisfatto dell’esperienza ma non pienamente del risultato. L’intenzione originaria era quella di
costruire una ossatura solida per poterci sviluppare spora una applicazione seria. Questo risulta
ottenuto dal punto di vista della progettazione, ma per quanto riguarda l’implementazione si tratta di
un prototipo e non di una parte del sistema informativo finale. Sono invece molto soddisfatto
dell’esperienza, se dovessi ricominciare da capo saprei come migliorare.

40 