Software Engineering (parte Martinelli)

Il corso entra nel merito delle fasi dello sviluppo software e delle metodologie necessarie a garantire qualità e sostenibilità di progetti elaborati e in continua evoluzione.

Attraverso mirate esercitazioni guidate, verranno presentati tipici scenari dello sviluppo incrementale, che sta alla base delle moderne metodologie agili. Ognuno di questi scenari sarà l’occasione di introdurre precise tecniche di sviluppo. Tra queste, si vedranno ad esempio i test Unitari e la tecnica del Test Driven Development; l’uso dei Code Smells come strumento di indentificazione dei problemi; l’uso del Refactoring come strumento alternativo all’analisi del singolo componente e l’applicazione di Design Pattern classici dell’Ingegneria del Software come strumento di prototipazione rapida. Verranno inoltre approfondite le tematiche relative alla gestione dei progetti in team e alla Condivisione di Codice.

Queste soluzioni rappresentano gli ingredienti principali di quello che, negli ambienti professionali, è noto come processo agile; il corso darà agli studenti una visione di insieme di tale processo, in modo da insegnare loro quando ognuno di questi passi deve essere applicato, e con quale ritmo; evidenziando attraverso casi pratici la ragione e l’importanza di ognuno di essi. Alla fine del corso, lo studente avrà acquisito le competenze necessarie a gestire in modo professionale un progetto software.