= 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]] == A.A. 2017/18 == * [https://calendar.google.com/calendar/embed?src=im3m7e84t10gqkl7dmqcjbole4%40group.calendar.google.com&ctz=Europe/Rome Calendario lezioni ed esami] * [https://orari.unimi.it/EasyRoom/Orario/index.php?view=easycourse&include=attivita&anno=2017&attivita=ECF94-103_1&_lang=it Orario ufficiale] Le registrazioni sono fornite '''a uso esclusivo degli studenti del corso''' e possono essere utilizzate solo per lo studio personale. Per accedere occorre usare la username ''studente'', la password è il titolo del primo capitolo di ''"The Mythical Man-Month"''. === 26 settembre 2017, Aula α, 14:30-16:30 ==== Introduzione * [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo00.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo00-handout.pdf Slide (versione per la stampa)] * [https://mmonga.typeform.com/to/fwLAiC Questionario] * [https://www.computer.org/web/swebok/v3 Riferimento per la terminologia dell'ingegneria del software] * [https://archive.org/details/mythicalmanmonth00fred F. Brooks, The Mythical Man-Month] ('''lettura obbligatoria''') === 28 settembre 2017, Aula α, 16:30-18:30 ==== Cattedrale, bazaar, kibbutz * [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo01.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo01-handout.pdf Slide (versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1718/video/svigruppo01.webm Registrazione (162MB WebM)] * [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] === 3 ottobre 2017, Aula α, 15:30-17:30 ==== Introduzione ai metodi di sviluppo agili * [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo02.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo02-handout.pdf Slide (versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1718/video/svigruppo02.webm Registrazione (161MB WebM)] * [http://agilemanifesto.org/ Agile manifesto] === 5 ottobre 2017, Aula α, 16:30-18:30 ==== Metodologie agili (Scrum) * [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo03.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo03-handout.pdf Slide (versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1718/video/svigruppo03.webm Registrazione (164MB WebM)] * [http://www.scrumdesk.com/Download/Documents/AgileResources/ScrumGuidelines.pdf Scrum] === 10 ottobre 2017, Aula α, 15:30-17:30 * [http://homes.di.unimi.it/~sisop/lucidi1718/video/svigruppo04.webm Registrazione (221MB WebM)] === 12 ottobre 2017, Aula α, 16:30-18:30 ==== Tecniche linguistiche per lo sviluppo collaborativo: asserzioni * [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo04.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo04-handout.pdf Slide (versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1718/video/svigruppo04b.webm Registrazione (152MB WebM)] * [https://doi.org/10.1145/143062.143098 D. Rosenblum, Towards a method of programming with assertions] ('''lettura obbligatoria''') Per accedere alla ''digital library ACM'' da fuori unimi, attivare il [http://www.sba.unimi.it/BibliotecaDigitale/2484.html#c12243 proxy] === 17 ottobre 2017, Aula α, 15:30-17:30 * [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo05.pdf Slide] -- [http://homes.di.unimi.it/~sisop/lucidi1718/svigruppo05-handout.pdf Slide (versione per la stampa)] * [http://homes.di.unimi.it/~sisop/lucidi1718/video/svigruppo05.webm Registrazione (188MB WebM)] * [http://www.ecma-international.org/publications/files/ECMA-ST/ECMA-367.pdf Eiffel: Analysis, Design and Programming Language (ECMA 367)] I capitoli interessanti sono il 7 e l'8 e la lettura del 7 è **obbligatoria**. * IstruzioniEiffel === 19 ottobre 2017, Aula α, 16:30-18:30 === 24 ottobre 2017, Aula 309, 15:30-18:30 **ATTENZIONE:** LABORATORIO presso il Settore Didattico, Via Celoria == Materiali anni precedenti == * [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)