Sviluppo di un prototipo di interfaccia per la verbalizzazione degli esami online
1. Università Degli Studi Di Trieste
Facoltà Di Ingegneria
Corso Di Laurea Triennale In Ingegneria Elettronica
Curriculum Gestionale
Sviluppo di Un Prototipo di Interfaccia per La Verbalizzazione
di Esami Universitari
Relatore: Prof. Maurizio Fermeglia
Laureando: Bledar Qosja
Anno Accademico 2010-2011
1
2. SOMMARIO
Capitolo 1 INTRODUZIONE 4
1.1 PREFAZIONE 4
Capitolo 2 ANALISI 6
2.1 STUDIO DELLE TECNOLOGIE 4
2.1.1 .Net Framework 4.0 6
C# 7
2.1.2 Visual Studio 2010 8
L’accesso ai dati ADO.NET 9
2.1.3 SQL: Structured Query Language 10
Microsoft SQL Server 10
2.2 RACCOLTA DEI REQUISITI 11
Capitolo 3 REALIZZAZIONE DEL PROTOTIPO 12
3.1 PROGETTAZIONE LOGICA 12
Struttura del prototipo 12
Namespaces 13
Architettura del database 16
Temi, stili e skin 18
2
3. 3.2 PROGETTAZIONE FISICA 20
Realizzazione del database 20
Interfaccia e funzionalità 26
-Convalida dell’input: I validator control 27
-Connessione a una sorgente dati 28
Mostrare dati in griglia: Gridview 30
Verbalizzazione 37
Capitolo 4 CONCLUSIONI 40
Appendice A ABBREVAZIONI USATE 41
Appendice B ELENCO DELLE IMMAGINI 41
Appendice C BIBLIOGRAFIA 42
3
4. CAPITOLO 1
INTRODUZIONE
____________________________________________
1.1 Prefazione
Lo scopo della tesi è creare un prototipo di interfaccia web per la
verbalizzazione degli esami Universitari, aiutando in questo modo il
docente a verbalizzare l’esame di un apposito studente senza avere il
bisogno di creare un appello online.
Il docente può accedere utilizzando le proprie credenziali fornite
dall’Università per verbalizzare l’esame di un apposito studente. Per far ciò,
il prototipo deve essere in grado di:
Visualizzare solo gli insegnamenti appartenenti al docente che ha
effettuato l’accesso.
Selezionare uno degli insegnamenti appartenenti al docente e
visualizzare gli studenti che hanno verbalizzato l’esame del
insegnamento selezionato.
Avere una casella di testo dove è possibile cercare il piano di studi
dello studente inserendo il suo numero di matricola.
4
5. Visualizzare il piano di studi appartenente allo studente con tutti gli
insegnamenti della sua carriera Universitaria .
Avere la possibilità di verbalizzare l’esito solo per gli insegnamenti
appartenenti al docente che non sono stati verbalizzati in passato.
Per conseguire tale obiettivo è necessario passare attraverso diverse
fasi di lavoro:
studio delle tecnologie
raccolta dei requisiti
progettazione
realizzazione del prototipo
Tali punti vengono sviluppati nei capitoli seguenti inerenti l’analisi e la
realizzazione.
5
6. CAPITOLO 2
STUDIO DELLE TECNOLOGIE
____________________________________________
2.1.1 .NET Framework 4.0
Il framework è una struttura di supporto su cui un software può essere
organizzato e progettato. Alla base di un framework c’è sempre una serie
di librerie di codice utilizzabili con uno o più linguaggi di programmazione.
.NET creata dalla Microsoft è una versatile piattaforma di sviluppo
software basata sulla tecnologia di programmazione ad oggetti.
Realizzata come contrapposizione proprietaria al linguaggio Java, ha
un ruolo strategico per la Microsoft come piattaforma di sviluppo per
applicazioni desktop e server per le architetture client/server ,internet ed
intranet.
La prima Versione di .NET Framework è stata rilasciata nel 2002.
La sua caratteristica è di essere indipendente dalla versione operativa di
Windows su cui è installata, e di includere molte funzionalità progettate
espressamente in modo da integrarsi in un ambiente internet , e garantire il
massimo grado di sicurezza ed integrità dei dati.
L’innovazione migliore è stata quella riguardante le ASP (Active
Server Pages), che in linea con le filosofie di marketing, sono diventate
ASP.NET 4.0 .
6
7. A differenza di ASP, che implementa motori di scripting, con codice
interpretato in fase di visualizzazione, ASP.NET supporta dei veri
linguaggi di programmazione e codice completamente compilato .
In applicazioni molto complesse, a parità di funzionalità, ASP.NET
da' il meglio di sé, anche grazie a meccanismi di caching molto avanzati.
Inoltre, ASP.NET ha strumenti di debugging e tracing molto potenti, che
permettono di controllare meglio tutta una serie di parametri nella fase di
rilascio di un'applicazione web, migliorando dunque la qualità e
l'affidabilità dell'applicazione finale.
C#
Il C# è un linguaggio di programmazione object-oriented sviluppato
da Microsoft all’interno dell’iniziativa .NET. La sintassi del C# prende
spunto da quella del Delphi, del C++, da quella di Java ed a Visual Basic
per gli strumenti di programmazione visuale e per la sua semplicità.
Può essere definito come il linguaggio che meglio degli altri descrive
le linee guida sulle quali ogni programma .NET viene eseguito.C# è stato
creato da Microsoft specificamente per la programmazione nel framework
.NET. I suoi tipi di dati hanno una corrispondenza univoca con i tipi .NET e
molte delle sue astrazioni, come classi, interfacce, delegati ed eccezioni
sono particolarmente adatte a gestire il .NET framework.
Come Java il C# ha i suoi package e possiamo ritrovare una serie di
classi già sviluppate per l’interazione con i vari ambienti, Front End,
Database, Xml e altri. In C# quello che in Java è chiamato package viene
chiamato namespace . Le classi sono organizzate all’interno di una serie di
namespace che raggruppano le classi con funzionalità simili; ad esempio
System.Data per l’accesso alle basi di dati, System.Web per la
comunicazione tra browser e server.
7
8. 2.1.2 Visual Studio
Visual Studio è un ambiente di sviluppo integrato (IDE) sviluppato
da Microsoft che supporta attualmente diversi tipi di linguaggio, quali C,
C++, C#, F#, Visual Basic.NET, e ASP.NET permettendo la realizzazione
delle applicazioni, siti web, applicazioni web e servizi web.
In particolare, Visual Studio è probabilmente il miglior editor per lo
sviluppo di applicazioni web in ambito Microsoft ed è cosi completo di
funzionalità che più che un editor risulta essere un vero e proprio ambiente
di sviluppo.
La prima versione di Visual Studio .NET è stata rilascata nel 2002.
Tecnicamente è chiamato Visual Studio 7.0 e solo dopo il rilascio di Visual
Studio 2003 questa versione inizio a essere chiamata Visual Studio .NET
2002. Basato sul NET. Framework 1.0 non era possibile sviluppare
applicazioni per versioni successive del Framework.
Nel corso degli anni Visual Studio diventa sempre più fulcro di ogni
attività legata allo sviluppo. Subendo nel tempo un’evoluzione che lo ha
portato ad includere tecnologie sempre più innovative e ad introdurre
costanti miglioramenti alle numerose funzionalità già presenti fin dalla
prima versione, come Team Foundation Server, la parte “server” di visual
studio che è molto di più di una semplice evouzione del Visual Source Safe.
Visual Studio 2010 rispetto alla versione precedente a integrato
ulteriori migliorie per quanto riguarda la parte dedicata al web. Prima di
tutto offre un rinnovato supporto per gli ultimi standard web, come
XHTML e CSS derivando parte delle proprie funzionalità ad Expression
Web. Infine l’Intellisense è stato esteso a tutti i componenti e migliorato,
per offrire il meglio in tutte le situazioni, dal markup della pagina fino al
web.config, passando per il codice client-side(Javascript).
8
9. L’accesso ai dati ADO.NET
ADO.NET rappresenta il sottosistema di accesso ai dati presente
all’interno del .NET Framework . Ispiratosi profondamente ad ActiveX
Data Objects(ADO), ADO.NET fornisce agli sviluppatori in ambito .NET
funzionalità simili a quelle fornite da ADO agli sviluppatori in ambito
COM(Component Object Model).
ADO.NET fornisce uniformità di accesso sia ai DBMS(Data Base
Management System) come SQL Server e Oracle, sia a sorgenti dati
raggiungibili tramite provider OLE DB e driver ODBC.
Tramite ADO.NET, le applicazioni sono in sono in grado di
connettersi alle sorgenti dati per recuperare, modificare e aggiornare i dati
in esse contenuti.
Le comunicazioni con una sorgente dati e il relativo modello di
programmazione di ADO.NET prevede una serie di azioni di validità
generale, che devono essere sempre attuate, indipendentemente dal tipo di
sorgente dati. A ciascuna di queste azioni corrisponde, per ogni data
provider, una classe derivata da uno dei tipi astratti contenuti nel
System.Data.Common e implementata in base alle caratteristiche specifiche
della sorgente dati di riferimento.
9
10. 2.1.3 SQL: Stuctured Query Language
SQL è un linguaggio di interrogazione per database progettato per
leggere, modificare e gestire dati memorizzati in un sistema di gestione di
basi di dati basato sul modello relazionale. Il modello entità-relazioni (E/R)
viene adoperato per analizzare le caratteristiche di una situazione,
prescindendo dagli eventi che si verificheranno. Ciò al fine di costruire un
modello concettuale di dati sentito come indipendente dalle applicazioni.
Il modello entità – relazione si distingue per la presenza di vari
elementi che lo definiscono:
le entità , classi/insiemi di oggetti riguardo i quali si ha interesse a
raccogliere informazioni;
le relazioni, legame logico tra entità;
gli attributi, legami che si formano tra due entità;
MICROSOFT SQL SERVER
SQL Server è un DBMS relazionale prodotto da Microsoft. Nelle
prime versioni era utilizzato per basi di dati medio piccole, ma a partire
dalla versione 2000 è stato utilizzato anche per la gestione di basi di dati di
grandi dimensioni.
Microsoft SQL Server usa una variante del linguaggio SQL standard
chiamato T-SQL Transact-SQL. Comunica sulla rete utilizzando un
protocollo a livello di applicazione chiamato “Tabular Data Stream”. SQL
Server supporta anche “Open Database Connectivity”(ODBC). Il servizio
di SQL Server risponde per default sulla porta 1443.
10
11. 2.2 RACCOLTA DEI REQUISITI
Il prototipo di interfaccia dovrà funzionare in un ambiente Windows.
L’interfaccia verrà creata, sfruttando il framework .NET 4.0, nell’ambiente
di sviluppo Visual Studio 2010. Il linguaggio adottato sarà il C#.
I dati raccolti saranno in un database relazionale realizzato tramite
SQL Server 2008 versione express.
11
12. CAPITOLO 3
REALIZZAZIONE DEL PROTOTIPO
____________________________________________
3.1 PROGETTAZIONE LOGICA
STRUTTURA DEL PROTOTIPO
Un aspetto importante di questa fase è come strutturare la
piattaforma del prototipo. La quale verrà suddiviso in cinque interfacce :
Figura 1- Interfacce del prototipo
12
13. 1. Pagina di accesso, contiene un form di autenticazione composto da
Username e Password. La verifica delle credenziali verrà effettuata
usando una query sul database.
2. Pagina Insegnamenti, contiene tutti gli insegnamenti del docente
autenticato rappresentati usando una Gridview(Griglia), e anche una
casella in cui e possibile inserire il numero della matricola dello
studente per visualizzare il suo piano di studi.
3. Pagina piano di studi, dov’è possibile visualizzare tutti gli
insegnamenti della matricola usando una Gridview, e anche gli esami
che il docente può modificarne l’esito.
4. Pagina verbalizzazione, contenente il form di verbalizzazione.
13
14. NAMESPACES
Ogni interfaccia, sopra descritta, è stata collocata in un namespace
dedicato nei file con estensione aspx.cs . Essi sono cosi definiti:
-System.Data;
Consente di accedere alle classi che rappresentano l’architettura ADO.NET.
-System.Data.SqlClient;
Questo namespace è il provider di dati .NET Framework di SQL
Server e descrive un insieme di classi utilizzate per accedere al database
SQL Server nello spazio gestito. Mediante l’oggetto SqlDataAdapter, è
possibile inserire dati in un oggetto Dataset residente in memoria,
utilizzabile per eseguire query e aggiornare il database.
-System.Web.UI.WebControls;
Lo spazio dei nomi System.Web.UI.WebControls contiene classi
che consentono la creazione di controlli server Web in una pagina Web.
I controlli server Web vengono eseguiti sul server e includono controlli
form quali pulsanti e caselle di testo, nonché controlli finalizzati a scopi
specifici, ad esempio i calendari. Poiché i controlli server Web vengono
eseguiti sul server, è possibile controllare questi elementi a livello di
codice.
Sebbene il rendering dei controlli server Web venga eseguito come
HTML, il relativo modello di oggetti non riflette necessariamente la sintassi
HTML.
14
15. Lo spazio dei nomi System.Web.UI.WebControls contiene classi
che nel rendering risultano come tag HTML, ad esempio il
controllo Textbox e il controllo Listbox. Lo spazio dei nomi contiene anche
classi che non vengono visualizzate nella pagina Web dopo il rendering ma
che supportano operazioni sui dati, ad esempio le classi SqlDataSource e
ObjectDataSource.
Altri controlli, quali Gridview e DetailsView, supportano la
visualizzazione e la modifica dei dati. La classe WebControl funge da
classe base per molte classi dello spazio dei
nomi System.Web.UI.WebControls
-System.Configuration;
Rappresenta un file di configurazione applicabile a un’applicazione, a una
risorsa o a un computer specifico. La classe utilizzata nel nostro caso è:
ConfigurationManager, utilizzata per la dichiarazione della stringa di
connessione.
15
16. ARCHITETTURA DEL DATABASE
Una fase importante nella costruzione del database è la sua
progettazione che è stata effettuata usando lo schema entità-relazione
(E-R).
Figura 2- Schema E-R
16
17. Le entità presenti nello schema (E-R) sono:
Dati studenti, rappresenta tutti i dati anagrafici dello studente come
nome, cognome, data di nascita, e-mail. Come chiave primaria di questa
entità è il numero della matricola.
Corso di studi, composta dal codice del corso che è anche la chiave
primaria e il suo nome.
Dati docenti, fanno parte gli attributi nome e cognome docente e
come identificativo ha il codice docente.
Anno accademico, rappresenta l’anno in cui lo studente ha
frequentato l’insegnamento.
La relazione con maggior interesse nel nostro caso è Insegnamenti ,
dove vengono assegnati al docente i rispettivi insegnamenti.
La tabella principale su cui vengono effettuate maggior parte delle
operazioni è la tabella piano di studi, composta dai seguenti attributi:
Figura 3-L’entità Piano Di Studi e i suoi attributi
Questa entità verrà rappresentata nel interfaccia Piano Di Studi dove
sarà possibile modificare l’esito di un insegnamento non verbalizzato
appartenente al docente che ha effettuato l’accesso.
17
18. TEMI, STILI E SKIN
Una pagina web è formata fondamentalmente da due elementi : i
contenuti veri e propri e la formattazione, ovvero l’aspetto con cui i
contenuti sono mostrati al utente.
Figura 4-Composizione del file Style
Un tema (o theme) definisce un’insieme di stili o attributi grafici e li
associa ai vari elementi e controlli utilizzati. Ciascun tema è caratterizzato
da un nome che lo identifica univocamente ed è composto da un insieme di
file : i fogli di stile CSS, contenenti gli stili dei tag, gli skin dei controlli e le
immagini.
Per utilizzare i fogli di stile non è obbligatorio definire un tema che li
contenga. I file CSS cosi come le immagini, sono elementi che possono
essere aggiunti a un progetto web senza necessariamente dover definire un
tema.
18
19. Una utilissima funzione dei CSS è la possibilità di essere applicati
solo sui dispositivi medi specificati dall’autore. La sintassi HTML utilizzata
è:
Figura 5-Sintassi HTML del foglio di stile
Come si può vedere ad ogni interfaccia è associata il fogli di stile
StyleSheet.css contenente anche le immagini contenute nel file Style.
19
20. 3.2 PROGETTAZIONE FISICA
REALIZZAZIONE DEL DATABASE
Come precedentemente evidenziato, il database sarà costituito dalle
seguenti tabelle:
Stud_Data
Figura 6- Proprietà della tabella Stud_Data
-Matricola, definita come chiave primaria e non può essere ammessa il
valore NULL in quanto chiave primaria della tabella.
-Nome, sarà definito di tipo nchar(30). Esso conterrà solamente il nome
dello studente e non può essere ammesso il valore NULL.
-Cognome, sarà definito di tipo nchar(30). Esso conterrà solamente il
cognome dello studente e non può essere ammesso il valore NULL.
-[E-mail], sarà definito di tipo nvarchar(50), contenente l’e-mail dello
studente. L’inserimento del quale può essere opzionale .
20
21. Doc_Data
Figura 7- Proprietà della tabella Doc_Data
-Codice_Doc, definita come chiave primaria e non potrà essere ammesso il
valore NULL in quanto chiave primaria della tabella.
-Nome, contenente il nome del docente è non potrà essere ammesso il
valore NULL.
-Cognome, contenente il cognome del docente è non potrà essere ammesso
il valore NULL.
Insegnamenti
Figura 8- Proprietà della tabella Insegnamenti
21
22. -Codice_Insegnamento, rappresenta la chiave primaria della tabella e
identifica l’insegnamento associato al’docente il quale non può ammettere
valore NULL.
-Nome, definisce il nome dell’insegnamento associato al docente.
-ID_Doc, rappresenta il codice identificativo del docente che sarà una
chiave esterna e non può assumere valore NULL.
A.A
Figura 9- Proprietà della tabella A.A
-ID, sarà di tipo int e non può assumere valore NULL essendo chiave
primaria della tabella.
-Anno Accademico, sarà di tipo int e rappresenta l’anno che lo
studente ha frequentato il corso.
Corso_di_studio
Figura 10- Proprietà della tabella Corso_di_studio
22
23. -Codice_corso, sarà definita di tipo int e non può assumere valore
NULL essendo la chiave primaria della tabella.
-Nome_corso, rappresenta il nome del corso.
Piano Di Studi
Figura 11- Proprietà della tabella Piano Di Studi
-Matricola, Corso_ID, Codice_Insegnamento e Anno di Frequenza saranno
chiavi esterne perché sarà applicata l’integrità referenziale e non potranno
assumere valore NULL.
-Anno di Frequenza, sarà definito di tipo int e può essere ammesso il valore
NULL nell’caso lo studente non abbia frequentato ancora l’insegnamento .
-Data Esame, sarà definito di tipo date e può essere ammesso il valore
NULL nell’caso lo studente non abbia ancora sostenuto l’esame.
-Voto, sarà definito di tipo nvarchar(10) e può essere ammesso il valore
NULL nell’caso lo studente non abbia ancora sostenuto l’esame.
23
24. VERBALE
Figura 12- Proprietà della tabella VERBALE
-Matricola, Codice_Insegnamento e Nome_Insegnamento avranno valori
predefiniti una volta arrivati nell’interfaccia Verbalizzazione.aspx.
-Data_esame,Voto, Note e Anno avranno valori che saranno assegnati
durante la compilazione del modulo nell’interfaccia Verbalizzazioni.aspx.
24
25. Infine vengono effettuate le varie relazioni fra le tabelle, dove la
tabella con più chiavi esterne sarà Piano Di Studi.
Figura 13- Diagramma del database SQL
25
26. INTERFACCIA E FUNZIONALITÀ
Avviato il prototipo ci si troverà davanti alla pagina d’accesso:
Figura 14- Pagina di accesso
La pagina d’accesso e composta da due textbox o caselle di testo e
un pulsante che ha il compito di autenticare le credenziali del utente.
26
27. -Convalida dell’input: i Validator Control
Sono i controlli più utili, proprio perché rendono automatica la
validazione del contenuto di un campo. Nel caso in cui l’utente non
inserisce le credenziali o ne dimentica una e preme il pulsante Accedi ,
allora viene avviato il controllo RequiredFieldValidator che verifica che sia
presente del teso nella casella.
Figura 15- RequiredFieldValidator in codice HTML
Nella finestra proprietà del RequiredFieldValidator è stato
impostato il campo assegnato al validator control e il messaggio di errore
che esce quando ciò si verifica.
Nella fase di autenticazione viene fatto un semplice controllo nella
tabella Dati_Docenti, dove il nome utente corrisponde al cognome del
docente e il password al identificatore della tabella. Tutto questo perché
durante l’autenticazione reale si hanno misure di sicurezza più rigide e
complesse.
-Connessione a una sorgente dati
Ciascun data provider ADO.NET implementa la classe astratta
DbConnection in base alle caratteristiche peculiari della sorgente dati di
riferimento. Questa classe include alcuni membri di utilità generale e, in
particolare, il metodo di apertura Open, il metodo di chiusura Close e la
27
28. proprietà ConnectionString, che rappresenta la stringa di contenente le
informazioni di configurazione della connessione. Nel nostro caso nella
pagina Accesso.aspx.cs la connessione con il database SQL è stata
effettuata dentro il metodo bool check() .
Inizialmente dopo aver aperto una nuova connessione SQL e
definendo dentro il metodo check() la stringa di connessione è stato usato il
metodo Open() per aprire la connessione con il database SQL. Dopodiché è
stato utilizzato l’oggetto DataTable e DataSet, dove DataTable rappresenta
una tabella di dati in memoria e DataSet la cache di dati in memoria.
Il DataSet include le collezioni Tables e Relations, che
rappresentano l’insieme delle tabelle e delle relazioni in esso contenute.
Ogni DataTable include, a sua volta le collezioni Rows, Columns e
28
29. Constraits, che rappresentano l’insieme delle righe, delle colonne e dei
vincoli.
Mediante queste collezioni dove nel nostro caso è stato usato Rows è
possibile accedere ai dati contenuti in un Dataset o in una DataTable,
semplicemente specificando la “posizione” dell’elemento ricercato
nell’ambito della struttura interna dell’oggetto contenitore. Per riempire il
container di dati DataTable è stata usata la classe SqlDataAdapter
contenente anche il query SQL, specificando in questo modo la tabella dove
il metodo check() controllerà le credenziali. Se nel caso le credenziali sono
quelle giuste il metodo ritorna true se no ritorna false.
Quando si preme il pulsante Accedi, viene controllato se il metodo
check() è vero e l’utente viene reindirizzato nella pagina Insegnamenti se
no verrà visualizzato un messaggio di errore. È stata usata la proprietà
session per creare una nuova sessione Codice_ID che servirà nelle query
fatte in seguito.
29
30. MOSTRARE DATI IN GRIGLIA: GRIDVIEW
Per mostrare i dati contenuti nel database SQL è stata utilizzato il
controllo Gridview che visualizza i valori di una origine dati in una tabella
in cui ogni colonna rappresenta un campo e ogni riga rappresenta un record.
Il controllo Gridview consente la selezione, l’ordinamento e la modifica
degli elementi.
La connessione della nostra Gridview con il database SQL è stata fatta
selezionando la stringa di connessione dal design del Gridview.
Figura 16- Connessione della Gridview con il database SQL
30
31. La tabella del database collegata con il Gridview è la tabella
nominata Insegnamenti. Lo scopo è di visualizzare solo le unità didattiche
relative al docente, ecco perché dopo aver selezionato i record da
visualizzare nella Gridview è stata inserita una query. La query seleziona
solo i record dove il codice docente associato a ciascun insegnamento è
uguale alla sessione Codice_ID. Quindi il query seleziona solo i record
appartenenti al docente.
Figura 17- Il codice SQL all’interno del Gridview nella pagina
Insegnamenti
Oltre alla visualizzazione delle unità didattiche appartenenti al
docente, nella pagina Insegnamenti viene visualizzato anche il nome e il
cognome del docente che ha effettuato l’accesso. Tutto questo è stato fatto
aggiungendo delle etichette chiamate Label e modificando il loro valore in
31
32. base alla sessione che viene creata. Espresso in code-behind nella pagina
Insegnamenti.aspx.cs si ha:
Dal database SQL è stato scelto la tabella Doc_data che rappresenta i
dati relativi al docente come nome, cognome e il codice che lo identifica. In
questo modo solo quando l’identificatore del docente sarà uguale alla
sessione Codice_ID, la prima etichetta rappresenterà il nome e la seconda il
cognome del docente.
Il docente potrà selezionare uno dei insegnamenti corrispondenti e
vedere le verbalizzazioni effettuate da parte sua solo per l’insegnamento
selezionato nella pagina Verbalizzati.aspx . Anche in questo caso i dati
saranno visibili usando la Gridview, dove durante la selezione
dell’insegnamento viene creata una sessione che lo identifica.
32
33. Nella pagina Insegnamenti il docente dovrà essere in grado di
inserire la matricola dello studente interessato in una casella di testo per
visualizzare il piano di studi appartenente allo studente. In questo modo se
la matricola è inserita correttamente e si trova nel database SQL l’utente
sarà reindirizzato nella pagina successiva se no viene mostrato un
messaggio di errore. Per controllare se la matricola si trova nel database
SQL è stato usata il metodo check_matricola():
33
34. Il metodo check_matricola() ritorna true se la matricola si trova ne
database SQL e se no ritorna false. Accanto alla casella di testo è stato
aggiunto un pulsante nominato Cerca. Il pulsante quando viene azionato
controlla se il metodo check_matricola() è vero e ha il compito di
reindirizzare l’utente nella interfaccia Piano Di Studi, se non è vero verrà
mostrato un messaggio di errore.
34
35. Nella pagina Piano Di Studi.aspx vengono visualizzati solo gli
insegnamenti corrispondenti al numero di matricola inserito
precedentemente. Il docente ha la possibilità di modificare l’esito solo per
gli insegnamenti appartenenti a lui e che non sono stati verbalizzati in
passato.
Figura 18-Piano di studi
È stato inserito un campo Templatefield il quale rappresenta un
campo in cui viene visualizzato il contenuto personalizzato nella
Gridview.All’interno del Templatefield è stato inserito un pulsante che
viene visualizzato solo quando è verificata la condizione. Per far ciò è stato
usato l’evento RowDataBound.
35
36. RowDataBound viene generato quando una riga di dati,
rappresentata da un oggetto GridviewRow, viene associata a dati nel
controllo Gridview.
Una volta premuto il pulsante il docente viene reindirizzato nella
pagina Verbalizzazione.aspx. Durante l’operazione dalla Gridview viene
creata una sessione appartenente al codice del insegnamento.
36
37. VERBALIZZAZIONE
La verbalizzazione dell’esame da parte del docente viene effettuata
compilando il modulo nella pagina Verbalizzazione.aspx:
Figura 19- Pagina Verbalizzazione
La pagina è composta da tre caselle di testo e quattro dropdownlist,
che rappresentano dei controlli che gli consentono al docente di selezionare
un singolo elemento da un elenco in discesa.
37
38. Dopo aver aperto una connessione è stato usato la classe SqlComand
per l’inserimento degli dati nel database.
Tutti i dati inseriti nella pagina Verbalizzazione.aspx vengono
inseriti nella tabella VERBALE. In questo modo, il docente dopo aver
compilato il modulo e dopo aver premuto il pulsante “Salva” non può più
modificare l’esito del esame corrispondente, perché è appena stato
verbalizzato.
38
39. CAPITOLO 4
CONCLUSIONI
____________________________________________
È possibile affermare, che i requisiti e le specifiche fissati all’inizio
del progetto sono stati rispettati e gli obbiettivi prefissati sono stati
raggiunti.
Per quanto riguarda invece il lavoro svolto, gli elementi che hanno
richiesto un maggiore attenzione e tempo sono state la fase di progettazione
iniziale della struttura del prototipo e la progettazione fisica.
Il progetto è stato realizzato nello stato di prototipo. Nonostante ciò
l’architettura con il quale è stato realizzato, conferisce una struttura solida
e la possibilità di ulteriori sviluppi.
Nel complesso del lavoro svolto mi ritengo soddisfatto dei risultati
ottenuti e di tutto ciò che ne è derivato.
39
40. APPENDICE A
ABBREVAZIONI USATE
____________________________________________________________
ASP Active Server Pages
IDE Integrated Development Environment
CSS Cascading Style Sheets
ADO Active Data Objects
SQL Structured Query Language
APPENDICE B
ELENCO DELLE IMMAGINI
____________________________________________________________
Figura 1- Interfacce del prototipo 12
Figura 2- Schema E-R 16
Figura 3-L’entità Piano Di Studi e i suoi attributi 17
40
41. Figura 4-Composizione del file Style 18
Figura 5-Sintassi HTML del foglio di stile 19
Figura 6- Proprietà della tabella Stud_Data 20
Figura 7- Proprietà della tabella Doc_Data 21
Figura 8- Proprietà della tabella Insegnamenti 21
Figura 9- Proprietà della tabella A.A 22
Figura 10- Proprietà della tabella Corso_di_studio 22
Figura 11- Proprietà della tabella Piano Di Studi 23
Figura 12- Proprietà della tabella VERBALE 24
Figura 13- Diagramma del database SQL 25
Figura 14- Pagina di accesso 26
Figura 15- RequiredFieldValidator in codice HTML 27
Figura 16- Connessione della Gridview con il database SQL 30
Figura 17- Il codice SQL all’interno del Gridview nella pagina
Insegnamenti 31
Figura 18-Piano di studi 35
Figura 19- Pagina Verbalizzazione 37
41