====== Ingegneria del Software A.A 2020/2021 ====== ====Corso A: matricole pari==== * **Docente**: [[http://www.di.unipi.it/~gori|Roberta Gori]] * **Teams:** 271AA 20/21 - INGEGNERIA DEL SOFTWARE - PARI [INF-L] * **Orario di ricevimento** Giovedi 14,15-16 * **Orario delle lezioni** [[http://www.di.unipi.it/it/didattica/inf-l/orario| Dal sito della segreteria]] * **Registro delle lezioni** [[https://unimap.unipi.it/registri/dettregistriNEW.php?re=3292425::::&ri=9773 |Da unimp]] *Istruzioni per le lezioni on line sulla pagina *[[:informatica:is-a:avvisi_is-a:|Avvisi solo per IS-A]] ====Corso B: matricole dispari==== * **Docente**: [[http://pages.di.unipi.it/semini/|Laura Semini]] * **Teams:** 271AA 20/21 - INGEGNERIA DEL SOFTWARE - DISPARI [INF-L] * **Orario di ricevimento** Giovedì 9-11, oppure su appuntamento. Orario valido durante il periodo di lezione. Altrimenti comunque su appuntamento. TEAMS: "Ricevimento & esami Prof. Semini" * **Orario delle lezioni** : [[http://www.di.unipi.it/it/didattica/inf-l/orario| Dal sito della segreteria]] * **Registro delle lezioni** Da unimap *[[:informatica:is-b:avvisi_is-b:|Avvisi solo per IS-B]] ==== Lezioni a.a. 20/21==== Le lezioni dei corsi A e B possono essere leggermente diverse tra loro: diversi modi di presentare il materiale, ritmo, ordine (un argomento anticipato o posticipato), però i lucidi di riferimento per i due corsi corsi sono gli stessi e saranno pubblicati qui di serguito. Durante il corso ci saranno alcuni interventi di esperti esterni provenienti da grandi industrie: l'Agile Transformation Leader in MPS; un gruppo di sviluppatori del tool Roslyn di Microsoft; un gruppo di sviluppatori di IonGroup - {{ :informatica:is-a:is_01_21.pdf |Introduzione, temi di ingegneria del sw}}. Ulteriore esempio di fallimento (richiesto nel corso B) [[ https://www.latimes.com/archives/la-xpm-1999-oct-01-mn-17288-story.html | Mars Climate Orbiter "lost in translation" between metric system and imperial system of units]] - {{ :informatica:is-a:is_02_21.pdf |Modelli di ciclo di vita}} - {{ :informatica:is-a:is_03_21.pdf |Analisi dei requisiti}}. Materiale da consultare:{{ :informatica:is-a:houseofcars.pdf | House of Cars}} {{ :informatica:is-a:progetto_vasa.pdf |Vasa}}, {{ :informatica:is-a:pisamover.pdf |PisaMover}}, {{ :informatica:is-a:rebu.pdf |Rebu}}. Esempi di documenti dei requisiti di provenienza industriale: {{ :informatica:is-a:2006_-_eirene_sys.pdf |eirene sys}}, {{ :informatica:is-a:multimahjong.pdf |MultiMahjong}}, {{ :informatica:is-a:nasax38.pdf |Nasa's X-38 Fault Tolerant System Services}} - {{ :informatica:is-a:houseofcarssoluzionedocrequisiti_v1.0.docx | Soluzione Analisi dei requisiti House of Cars}} - {{ :informatica:is-a:is_05_21_casid_uso.pdf |Introduzione a UML. Diagramma dei casi d'uso}} - Lezione del 5 marzo: https://teams.microsoft.com/l/meetup-join/19%3a3ecaa464d2a446beb6edc8ac6e366e5f%40thread.tacv2/1614706670315?context=%7b%22Tid%22%3a%22c7456b31-a220-47f5-be52-473828670aa1%22%2c%22Oid%22%3a%22aab6845a-d3e9-48f6-9d00-f0c56744cbbd%22%7d - {{ :informatica:is-a:is_06_e2_21-esercitazionecasid_uso.pdf |Esercitazione Casi d'uso}} - {{ :informatica:is-a:is_07_21_classioggetti.pdf |Diagramma delle classi e diagramma degli oggetti}} - {{ :informatica:is-a:is_08_e3_21_esercitazioneclassi.pdf |Esercitazione Classi e Oggetti}} - {{ :informatica:is-a:is_09_21_attivita.pdf |Diagramma attività}} - {{ :informatica:is-a:is_09_e3_20_eserattivita21.pdf |Esercitazione attivita'}} - {{ :informatica:is-a:is_11_21_stati.pdf |Diagramma di macchina a stati }} - {{ :informatica:is-a:is_13_21_diagrammisequenza.pdf |Diagramma di sequenza}} - {{ :informatica:is-a:is_15_21_progettazionedescriverearchitetturesw.pdf |Architetture software}} - Webinar tenuto dal team di svilupaptori Microsoft: il tool Roslyn e il suo uso in fase di codifica. E' disponibile la [[ https://1drv.ms/v/s!Apc1ZVBOecFxy098ltPTBaDTCOiw?e=GjTdeb|Registrazione del seminario]], le {{ :informatica:is-a:softwareengineering_toolsforcsharpdevelopers.pdf |Slides del Seminario}} e il [[https://github.com/genlu/BlazorMemoryGame|Materiale usato nella Demo]]. - {{ :informatica:is-a:is_16_21_principidiprogettazione.pdf |Principi di progettazione sw }} - {{ :informatica:is-a:is_18_21_e_esercitazioniarchitetture.pdf |Esercitazione di architetture}} - {{ :informatica:is-a:is_20_21_progettazionedettagliostutturecomposite.pdf |Progettazione di dettaglio: strutture composite}}, materiale supplementare: {{ :informatica:is-a:is_alternatore.pdf |l'alternatore}} - {{ :informatica:is-a:is_21_21_introverificaevalidazione.pdf |Verifica e validazione}} - {{ :informatica:is-a:is_22_21_testing1.pdf |Testing 1}} - {{ :informatica:is-a:is_23_21_testing2.pdf |Testing 2}} === Mid-term === Fino a che perdureranno le attuali restrizioni causa COVID19 che impediscono di fare esami in presenza, la prova intermedia sarà di tipo autovalutativo. === Modalità di esame === Fino a che perdureranno le attuali restrizioni causa COVID19 che impediscono di fare esami in presenza, le modalità di esame saranno quelle dell'a.a. 2019-2020: progetto + orale. Appena sarà possibile invece si tornerà alla modalità tradizionale: scritto e orale. Appello di **settembre 2021**: il Senato Accademico e il Consiglio d'Amministrazione dell’Università di Pisa riuniti lunedì 28 giugno in seduta congiunta avevano stabilito che gli esami di settembre dovevano essere svolti in presenza. A causa pero' della mancanza di aule idonee per svolgere gli esami in presenza gli orali di Ingegneria del Software anche per l'** appello di settembre saranno svolti ON-LINE**, con la stessa modalita'della sessione estiva: progetto + orale, con l'orale ON-LINE. DETTAGLI IMPORTANTI PER LA MODALITA' A PROGETTO (ONLINE) * Dovrà essere realizzato un progetto in gruppo. Avrete un progetto per appello e 5 giorni per realizzarlo, max 5 persone per gruppo. * Un progetto sufficiente rimane tale per tutta la sessione, quindi, per esempio, non è richiesto che tutti i membri di un gruppo facciano l'orale nello stesso appello. * Nella sessione estiva avete 3 occasioni di esame per quanto riguarda il progetto (se fallite per 2 volte il progetto, potete consegnarlo una terza volta), 2 per quanto riguarda l'orale (se bocciate o vi ritirate all'orale, anche se per un voto non gradito, potete ripeterlo solo un'altra volta nella sessione estiva). * **L'iscrizione all'esame serve solo per la prova orale e non per la consegna del progetto: iscrivetevi ad un appello solo se intendete svolgere la prova orale in quell'appello**, altrimenti verrà contato come occasione di esame persa * Gli orali saranno individuali e verteranno sul progetto e sugli argomenti del corso. * Dopo la scadenza dell'iscrizione alla prova orale verranno stimati e poi pubblicati gli slot disponibili per fare gli orali. Gli studenti iscritti all'appello potranno prenotarsi per i singoli slot di esame. A tal fine verrà reso disponibile un file condiviso sul team dove potrete iscrivervi * **Se cambiate idea dovete cancellare l'iscrizione all'orale entro la scadenza** altrimenti, se non ci saranno validissimi motivi, verrà contato come occasione di esame persa (questo è necessario per motivi organizzativi). {{ :informatica:is-a:progetto1_musei_2021_is.pdf |Progetto primo appello: Un giorno al museo}}, da riconsegnare entro il 31 maggio seguendo la modalità indicata nel testo. {{ :informatica:is-a:progetto2_marchingegni_2021_is.pdf |Progetto secondo appello: La Fabbrica di Marchingegni}}, da riconsegnare entro il 21 giugno seguendo la modalità indicata nel testo. {{ :informatica:is-a:progetto3_easyregatta_2021_is.pdf | Progetto terzo appello: EasyRegatta}}, da riconsegnare entro il 12 luglio seguendo la modalità indicata nel testo. {{ :informatica:is-a:progetto4_concorsofoto_2021.pdf |Progetto quarto appello: ConcorsoFotografico}}, da riconsegnare il 30 agosto seguendo la modalità indicata nel testo. Orali in più date a partire dal 2 settembre. {{ :informatica:is-a:appellostraordinario_kitew.pdf |Progetto quinto appello (straordinario)}}, da consegnare il 25 ottobre ore 10, con orale lo stesso giorno ore 16. Scrivete alle docenti per la formazione dei gruppi {{ :informatica:is-a:progetto6_is_portaaporta_2021.pdf |Progetto sesto appello}}, da consegnare il 18 gennaio ore 18. Scrivete alle docenti per la formazione dei gruppi {{ :informatica:is-a:progetto7_is_il_diavolo_veste_usato.pdf |Progetto settimo appello}}, da consegnare il 7 febbraio ore 18. Scrivete alle docenti per la formazione dei gruppi DOTAZIONI INFORMATICHE NECESSARIE E REGOLE PER L'ESAME ORALE: Hardware: PC/Mac/tablet/smartphone munito di webcam e microfono (no cuffie) che siano compatibili con il software per videoconferenze TEAMS Software: Se necessario, installare il software per videoconferenza indicato dal docente (TEAMS). Altro: Collegamento internet per consentire la videoconferenza. Divieto: E' vietato registrare le prove orali PER IL CORSO A: Team orali: "aula" CorsoA: Esami IS, codice pubblicato in nota nel portale Valutami e sul team delle lezioni. In tale team troverete il file iscrizioneSlotEOrali_NesimoAppello_CorsoA, per iscrivervi alle singole date (questo non vi esime dall'iscrizione sul sito valutami). ATTENZIONE: controllate dopo 5 minuti che non sappiamo come Teams gestisca accessi concorrenti ** Per quanto riguarda la prova orale, tenete a portata di mano foglio, penna e una copia (cartacea o elettronica) del vostro progetto e del progetto di midterm (se lo avete svolto e consegnato).** PER IL CORSO B: Team orali: ricevimento & esami ingegneria del software B. Nel team del corso troverete il file iscrizioneSlotEOrali_NesimoAppello, per iscrivervi alle singole date (questo non vi esime dall'iscrizione sul sito valutami). ATTENZIONE: controllate dopo 5 minuti che non sappiamo come Teams gestisca accessi concorrenti ==== Materiale didattico, in parte disponibile on line ==== - Object Oriented and Classical Software Engineering, Stephen R.Schach, Fifth edition, McGraw Hill, Capitoli: 1-3-10 e Object-Oriented Software Engineering, David C. Kung, Capitolo 2 - UML@Classroom, Martina Seidl, Marion Scholz, Christian Huemer, Gerti Kappel, Springer Verlag, 2015. Disponibile per gli studenti di unipi a [[https://link.springer.com/book/10.1007%2F978-3-319-12742-2 |questa pagina]]. - {{:informatica:is-a:architetture14.pdf|Dispensa di architettura e progettazione di dettaglio}}. - {{:informatica:is-a:dispensatesting2014.pdf|Dispensa sulla verifica}} - Capitoli: 1-2-9-10-11-12-16-17-18 del libro "Software Testing and Analysis: Process, Principles, and Techniques" di Mauro Pezzè e Michal Young, nella versione free che potete richiedere seguendo le istruzioni su Teams ==== Materiale di riferimento/approfondimento, disponibile on line ==== - Durante il corso useremo Visual Paradigm (editor UML), E' disponibile free la Community Edition: https://www.visual-paradigm.com/download/community.jsp - Articolo [[https://spectrum.ieee.org/aerospace/aviation/how-the-boeing-737-max-disaster-looks-to-a-software-developer | How the Boeing 737 Max Disaster Looks to a Software Developer]] - [[http://ima.udg.edu/~sellares/EINF-ES2/uml2_diagrams.pdf|Riassunto di UML 2.0]] in 33 pagine illustrate, tutto quello che avreste sempre voluto sapere su UML e non avete mai osato chiedere. - {{ :informatica:is-a:dispensaesercizitesti.pdf |Testi di alcuni casi di studio per le esercitazioni}} - Handbook of Software Engineering, a cura di Sungdeok Cha, Richard N. Taylor, Kyochul Kang, Springer, 2019, Disponibile per gli studenti di unipi [[https://link.springer.com/content/pdf/10.1007%2F978-3-030-00262-6.pdf|alla pagina]]