Sviluppo software in gruppi di lavoro complessi

A.A. 2021/2022
6
Crediti massimi
48
Ore totali
SSD
INF/01
Lingua
Italiano
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).
Programma e organizzazione didattica

Edizione unica

Responsabile
Periodo
Primo 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)
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. Vengono inoltre organizzate 3 esercitazioni in laboratorio per sperimentare gli strumenti presentati a lezione.
Materiale di riferimento
Oltre alle slide, vengono indicate alcune letture obbligatorie, i cui riferimenti sono elencati nel sito web https://mmongassglc.ariel.ctu.unimi.it che contiene anche la registrazione 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 del corso, 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.
INF/01 - INFORMATICA - CFU: 6
Lezioni: 48 ore
Docente/i
Ricevimento:
su appuntamento
ufficio 5006 Via Celoria 18 - Milano
Ricevimento:
Su appuntamento
Uff. 5004, Via Celoria 18, Milano