Sviluppo software in gruppi di lavoro complessi
A.A. 2024/2025
Obiettivi formativi
L'insegnamento affronta gli aspetti più organizzativi dello sviluppo software, con l'obiettivo di formare figure professionali che contribuiscono allo sviluppo di progetti software con la consapevolezza delle esigenze gestionali.
Risultati apprendimento attesi
Al termine dell'insegnamento lo studente sarà in grado di discutere criticamente i principali modelli organizzativi di sviluppo (cattedrale, bazaar, kibbutz, gruppi di lavoro "agili"). Saprà sfruttare il supporto fornito dai tool di configuration management e versioning (in particolare git) e i servizi di continuous integration e delivery. Sarà inoltre in grado di scrivere programmi accompagnati da documentazione e specifiche mirate al lavoro collaborativo (in particolare sfruttando tecniche di Design By Contract).
Periodo: Secondo semestre
Modalità di valutazione: Esame
Giudizio di valutazione: voto verbalizzato in trentesimi
Corso singolo
Questo insegnamento può essere seguito come corso singolo.
Programma e organizzazione didattica
Edizione unica
Responsabile
Periodo
Secondo semestre
Programma
- Cenni ai modelli organizzativi di sviluppo (cattedrale, bazaar, kibbutz, gruppi di lavoro "agili")
- Il supporto fornito dai tool di configuration management e versioning
- Continuous integration & delivery
- DevOps
- Documentazione e specifica mirata al lavoro collaborativo (Design By Contract e linguaggi per la separation of concerns)
- Il supporto fornito dai tool di configuration management e versioning
- Continuous integration & delivery
- DevOps
- Documentazione e specifica mirata al lavoro collaborativo (Design By Contract e linguaggi per la separation of concerns)
Prerequisiti
Conoscenza e capacità di comprensione della terminologia dell'ingegneria del software e delle tecniche di base di gestione del processo di sviluppo del software, di progettazione del software e di verifica e convalida. È perciò fortemente consigliato il superamento di un esame di Ingegneria del software.
Metodi didattici
Lezioni frontali. Compatibilmente con la disponibilità delle aule, vengono inoltre organizzate un paio di esercitazioni in laboratorio per sperimentare gli strumenti presentati a lezione.
Materiale di riferimento
Oltre alle slide, vengono indicate alcune letture obbligatorie. Il sito web https://myariel.unimi.it/course/view.php?id=3138 rimanda anche alle registrazioni della maggior parte delle lezioni.
Modalità di verifica dell’apprendimento e criteri di valutazione
L'esame consiste in una prova in laboratorio e una prova orale. La prova in laboratorio, della durata di 2 ore, consiste di alcune domande a risposta aperta, esercizi e domande sul "design by contract" con Eiffel, esercizi e domande sull'uso del sistema di configuration management git (in ambiente Linux). La prova orale consiste in un colloquio sugli argomenti dell'insegnamento, volto in particolare ad accertare il senso critico sviluppato dallo studente in ordine alle tecniche presentate a lezione.
Al termine della prova orale viene formulata la valutazione complessiva, espressa in trentesimi, tenendo conto dei seguenti parametri: grado di conoscenza degli argomenti e degli strumenti presentati durante l'insegnamento, capacità di ragionamento critico, chiarezza espositiva e proprietà di linguaggio.
Al termine della prova orale viene formulata la valutazione complessiva, espressa in trentesimi, tenendo conto dei seguenti parametri: grado di conoscenza degli argomenti e degli strumenti presentati durante l'insegnamento, capacità di ragionamento critico, chiarezza espositiva e proprietà di linguaggio.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docenti:
Bellettini Carlo Nicola Maria, Monga Mattia
Turni:
Docente/i
Ricevimento:
su appuntamento
ufficio 5006 Via Celoria 18 - Milano