= Sviluppo software in gruppi di lavoro complessi = == Gli obiettivi del corso == Il corso (6CFU) presenta gli aspetti più organizzativi dello sviluppo software, ma mira a formare figure professionali che contribuiscono allo sviluppo, più che alla pura gestione dei progetti. Verranno trattati i seguenti argomenti: 1. Cenni ai modelli organizzativi di sviluppo (cattedrale, ''bazaar'', ''kibbutz'', gruppi di lavoro "agili") 1. Il supporto fornito dai ''tool'' di ''configuration management'' e ''versioning'' 1. ''Continuous integration & delivery'' 1. ''!DevOps'' 1. Documentazione e specifica mirata al lavoro collaborativo (''Design By Contract'' e linguaggi per la ''separation of concerns'') === Modalità d'esame === L'esame consiste in una prova in laboratorio e una prova orale. [[PageOutline]] == Avvisi == * [https://docs.google.com/spreadsheets/d/e/2PACX-1vT7QToRyPv33Mksd_OaLbS9G1o1t3X6FWm8mHiARR-9j3AJhj5QYMgCsZnw7PwQKciRwrjLwOavlqFB/pubhtml?gid=0&single=true Risultati prova di laboratorio del 8/9/2023] La prova orale, riservata a chi ha superato la prova di laboratorio, si terrà venerdì 15 settembre a partire dalle 15:30 in Sala riunioni del V piano di via Celoria 18. Contestualmente sarà anche possibile visionare la correzione delle prove di laboratorio. * [https://docs.google.com/spreadsheets/d/e/2PACX-1vSjZZG_HmzydPgzqWbQ5luTUq6VIGc7x0g-EWWKx6lFwlgnNJT7JDogzhkqKWbSb7AO1KXG4VLnhOhg/pubhtml?gid=0&single=true Risultati prova di laboratorio del 14/7/2023] * [https://docs.google.com/spreadsheets/d/e/2PACX-1vR91t5e5umvQoDJGQC-z7NFD_ZStYt7kbwc_GPzUzn3ojmdW_j9RbWSM4SM4btr3IC-yZRB3M4zuL3U/pubhtml?gid=0&single=true Risultati prova di laboratorio del 3/7/2023] * [https://docs.google.com/spreadsheets/d/e/2PACX-1vTYOHzLW4NQSj0Po-HJlcb_9r42Jdd_lvj9VITtbJL8BrdEy40CWwZQQ7SpzW_eWPUpLNlOjDpAyPUU/pubhtml?gid=0&single=true Risultati prova di laboratorio del 19/6/2023] == A.A. 2022/23 == * [https://calendar.google.com/calendar/embed?src=im3m7e84t10gqkl7dmqcjbole4%40group.calendar.google.com&ctz=Europe/Rome Calendario lezioni ed esami] * [https://easystaff.divsi.unimi.it/PortaleStudenti/index.php?view=easycourse&form-type=attivita&include=attivita&anno=2022&attivita%5B%5D=ECF94-103_1_0&visualizzazione_orario=cal&periodo_didattico=&date=28-02-2023&_lang=it&list=0&week_grid_type=-1&ar_codes_=&ar_select_=&col_cells=0&empty_box=0&only_grid=0&highlighted_date=0&all_events=0&faculty_group=0# Orario ufficiale] * Attenzione: su richiesta di un gruppo di studenti, la lezione del giovedì inizierà alle 10:45 === 1. 28 febbraio 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo00.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo00-handout.pdf Slide (versione per la stampa)] * [https://homes.di.unimi.it/monga/lucidi2223/survey-svigruppo.html Sondaggio] === 2. 2 marzo 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo01.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo01-handout.pdf Slide (versione per la stampa)] * [https://archive.org/details/MythicalManMonth F. Brooks, The Mythical Man-Month] Lettura **obbligatoria** dei primi 7 capitoli. === 3. 7 marzo 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo02.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo02-handout.pdf Slide (versione per la stampa)] * [http://www.catb.org/~esr/writings/cathedral-bazaar/cathedral-bazaar/ E. Raymond, The Cathedral and the Bazaar] Lettura **obbligatoria**. * [https://homes.di.unimi.it/monga/lib/oss-icse04.pdf M. Monga, From Bazaar to Kibbutz: how freedom deals with coherence in the Debian project] === 4. 9 marzo 2023, Aula 501, 10:45-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo03.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo03-handout.pdf Slide (versione per la stampa)] === 5. 14 marzo 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo04.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo04-handout.pdf Slide (versione per la stampa)] * [https://scrumguides.org/docs/scrumguide/v2020/2020-Scrum-Guide-US.pdf K. Schwaber & J. Sutherland, The Scrum Guide] Lettura **obbligatoria**. === 6. 16 marzo 2023, Aula 501, 10:45-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo05.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo05-handout.pdf Slide (versione per la stampa)] * [https://minerva.unimi.it/permalink/39UMI_INST/i9q3jt/alma991005407889706031 B. Meyer, Agile! The Good, the Hype and the Ugly] Lettura consigliata === 7. 21 marzo 2023, Aula 501, 10:30-12:30 (Carlo Bellettini) === 8. 23 marzo 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 9. 28 marzo 2023, Aula 501, 10:30-12:30 (Carlo Bellettini) === 10. 30 marzo 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 11. 4 aprile 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 12. 13 aprile 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 13. 18 aprile 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo10.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo10-handout.pdf Slide (versione per la stampa)] === 14. 20 aprile 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 15. 27 aprile 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 16. 2 maggio 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo11.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo11-handout.pdf Slide (versione per la stampa)] === 17. 4 maggio 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 18. 9 maggio 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo12.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo12-handout.pdf Slide (versione per la stampa)] * [https://www.youtube.com/watch?v=h_1xsPnwkOk Massimo Santini, Docker] [http://docker-tutorial.surge.sh Slide] === 19. 11 maggio 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 16 maggio 2023, ~~Aula 501, 10:30-12:30~~ Lezione sospesa === 20. 18 maggio 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 21. 23 maggio 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo13.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo13-handout.pdf Slide (versione per la stampa)] * [https://homes.di.unimi.it/monga/lucidi2223/sinossi-eiffel.pdf Sinossi Eiffel] [https://amzn.eu/d/6Lf5NEc Versione cartacea] === 22. 25 maggio 2023, Aula 501, 10:45-12:30 (Carlo Bellettini) === 23. 30 maggio 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://homes.di.unimi.it/monga/lucidi2223/svigruppo14.pdf Slide] -- [https://homes.di.unimi.it/monga/lucidi2223/svigruppo14-handout.pdf Slide (versione per la stampa)] * [https://www.ecma-international.org/wp-content/uploads/ECMA-367_2nd_edition_june_2006.pdf Eiffel (Standard ECMA 367)] Lettura **obbligatoria** del del capitolo 7; utile anche il capitolo 8 * [https://hub.docker.com/repository/docker/mmonga/docker-eiffel immagine docker] Istruzioni dettagliate su come usarla sono nella [https://homes.di.unimi.it/monga/lucidi2223/sinossi-eiffel.pdf sinossi]. * [https://ftp.eiffel.com/pub/download/19.05/ Eiffel 19.05 nativo] [https://www.eiffel.org/doc/eiffelstudio/Software_Installation_for_EiffelStudio Installazione] === 24. 1 giugno 2023, Aula 501, 10:30-12:30 (Mattia Monga) * [https://gitlab.di.unimi.it/svigruppo/chess Esempio tema d'esame Eiffel] L'esempio è discusso nella [https://homes.di.unimi.it/monga/lucidi2223/sinossi-eiffel.pdf sinossi] insieme ad altri temi d'esame. == [=#old Materiali anni precedenti] == * [wiki:WikiStart@405 A.A. 2021/22] * [wiki:WikiStart@346 A.A. 2020/21] * [wiki:WikiStart@253 A.A. 2019/20] * [wiki:WikiStart@193 A.A. 2018/19] * [wiki:WikiStart@132 A.A. 2017/18] * [wiki:WikiStart@73 A.A. 2016/17] * [https://www.reddit.com/r/unimi_svigruppo/wiki/index A.A. 2015/16] (Resp. prof. Carlo Bellettini, occorre iscrizione al gruppo subreddit)