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, incluso cenni di Cloud Computing. Fornire agli studenti 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 agli studenti 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 EJB e programmazione in Java e applicazioni Android. Particolare attenzione all'integrazione con ambienti Cloud e le reti sociali, come esempio di integrazione di servizi eterogenei. 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 gruppo (2-3 studenti), e poi di illustrare verbalmente le soluzioni adottate (communication skills).