48
SISTEMI DI ELABORAZIONE DELLE INFORMAZIONI
REGGIO DI CALABRIA
Dati Generali
Periodo di attività
Syllabus
Obiettivi Formativi
L’insegnamento mira a fornire le conoscenze metodologiche e tecniche per progettare e realizzare Web Application utilizzando framework moderni come Hibernate e Struts e Mobile Application per Android.
Gli obiettivi principali includono la progettazione della struttura del sito Web, la realizzazione dell’interfacciamento con un DBMS, e la gestione semi-automatica degli accessi all’area riservata.
Prerequisiti
L’insegnamento richiede specifiche conoscenze o competenze su (parte di quanto necessario viene comunque richiamato nel corso):
- utilizzo di MySQL e dell’SQL per creare, modificare, aggiornare e leggere tuple.
- conoscenza delle basi di programmazione (for, if, classi, proprietà e metodi).
- conoscenza dei seguenti argomenti appresi nel corso di Ingegneria del Web al I anno: Modello Client-Server. Il Web. Gli ipertesti. Principi tecnologici del Web. Risorse e identificatori. URI. HTTP. Web server. Apache web server. XML. HTML 5. Implementare client e server in Java.
Metodi didattici
L'insegnamento è organizzato secondo la seguente ripartizione:
Lezioni frontali (16 ore): Esposizione dei concetti teorici con l'ausilio di slide e lavagna.
Esercitazioni in aula (32 ore): Ogni argomento teorico presentato è da subito incluso all’interno di esercitazioni pratiche, spesso guidate, per la realizzazione pratica dei concetti teorici presentati.
Verifica Apprendimento
Nel materiale didattico sono disponibili esercitazioni ed esempi di progetti e ulteriori indicazioni che si suggerisce di consultare.
Gli esami di accertamento e di valutazione consistono in una prova progettuale e in una prova orale. La prova progettuale, da svolgersi in gruppo, ha lo scopo di progettare e realizzare una Web application che informatizzi una realtà prescelta dagli studenti (la progettazione della base di dati non è richiesta per cui è possibile partire da una base di dati già esistente). Tale applicazione deve implementare ciascuno degli argomenti illustrati nel corso. Inoltre, almeno una funzionalità della Web Application deve essere implementata anche in una Mobile Application. La prova orale ha l’obiettivo di discutere il progetto realizzato e di valutare la conoscenza, da parte dello studente, del programma del corso e la capacità di adeguare il progetto a richieste provenienti dal docente.
La valutazione finale si basa sui seguenti criteri, in linea con i descrittori AVA 3:
- 18 - 21 (Sufficiente): Lo studente dimostra una limitata conoscenza della materia. Raggiunge la soglia di sufficienza dimostrando di saper realizzare una Web application con Struts e Hibernate partendo da una realtà di complessità limitata e garantendo che almeno una funzionalità sia fruibile anche attraverso un’app Android. Tuttavia, manifesta alcune lacune, incertezze nell'applicare i framework del corso e un'esposizione della materia essenziale, talvolta poco chiara o frammentata.
- 22 - 24 (Discreto): Lo studente dimostra un'accettabile conoscenza della materia. È in grado di progettare e realizzare una Web application con Struts e Hibernate partendo da una realtà di complessità elevata, pur mantenendo le funzionalità dell'app Android a un livello basilare. Manifesta discrete capacità pratiche e l'esposizione risulta corretta, seppur priva di una struttura del tutto coerente.
- 25 - 27 (Buono): Lo studente dimostra un'ampia conoscenza della materia. Oltre a gestire autonomamente lo sviluppo di una Web application complessa con Struts e Hibernate, si dimostra capace di realizzare e integrare funzionalità articolate e complesse fornite attraverso l'app Android. Utilizza una terminologia tecnica adeguata, con un'esposizione chiara ma talvolta schematica.
- 28 - 29 (Ottimo): Lo studente dimostra una conoscenza approfondita dei contenuti teorici e pratici. Integra in modo eccellente una Web application di elevata complessità con un'app Android dotata di funzionalità avanzate, evidenziando ottime capacità di problem solving e totale padronanza del codice. L'esposizione è chiara, articolata e supportata da un linguaggio rigoroso, ammettendo solo minime imprecisioni.
- 30 - 30 e lode (Eccellente): Lo studente dimostra una conoscenza completa e dettagliata di tutto il programma. Oltre all'eccellente realizzazione del progetto integrato Web/Mobile, è in grado di implementare con prontezza e assoluta sicurezza ulteriori funzionalità aggiuntive richieste all'impronta in fase di esame orale. Evidenzia una comprensione eccellente e un'esposizione logica, matura e ottimamente strutturata. La lode viene attribuita in caso di padronanza assoluta degli argomenti e spiccata capacità di collegamenti interdisciplinari.
- Mancato superamento dell'esame (Insufficiente): Lo studente dimostra una conoscenza scarsa o frammentaria. Non raggiunge gli obiettivi minimi, palesando l'incapacità di utilizzare Struts e Hibernate per realizzare l'applicazione Web di base o mancando del tutto lo sviluppo della controparte Mobile (Android).
Testi
• Java Persistence with Hibernate, Second Edition of Hibernate in Action, Christian Bauer and Gavin King, Manning Publications Co.
• Struts 2 in Action, Donald Brown, Chad Michael Davis, and Scott Stanlick, Manning Publications Co.
• Hibernate http://hibernate.org/orm/
• Struts https://struts.apache.org/
• Android Developers https://developer.android.com/
Nel materiale didattico disponibile sul Team (codice indicato nella sezione altre informazioni) sono presenti le seguenti dispense che coprono la totalità degli argomenti del modulo:
00 - presentazione corso.pdf
01 - background.pdf
02 - hibernate.pdf
03 - struts2.pdf
04 - Android.pdf
esercitazione_01_pattern.zip
esercitazione_02_hibernate_es3.zip
esercitazione_03_hibernate_mapping_2025.zip
esercitazioni_05_struts.zip
esercitazioni_06_android.zip
Installazione Android Studio.pdf
Librerie Hibernate.zip
Linee Guida Presentazione Progetto.pdf
Sono inoltre disponibili video con le lezioni registrate durante il periodo COVID che, sebbene non siano relative a questo anno accademico, possono essere utili per chi non può frequentare.
Essendo il corso erogato in italiano, la maggior parte del materiale è in italiano. E’ comunque resa disponibile la versione inglese del libro (indicata sopra) ed è possibile richiedere al docente la versione inglese delle slide.
Contenuti
Nel materiale didattico disponibile sul Team (codice indicato nella sezione altre informazioni) è possibile trovare queste stesse informazioni eventualmente meglio presentate (con immagini, colori, collegamenti Web a risorse, migliore impaginazione, … che in questa pagina non è possibile includere).
Programma del corso (6 CFU – 48 ore)
Richiami di Java. Ereditarietà ed Interfacce. Gestione delle eccezioni. Collections. Annotations. Serializzazione. Logging. La libreria Log4J2. ll pattern Singleton. ll pattern DAO. ll pattern Factory. (1 CFU – 8 ore)
Introduzione ad Hibernate. Oggetti POJO. Hibernate-configuration. Utilizzo di Hibernate: configurazione e mapping XML. Annotazioni. Il pattern DAO e Factory in Hibernate. Mapping di relazioni. Uno a molti. Molti a uno. One-to-one classica e component. Many-to-many. Chiave composta. Ereditarietà. Hibernate Query Language. Hibernate tools. Reverse Engineering. (1,5 CFU – 12 ore)
Introduzione a Struts. MVC di Struts 2. Struts Filter. Result. Action. Interceptor. Passaggio dei parametri tra View e Action. Passaggio dati con Javabeans e ModelDriven. Validazione input con Workflow e con Validation. Errori e avvisi. Gestione eccezioni. Resource Bundles. Conversioni di tipi. Interceptor ExecAndWait, FileUpload, Timer, Logger. Creazione di un interceptor. Interfaccia SessionAware. Iniezione di dati in sessione. Tag UI di Struts. Altre funzionalità di Struts. Il formato JSON. Struts e JSON. JSON results.
(2 CFU – 16 ore)
Il sistema Android. Applicazione Hello World. Activity. Chiamata di un'activity e passaggio di parametri. Intent esplicito. Life cycle di un'activity. Preferenze. Gestione dei file interni. Gestione dei file esterni. Pattern delegation. Intent impliciti. Gestione di oggetti JSON. Processi e Thread. UI thread e worker thread. Async Task e connessione ad una Web Application. (1,5 CFU – 12 ore)
RISULTATI ATTESI
Conoscenza e capacità di comprensione
Al termine del modulo gli studenti e le studentesse conoscono i concetti necessari per utilizzare i framework moderni per realizzare Web e Mobile application e comprendono le metodologie di progettazione di tali applicazioni.
Conoscenza e capacità di comprensione applicate
Al termine del modulo gli studenti e le studentesse sono in grado di progettare e realizzare una Web Application utilizzando Struts che si interfaccia a un DBMS tramite Hibernate. Inoltre, sono in grado di realizzare applicazioni mobile per dispositivi Android che si interfacciano ad applicazioni Web.
Autonomia di giudizio
Al termine del modulo gli studenti e le studentesse sono in grado di prendere opportune decisioni nella progettazione di una Web e Mobile application in contesti applicativi e industriali dell’ICT valutando aspetti quali la necessità di utilizzare o meno framework moderni, le tecnologie specifiche da utilizzare e l’impatto sui costi di sviluppo.
Abilità comunicative
Al termine del modulo gli studenti e le studentesse utilizzano la terminologia e il linguaggio tecnico relativo alle Web e Mobile Application per poter interfacciarsi con altri esperti, anche al fine di illustrare le motivazioni alla base delle scelte progettuali prese e discutere eventuali soluzioni alternative.
Capacità di apprendimento
Al termine del modulo gli studenti e le studentesse hanno acquisito la conoscenza che permette loro di apprendere in autonomia le evoluzioni tecnologiche nello sviluppo di Web e Mobile Application e di valutarne pregi e difetti.
Altre informazioni
Codice Team: xivq0o9
Nel materiale didattico del Team è possibile trovare tutte le informazioni necessarie per preparare questo esame.