Diapositiva 1 - federicovigna.it :: Home page di Federico Vigna

Università degli studi “Roma Tre”
Dipartimento di informatica ed automazione
Tesi di laurea
Framework didattico per lo sviluppo di
applicazioni per basi di dati
Candidato
Federico Vigna
Relatore
Paolo Atzeni
Università di “Roma Tre”
Federico Vigna - 22/09/04
Contesto
Studente
• Analisi delle problematiche di uno
studente del corso di basi di dati
GUI
Applicazione dello studente
• Fornire uno strumento che consenta di
realizzare facilmente applicazioni grafiche
in Java che colloquiano con basi di dati
Federico Vigna - 22/09/04
Base di dati
Analisi
• Lo studente si presenta con conoscenze di Java buone ma poco profonde
– Scarsa dimestichezza con i package relativi alla grafica (javax.swing)
e degli eventi (java.awt.event)
• Crea piccole classi di test per provare Jdbc –
argomento del corso – stampando normalmente i
risultati in Console
– Minima gratificazione dello studente che
investe tempo e ottiene risultati spartani
– Scrive codice altamente accoppiato con
l’applicazione stessa quindi poco riusabile
• Il docente del corso vuole che lo studente si concentri sull’utilizzo di Jdbc
trascurando certi dettagli implementativi.
Federico Vigna - 22/09/04
Il framework “BDFrame”
• BDFrame offre servizi per costruire facilmente applicazioni grafiche che
colloquiano con basi di dati
– costringendo lo studente ad utilizzare Jdbc per le esigenze didattiche
del corso di basi di dati
• lo studente può astrarre da molti dettagli implementativi e si concentra
su Jdbc
• crea rapidamente applicazioni
Federico Vigna - 22/09/04
I servizi del framework
Tabelle grafiche
Maschere di inserimento dati
Maschere di aggiornamento
Menu
Federico Vigna - 22/09/04
Tabelle grafiche
•
Lo studente visualizza il risultato di una propria interrogazione SQL – rappresentata
da un oggetto java.sql.ResultSet - in una tabella grafica
Federico Vigna - 22/09/04
Maschere di inserimento
•
Lo studente genera una maschera grafica per l’inserimento dati fornendo la
connessione alla base di dati ed un comando SQL di inserimento in formato
“PreparedStatement”
Federico Vigna - 22/09/04
Maschere di aggiornamento
•
•
Analogamente, fornendo comandi SQL di aggiornamento, lo studente ottiene
maschere grafiche di aggiornamento per la tupla interessata
Se il comando SQL interessa più tuple, viene proposto un aggiornamento di tutte le
tuple interessate
Federico Vigna - 22/09/04
Menu personalizzati
•
Per articolare facilmente le applicazioni, lo studente può generare dei menu grafici ai
quali associa l’esecuzione di metodi delle sue classi
Federico Vigna - 22/09/04
Menu personalizzati - dettagli
•
•
Le scelte vengono associate ad oggetti che
implementano l’interfaccia IAzione
–
–
•
La struttura dei menu è ad albero nario, questo permette di articolare
menu e sotto-menu ad un qualsiasi
livello di nidificazione
Lo studente fa implementare alle proprie
classi questa interfaccia
Vengono fornite delle azioni predefinite
Utilizzo della riflessione per consentire allo studente di poter eseguire un
metodo (anche statico) di un qualsiasi oggetto, semplicemente fornendo il nome
del metodo come stringa
Federico Vigna - 22/09/04
Sviluppi futuri
• Disaccoppiare il framework dalle esigenze dello studente per
renderlo fruibile ad un qualunque programmatore java
– Inglobando direttamente strumenti per raggiungere le basi di dati
(eliminando, in generale, i limiti imposti dalla didattica)
– Aggiungendo funzionalità di interesse generale
• Creare maschere grafiche anche per oggetti JavaBean
– Facendo uso della riflessione per “interrogare” le proprietà
dell’oggetto anziché recuperare dati da un ResultSet
Federico Vigna - 22/09/04