Tecniche e architetture avanzate per lo Sviluppo del Software
Il corso ha come obiettivo di fornire agli studenti una panoramica delle tecnologie di sviluppo di sistemi mission critical, con particolare enfasi alle soluzioni industriali per l'e-Business, e include cenni di Cloud Computing.
Inoltre si presenteranno metodologie e strumenti di Project Management per permettere di gestire lo sviluppo di progetti Software dall'analisi al testing. Le basi del Project Management unite all'applicazione della metodlogie Agile di Ingegneria del Software si applicheranno allo sviluppo del progetto svolto in laboratorio.
L'insegnamento permette di familiarizzare con terminologie di uso comune nell'industria moderna quali: sviluppo per componenti, architetture multilivello, middleware. Per la parte di laboratorio viene realizzata un'applicazione completa basata su: modello UML, architettura three-tier, modello a componenti con Spring/Java e front-end con React o framework equivalente. Particolare attenzione verrà prestata all'integrazione con ambienti Cloud.
I temi introdotti durante il progetto di laboratorio corredano e integrano le conoscenze derivanti dalla parte teorica (knowledge and understanding), al tempo stesso presentando problemi realistici di costruzione di un'applicazione complessa, anche investigando soluzioni alternative (applying knowledge and understanding).
La preparazione, le presentazioni intermedie e la discussione del progetto sono volte a stimolare le capacità di organizzare il lavoro in piccoli gruppi (2-3 persone), e di illustrare verbalmente con proprietà di linguaggio le soluzioni adottate (communication skills).