===== Lezioni 23-24 ===== - Lunedì 18/9, 9-11: {{ :informatica:is-a:is_01_basic_concepts.pdf |Introduzione, temi di ingegneria del sw, concetti di base}} - Mercoledì 20/09, 9-11: {{ :informatica:is-a:is_02_modelliciclodivita.pdf |Modelli di ciclo di vita, Agile}} - Lunedi 25/9, 9-11: {{ :informatica:is-a:is_03_analisirequisiti.pdf |Analisi dei requisiti}}. Materiale da consultare: * Alcuni documenti non ancora elaborati {{ :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}} * Esempio di elaborazione di un documento: {{ :informatica:is-a:houseofcars.pdf | House of Cars: testo iniziale}} {{ :informatica:is-a:houseofcarssoluzionedocrequisiti_v1.0.docx | House of Cars: documento dei requisiti (con domande per committente)}} * Esempio di disambiguazione su {{ :informatica:is-a:la_piscina_testo_iniziale.pdf |La piscina}}. Documento annotato: {{ :informatica:is-a:is_05_e1_22_23_la_piscina_a_lezione.pdf |documento}} * Homework: {{ :informatica:is-a:quartoappellofinoaqui.pdf |Fino a qui tutto bene}}: individuare difetti e scrivere un documento dei requisiti secondo uno standard (separando dominio da reqisiti e requisiti funzionali da non funzionali, ...) - Mercoledì 27/09, 9-11: {{ :informatica:is-a:is_04_introuml_casid_uso.pdf |Introduzione a UML + Casi d'uso}} Capitoli UML@Classroom: basta il terzo - Lunedì 2/10: {{ :informatica:is-a:is_05_e1_esercitazionereq_casid_uso.pdf |Esercitazione requisiti e casi d'uso}} - Martedì 3/10: {{ :informatica:is-a:is_06_classioggetti.pdf |Diagramma delle classi e diagramma degli oggetti}} - Mercoledì 4/10: {{ :informatica:is-a:is_07_e2_esercitazioneclassi.pdf |Esercitazione Classi e Oggetti}}, {{ :informatica:is-a:is_08a_attivita.pdf |Diagrammi di Attività}} - Lunedì 9/10: {{ :informatica:is-a:is_08b_stati.pdf |Diagramma di macchina a stati}}, aggiornato - Mercoledì 11/10: Esercitazione {{ :informatica:is-a:is_09a_e3_eserattivita.pdf |Attività}}, {{ :informatica:is-a:is_09b_e5_esercitazionestati.pdf |Stati}}, {{ :informatica:is-a:is_09c_esercitazionepiscina.pdf |caso di studio Piscina}} (Stati aggiornato il 12/10) - Lunedì 16/10: {{ :informatica:is-a:is_10_e4_esercitazione_sciclub.pdf |esercitazione Sci Club}}: esercitazione di tipo laboratoriale svolta a gruppi. Mandare soluzione entro stasera per email - Mercoledì 18/10: {{ :informatica:is-a:is_10_e4_correzione_esercitazione_sciclub.pdf |Correzione esercitazione}} - Lunedì 23/10: {{ :informatica:is-a:is_11_progettazionedescriverearchitetturesw.pdf |Architetture software: diverse viste e diversti stili architetturali}} - Mercoledì 25/10: {{ :informatica:is-a:is_12_diagrammisequenza_con_esercizi.pdf |Diagrammi di sequenza con esercizi}}, {{ :informatica:is-a:is_13_e_esercitazioniarchitetture.pdf |esercizi architetture}} (aggiornati dopo lezione) - Lunedì 30/10: {{ :informatica:is-a:is_13_principidiprogettazione.pdf |Principi di progettazione, SOLID, introduzione a GRASP}} - Mercoledì 1/11/23: Festa - Lunedi 6/11: {{ :informatica:is-a:is_14_dp_intro.pdf |Introduzione ai design patterns}}, {{ :informatica:is-a:is_14a_strategy.pdf |Strategy}} - Mercoledì 8/11: {{ :informatica:is-a:inheritance.pdf |Avoid Inheritance if you can}}, Una discussione sui problemi dell'uso dell'ereditarietà nella progettazione OO (e perché è meglio evitare di usarla), by Leonardo Bartoloni. {{ :informatica:is-a:is_15_state.pdf |State}} pattern - Lunedì 13/11: Pattern creazionali: {{ :informatica:is-a:is_16_factoriessingleton.pdf |Factories (Concrete Factory, Factory method, Abstract Factory) e Singleton}} - Mercoledì 15/11: {{ :informatica:is-a:spl_precisionrecall.pdf |Software Product Lines e empirical software engineering}} Esercitazione su uso LLMs in ingegneria del software, DA FARE SOLO IN AULA CON LE MIE ISTRUZIONI: https://docs.google.com/forms/d/1OBOBSzubv0rooEoGU9oTq30jD7qIgHb7vwv8sTCaK00/edit. Design pattern: {{ :informatica:is-a:is_17a_decorator.pdf |Decorator}}, {{ :informatica:is-a:is_17b_adapter.pdf |Adapter}}, {{ :informatica:is-a:is_17c_proxy.pdf |Proxy}} - Lunedì 20/11: {{ :informatica:is-a:is_18_e5_esercitazione_progettazione_sciclub.pdf |Esercitazione Progettazione}} - Mercoledì 22/11: {{ :informatica:is-a:is_19a_introverificaevalidazione.pdf |introduzione alla verifica, verifiche statiche, verifiche dinamiche (i.e. testing)}};{{ :informatica:is-a:is_19b_testing1.pdf | Criteri per la costruzione di batterie di test. Criteri black box}} - Lunedì 27/11: {{ :informatica:is-a:is_20_e6_correzione_esercitazione_progettazione_sciclub.pdf |correzione Esercitazione Progettazione}}; Criteri per la costruzione di casi di test: test combinatorio (fine lucidi lezione prededente) - Mercoledì 29/11: {{ :informatica:is-a:is_21_testing2.pdf |Criteri per la costruzione di casi di test: Criteri white box; test mutazionale}} {{ :informatica:is-a:is_21b_esercitazione_testing.ppt |Esercizi di verifica}} - Lunedì 4/12: {{ :informatica:is-a:esercitazionefinoaquiconsoluzioni.pdf |Esercitazione sul caso Fino a Qui Tutto Bene}} (aggiornato pomeriggio dopo lezione): ascoltare la discussione a lezione (la registro) per confronto con altre soluzioni possibili - Mercoledì 6/12: {{ :informatica:is-a:progetto_calcetto_consoluzioni.pdf |Esercitazione: Il torneo di calcetto (in attesa della partita del secolo XXI)}}: ascoltare la discussione a lezione (la registro) per i molti commenti sulla soluzione proposta che serve da guida alla lezione FINE LEZIONI! Lunedì 11/12: ore 9 aula E: question time sul progetto del primo appello, che verrà pubblicato venerdì ==== ESAMI ==== * L'{{ :informatica:is-a:testo_str_mercoledi_nov2023.pdf |appello straordinario}} autunnale per F.C. e lavoratori, 2 novembre ore 14, si è basato sul progetto {{ :informatica:is-a:progetto_str_mercoledi_ott-nov2023.pdf |Mercoledì}}. Orali nel mio ufficio a partire da lunedì 5/11, con iscrizione su foglio excel sul canale Teams dell'A.A 22-23 * Lo scritto del primo appello si baserà sul progetto {{ :informatica:is-a:progettoprimoappello_il_treno.pdf |Il Treno}}. {{ :informatica:is-a:testoprimoappello_iltreno_a.pdf |Compito A}}, {{ :informatica:is-a:testoprimoappello_iltreno_b.pdf |Compito B}} * :!: Pubblico una soluzione al compito di dicembre. **Ricordo che le soluzioni corrette sono molte, quella proposta è solo una possibile tra esse**: {{ :informatica:is-a:soluzioneprimoappello_iltreno_a.pdf |Soluzione compito A}} {{ :informatica:is-a:soluzioneprimoappello_iltreno_b.pdf |Soluzione compito B}} * Il {{ :informatica:is-a:testosecondoappello.pdf |secondo appello}} dell'11 gennaio alle 14 si è basato sul caso di studio {{ :informatica:is-a:progettosecondoappello.pdf |Il pranzo di Babette}}. Una possibile {{ :informatica:is-a:soluzionesecondoappello_mensa.pdf |soluzione}}. * L'appello straordinario del 12 marzo 2024 si baserà sul caso di studio {{ :informatica:is-a:testo_occhialioro_appellostraprile_24.pdf |Gli occhiali d'oro}}. {{ :informatica:is-a:testoappellostra12marzo_occhiali.pdf |Testo}}, una possibile {{ :informatica:is-a:soluzioneappellostra12marzo_occhiali.pdf |soluzione}}. * Il terzo {{ :informatica:is-a:testoterzoappello_cpds.pdf |appello}}, del 21 maggio 2024, si basa sul caso di studio {{ :informatica:is-a:progetto3_appello_maggio.pdf |Piattaforma di Supporto per la Gestione delle Delibere della Commissione Piani di Studio}}. {{ :informatica:is-a:soluzione_testoterzoappello_cpds.pdf |Una possibile soluzione}} * Il quarto appello, del 14 giugno 2024, si basa sul caso di studio {{ :informatica:is-a:progetto4_appello_giugno.pdf |Gli internazionali di Roma}}. {{ :informatica:is-a:q_a.pdf |Question & Answers}} + Dobbiamo tenere presente che sia gli arbitri che gli amministratori sono già creati? Risposta: Gli amministratori esistono già, loro registrano gli arbitri. {{ :informatica:is-a:testo4appello_tennis.pdf |Testo}} e una possibile {{ :informatica:is-a:soluzione4appello_tennis.pdf |soluzione}}. * Il quinto {{ :informatica:is-a:testo5_appello_luglio_luminara.pdf |appello}}, del 10 luglio 2024, si basa sul caso di studio {{ :informatica:is-a:progetto5_appello_luglio_luminara.pdf |Le celebrazioni di San Ranieri}}. Pubblico i risultati su Teams, per accettare il voto dovete seguire le istruzioni. Una possibile {{ :informatica:is-a:soluzione5_appello_luglio_luminara.pdf |Soluzione}} * Il sesto appello, del 4 settembre 2024, si basa sul caso di studio {{ :informatica:is-a:progetto6_appello_settembre.pdf |The Blues Brothers}}. Gli orali saranno nel mio ufficio il 6 e il 9 settembre, potete registrarvi in uno slot orario accedendo al canale (generale) del corso, poi -> File -> SlotOrali.... ==== 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. - {{: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 date nella prima lezione. ==== 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]]